- Aug 24, 2007
-
-
Chris Lattner authored
llvm-svn: 41344
-
- Aug 21, 2007
-
-
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
-
- 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
-
- Jul 16, 2007
-
-
Chris Lattner authored
llvm-svn: 39927
-
- Jul 13, 2007
-
-
Chris Lattner authored
llvm-svn: 39824
-
- Jul 12, 2007
-
-
Chris Lattner authored
Benoit Boissinot! llvm-svn: 39780
-
- Jul 10, 2007
-
-
Chris Lattner authored
llvm-svn: 39724
-
- Jun 23, 2007
-
-
Chris Lattner authored
llvm-svn: 39674
-
- Jun 22, 2007
-
-
Chris Lattner authored
llvm-svn: 39671
-
- 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
llvm-svn: 39653
-
- Jun 09, 2007
-
-
Chris Lattner authored
stuff like: void test() { int *X, Y, *Z[14]; X[Y] = 4; } llvm-svn: 39624
-
- Jun 05, 2007
-
-
Chris Lattner authored
llvm-svn: 39593
-
Chris Lattner authored
llvm-svn: 39582
-
- Jun 02, 2007
-
-
Chris Lattner authored
be shared. Implement infrastructure for unary operator emission. Implement basic logical not support. We now compile: register short X; if (!X) { into: %tmp = load i16* %X ; <i16> [#uses=1] %tobool = icmp ne i16 %tmp, 0 ; <i1> [#uses=1] %lnot = xor i1 %tobool, true ; <i1> [#uses=1] zext i1 %lnot to i32 ; <i32>:0 [#uses=1] %tobool1 = icmp ne i32 %0, 0 ; <i1> [#uses=1] br i1 %tobool1, label %ifthen, label %ifend llvm-svn: 39559
-
Chris Lattner authored
llvm-svn: 39550
-
Chris Lattner authored
llvm-svn: 39547
-
Chris Lattner authored
if (11 + 42) { to: %tmp = add i32 11, 42 ; <i32> [#uses=1] %tobool = icmp ne i32 %tmp, 0 ; <i1> [#uses=1] br i1 %tobool, label %ifthen, label %ifend but this doesn't handle any of the interesting/hard stuff yet. llvm-svn: 39545
-
- Jun 01, 2007
-
-
Chris Lattner authored
llvm-svn: 39540
-
- May 31, 2007
-
-
Chris Lattner authored
llvm-svn: 39534
-
- May 30, 2007
-
-
Chris Lattner authored
void test() { goto l; l: if (11) { j: ; } } into: define void @test() { entry: br label %l l: ; preds = %entry icmp ne i32 11, 0 ; <i1>:0 [#uses=1] br i1 %0, label %ifthen, label %ifend ifthen: ; preds = %l br label %j j: ; preds = %ifthen br label %ifend ifend: ; preds = %j, %l } whoa... :) llvm-svn: 39533
-
Chris Lattner authored
llvm-svn: 39530
-
Chris Lattner authored
void test1() { foo: goto foo; goto foo; goto foo; } void test() { goto l; l: ; } into: define void @test1() { entry: br label %foo foo: ; preds = %0, %foo, %entry br label %foo ; No predecessors! br label %foo ; No predecessors! } define void @test() { entry: br label %l l: ; preds = %entry } llvm-svn: 39524
-
Chris Lattner authored
llvm-svn: 39522
-
Chris Lattner authored
cases. llvm-svn: 39519
-
- May 28, 2007
-
-
Chris Lattner authored
llvm-svn: 39504
-