- Dec 02, 2007
-
-
Oliver Hunt authored
We now use the CodeGenModule logic for generating the constant initialiser expression, so happily further initialiser fixes should automatically work for statics as well. llvm-svn: 44495
-
- Oct 26, 2007
-
-
Devang Patel authored
Code gen static initializer. llvm-svn: 43386
-
- Oct 17, 2007
-
-
Anders Carlsson authored
Generate code for static variables that don't have initializers. Also, report an error if a static initializer is not constant. llvm-svn: 43058
-
- Oct 08, 2007
-
-
Chris Lattner authored
likewise block and param. Reorder the layout of the Decl kind enum so that the inheritance tree is reflected in the ordering. This allows trivial range comparisons to determine whether something is an instance of some abstract class, making classof faster. llvm-svn: 42772
-
- Aug 26, 2007
-
-
Chris Lattner authored
llvm-svn: 41444
-
Chris Lattner authored
llvm-svn: 41442
-
Chris Lattner authored
llvm-svn: 41441
-
Chris Lattner authored
llvm-svn: 41426
-
- Aug 24, 2007
-
-
Chris Lattner authored
This patch temporarily breaks compound assignment operators, but greatly simplifies many things. llvm-svn: 41355
-
- Jul 16, 2007
-
-
Chris Lattner authored
llvm-svn: 39884
-
- Jul 13, 2007
-
-
Chris Lattner authored
llvm-svn: 39795
-
- Jul 12, 2007
-
-
Chris Lattner authored
llvm-svn: 39771
-
- Jun 22, 2007
-
-
Chris Lattner authored
of complex. We now produce optimal code for: void test(_Complex float *Y) { *Y = *Y + *Y; } $ clang -emit-llvm cg.c | llvm-as | opt -std-compile-opts | llc -march=x86-64 ... _test: movss (%rdi), %xmm0 addss %xmm0, %xmm0 movss 4(%rdi), %xmm1 movss %xmm0, (%rdi) addss %xmm1, %xmm1 movss %xmm1, 4(%rdi) ret llvm-svn: 39673
-
Chris Lattner authored
llvm-svn: 39671
-
Chris Lattner authored
llvm-svn: 39670
-
Chris Lattner authored
llvm-svn: 39667
-
- Jun 16, 2007
-
-
Chris Lattner authored
out of the llvm namespace. This makes the clang namespace be a sibling of llvm instead of being a child. The good thing about this is that it makes many things unambiguous. The bad things is that many things in the llvm namespace (notably data structures like smallvector) now require an llvm:: qualifier. IMO, libsystem and libsupport should be split out of llvm into their own namespace in the future, which will fix this issue. llvm-svn: 39659
-
- Jun 13, 2007
-
-
Chris Lattner authored
int test(int X, short Y, float Z) { return (int)(X*Y+Z); } to: define i32 @test(i32 %X, i16 %Y, float %Z) { entry: %promote = sext i16 %Y to i32 ; <i32> [#uses=1] %mul = mul i32 %promote, %X ; <i32> [#uses=1] %promote3 = sitofp i32 %mul to float ; <float> [#uses=1] %add = add float %promote3, %Z ; <float> [#uses=1] %conv = fptosi float %add to i32 ; <i32> [#uses=1] ret i32 %conv } with: $ clang -emit-llvm t.c | llvm-as | opt -std-compile-opts | llvm-dis llvm-svn: 39652
-
- Jun 09, 2007
-
-
Chris Lattner authored
stuff like: void test() { int *X, Y, *Z[14]; X[Y] = 4; } llvm-svn: 39624
-
- Jun 02, 2007
-
-
Chris Lattner authored
int func() { register int X; { int Y; into: define i32 @func() { entry: %X = alloca i32 ; <i32*> [#uses=0] %Y = alloca i32 ; <i32*> [#uses=0] %allocapt = bitcast i32 undef to i32 ; <i32> [#uses=0] ... llvm-svn: 39553
-
Chris Lattner authored
llvm-svn: 39550
-