- Jul 27, 2004
-
-
Chris Lattner authored
llvm-svn: 15263
-
- Jul 26, 2004
-
-
Chris Lattner authored
end of the function (either return or unwind) llvm-svn: 15232
-
Chris Lattner authored
llvm-svn: 15227
-
- Jul 25, 2004
-
-
Chris Lattner authored
a bug in DSE). * Delete dead operand uses iteratively instead of recursively, using a SetVector. * Defer deletion of dead operand uses until the end of processing, which means we don't have to bother with updating the AliasSetTracker. This speeds up DSE substantially. llvm-svn: 15204
-
Chris Lattner authored
llvm-svn: 15199
-
- Jul 24, 2004
-
-
Chris Lattner authored
llvm-svn: 15162
-
- Jul 22, 2004
-
-
Chris Lattner authored
can be improved in many ways. But: stop laughing, even with -basicaa it deletes 15% of the stores in 252.eon :) llvm-svn: 15101
-
Chris Lattner authored
to the field being updated. Patch contributed by Tobias Nurmiranta llvm-svn: 15097
-
- Jul 21, 2004
-
-
Chris Lattner authored
* Test for whether bits are shifted out during the optzn. If so, the fold is illegal, though it can be handled explicitly for setne/seteq This fixes the miscompilation of 254.gap last night, which was a latent bug exposed by other optimizer improvements. llvm-svn: 15085
-
Chris Lattner authored
"simplify" a bit of code for comparison/and folding llvm-svn: 15082
-
Chris Lattner authored
the appopriate size. This gives us the ability to eliminate int -> ptr -> int llvm-svn: 15063
-
- Jul 20, 2004
-
-
Chris Lattner authored
llvm-svn: 15029
-
Chris Lattner authored
llvm-svn: 15024
-
Chris Lattner authored
actually care about. Someday when the cast instruction is gone, we can do better here, but this will do for now. This implements instcombine/cast.ll:test17/18 as well. llvm-svn: 15018
-
- Jul 18, 2004
-
-
Chris Lattner authored
llvm-svn: 14972
-
Reid Spencer authored
llvm-svn: 14967
-
Reid Spencer authored
llvm-svn: 14966
-
Reid Spencer authored
llvm-svn: 14965
-
Reid Spencer authored
too. llvm-svn: 14964
-
Reid Spencer authored
- Replace ConstantPointerRef usage with GlobalValue usage llvm-svn: 14953
-
Reid Spencer authored
- Replace ConstantPointerRef usage with GlobalValue usage - Minimize redundant isa<GlobalValue> usage - Correct isa<Constant> for GlobalValue subclass llvm-svn: 14950
-
Reid Spencer authored
- Minimize redundant isa<GlobalValue> usage llvm-svn: 14948
-
Reid Spencer authored
- Replace ConstantPointerRef usage with GlobalValue usage - Correct isa<Constant> for GlobalValue subclass llvm-svn: 14947
-
Reid Spencer authored
- Minimize redundant isa<GlobalValue> usage - Correct isa<Constant> for GlobalValue subclass llvm-svn: 14946
-
- Jul 16, 2004
-
-
Chris Lattner authored
Speed up SCCP substantially by processing overdefined values quickly. This patch speeds up SCCP by about 30-40% on large testcases. llvm-svn: 14861
-
- Jul 15, 2004
-
-
Chris Lattner authored
This version takes about 1s longer than the previous one (down to 2.35s), but on the positive side, it actually works :) llvm-svn: 14856
-
Chris Lattner authored
llvm-svn: 14853
-
Chris Lattner authored
This eliminates an N*N*logN algorithm from the loop simplify pass, replacing it with a much simpler and faster alternative. In a debug build, this reduces gccas time on eon from 85s to 42s. llvm-svn: 14851
-
Chris Lattner authored
llvm-svn: 14839
-
Chris Lattner authored
malloc lowering. This means that lowerallocations doesn't need targetdata anymore. yaay. llvm-svn: 14835
-
- Jul 13, 2004
-
-
Chris Lattner authored
"load (cast foo)". This allows us to compile C++ code like this: class Bclass { public: virtual int operator()() { return 666; } }; class Dclass: public Bclass { public: virtual int operator()() { return 667; } } ; int main(int argc, char** argv) { Dclass x; return x(); } Into this: int %main(int %argc, sbyte** %argv) { entry: call void %__main( ) ret int 667 } Instead of this: int %main(int %argc, sbyte** %argv) { entry: %x = alloca "struct.std::bad_typeid" ; <"struct.std::bad_typeid"*> [#uses=3] call void %__main( ) %tmp.1.i.i = getelementptr "struct.std::bad_typeid"* %x, uint 0, uint 0, uint 0 ; <int (...)***> [#uses=1] store int (...)** getelementptr ([3 x int (...)*]* %vtable for Bclass, int 0, long 2), int (...)*** %tmp.1.i.i %tmp.3.i = getelementptr "struct.std::bad_typeid"* %x, int 0, uint 0, uint 0 ; <int (...)***> [#uses=1] store int (...)** getelementptr ([3 x int (...)*]* %vtable for Dclass, int 0, long 2), int (...)*** %tmp.3.i %tmp.5 = load int ("struct.std::bad_typeid"*)** cast (int (...)** getelementptr ([3 x int (...)*]* %vtable for Dclass, int 0, long 2) to int ("struct.std::bad_typeid"*)**) ; <int ("struct.std::bad_typeid"*)*> [#uses=1] %tmp.6 = call int %tmp.5( "struct.std::bad_typeid"* %x ) ; <int> [#uses=1] ret int %tmp.6 ret int 0 } In order words, we now resolve the virtual function call. llvm-svn: 14783
-
- Jul 06, 2004
-
-
Chris Lattner authored
llvm-svn: 14649
-
Brian Gaeke authored
the first is a zero, we should leave it alone. llvm-svn: 14648
-
Brian Gaeke authored
Don't touch GEPs for which DecomposeArrayRef is not going to do anything special (e.g., < 2 indices, or 2 indices and the last one is a constant.) llvm-svn: 14647
-
Chris Lattner authored
llvm-svn: 14640
-
Chris Lattner authored
llvm-svn: 14638
-
Chris Lattner authored
Also, remove X % -1 = 0, because it's not true for unsigneds, and the signed case is superceeded by this new handling. llvm-svn: 14637
-
- Jul 04, 2004
-
-
Reid Spencer authored
llvm-svn: 14622
-
- Jul 03, 2004
-
-
Chris Lattner authored
llvm-svn: 14587
-
Chris Lattner authored
llvm-svn: 14584
-