- Aug 21, 2007
-
-
Chris Lattner authored
llvm-svn: 41244
-
Chris Lattner authored
llvm-svn: 41240
-
Chris Lattner authored
llvm-svn: 41239
-
Anders Carlsson authored
llvm-svn: 41238
-
Chris Lattner authored
llvm-svn: 41237
-
Chris Lattner authored
llvm-svn: 41236
-
Chris Lattner authored
llvm-svn: 41235
-
Chris Lattner authored
llvm-svn: 41234
-
Chris Lattner authored
llvm-svn: 41233
-
Chris Lattner authored
llvm-svn: 41231
-
Chris Lattner authored
llvm-svn: 41226
-
Chris Lattner authored
llvm-svn: 41218
-
Chris Lattner authored
This means that we get rid of tons of intermediate allocas. For example: void foo(double _Complex a, double _Complex b) { a = b+a+a; } this used to have 4 temporary allocas, now it has zero of them. This also simplifies the individual visitor methods because they now can all operate on real/imag pairs instead of having to load/store all over the place. llvm-svn: 41217
-
Chris Lattner authored
llvm-svn: 41216
-
Chris Lattner authored
llvm-svn: 41215
-
Chris Lattner authored
match on binop then explicitly switching again. llvm-svn: 41214
-
Chris Lattner authored
details in its own file. llvm-svn: 41213
-
Anders Carlsson authored
llvm-svn: 41206
-
Chris Lattner authored
llvm-svn: 41202
-
- Aug 20, 2007
-
-
Anders Carlsson authored
llvm-svn: 41188
-
Ted Kremenek authored
to getBase and getIdx. getBase and getIdx now return a "normalized" view of the expression (e.g., always "A[4]" instead of possibly "4[A]"). getLHS and getRHS return the expressions with syntactic fidelity to the original source code. Also modified client code of ArraySubscriptExpr, including the AST dumper and pretty printer, the return-stack value checker, and the LLVM code generator. llvm-svn: 41180
-
- Aug 18, 2007
-
-
Anders Carlsson authored
llvm-svn: 41145
-
- Aug 11, 2007
-
-
Chris Lattner authored
aggregate value and scalar expression computation are very different, this gets them away from each other. This causes a temporary regression on some complex number examples. llvm-svn: 41014
-
- Aug 10, 2007
-
-
Chris Lattner authored
llvm-svn: 41002
-
Chris Lattner authored
llvm-svn: 40995
-
Chris Lattner authored
codegen for: _Complex double bar(int); void test(_Complex double*); void test2(int c) { _Complex double X; X = bar(1); test(&X); } llvm-svn: 40993
-
Chris Lattner authored
bitcast. llvm-svn: 40992
-
- Aug 08, 2007
-
-
Chris Lattner authored
EmitUsualArithmeticConversions. llvm-svn: 40931
-
Chris Lattner authored
EmitExprWithUsualUnaryConversions. llvm-svn: 40929
-
- Aug 04, 2007
-
-
Chris Lattner authored
struct X { int A; }; void foo() { struct X s; int i; i = __builtin_choose_expr(0, s, i); } compiles to: %tmp = load i32* %i ; <i32> [#uses=1] store i32 %tmp, i32* %i wow :) llvm-svn: 40801
-
- Aug 03, 2007
-
-
Chris Lattner authored
llvm-svn: 40788
-
Chris Lattner authored
Rename AddrLabel and OCUVectorComponent -> AddrLabelExpr and OCUVectorElementExpr respectively. This is for consistency with other expr nodes end with *Expr. llvm-svn: 40785
-
Chris Lattner authored
vec2.yx = vec2; // reverse llvm-svn: 40782
-
Chris Lattner authored
vec2.x = f; llvm-svn: 40781
-
Chris Lattner authored
llvm-svn: 40780
-
Chris Lattner authored
llvm vector shuffle instead of a bunch of insert/extract operations. For: vec4 = vec4.yyyy; // splat Emit: %tmp1 = shufflevector <4 x float> %tmp, <4 x float> undef, <4 x i32> < i32 1, i32 1, i32 1, i32 1 > instead of: %tmp1 = extractelement <4 x float> %tmp, i32 1 %tmp2 = insertelement <4 x float> undef, float %tmp1, i32 0 %tmp3 = extractelement <4 x float> %tmp, i32 1 %tmp4 = insertelement <4 x float> %tmp2, float %tmp3, i32 1 %tmp5 = extractelement <4 x float> %tmp, i32 1 %tmp6 = insertelement <4 x float> %tmp4, float %tmp5, i32 2 %tmp7 = extractelement <4 x float> %tmp, i32 1 %tmp8 = insertelement <4 x float> %tmp6, float %tmp7, i32 3 llvm-svn: 40779
-
Chris Lattner authored
llvm-svn: 40777
-
Chris Lattner authored
like this: typedef __attribute__(( ocu_vector_type(4) )) float float4; float4 test1(float4 V) { return V.wzyx+V; } to: _test1: pshufd $27, %xmm0, %xmm1 addps %xmm0, %xmm1 movaps %xmm1, %xmm0 ret and: _test1: mfspr r2, 256 oris r3, r2, 4096 mtspr 256, r3 li r3, lo16(LCPI1_0) lis r4, ha16(LCPI1_0) lvx v3, r4, r3 vperm v3, v2, v2, v3 vaddfp v2, v3, v2 mtspr 256, r2 blr llvm-svn: 40771
-
Chris Lattner authored
We can now codegen: vec4.xy; as nothing! llvm-svn: 40769
-
- Aug 02, 2007
-
-
Chris Lattner authored
llvm-svn: 40761
-