summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
Commit message (Collapse)AuthorAgeFilesLines
...
* Avoid an unnecessary isa<Constant>.Reid Spencer2004-07-181-3/+1
| | | | llvm-svn: 14963
* Remove useless statistic, fix some slightly broken logicChris Lattner2004-07-181-8/+4
| | | | llvm-svn: 14958
* Fix a rather serious bug in previous checkinChris Lattner2004-07-181-1/+0
| | | | llvm-svn: 14957
* bug 122:Reid Spencer2004-07-1812-40/+30
| | | | | | - Replace ConstantPointerRef usage with GlobalValue usage llvm-svn: 14953
* bug 122:Reid Spencer2004-07-181-16/+13
| | | | | | | | - Replace ConstantPointerRef usage with GlobalValue usage - Minimize redundant isa<GlobalValue> usage - Correct isa<Constant> for GlobalValue subclass llvm-svn: 14950
* bug 122:Reid Spencer2004-07-184-13/+6
| | | | | | - Minimize redundant isa<GlobalValue> usage llvm-svn: 14948
* bug 122:Reid Spencer2004-07-181-16/+11
| | | | | | | - Replace ConstantPointerRef usage with GlobalValue usage - Correct isa<Constant> for GlobalValue subclass llvm-svn: 14947
* bug 122:Reid Spencer2004-07-182-5/+6
| | | | | | | - Minimize redundant isa<GlobalValue> usage - Correct isa<Constant> for GlobalValue subclass llvm-svn: 14946
* bug 122:Reid Spencer2004-07-181-22/+17
| | | | | | | - Replace ConstantPointerRef usage with GlobalValue usage - Rename methods to get ride of ConstantPointerRef usage llvm-svn: 14945
* bug 122:Reid Spencer2004-07-181-30/+1
| | | | | | - Excise dead CPR procesing. llvm-svn: 14944
* bug 122:Reid Spencer2004-07-181-6/+0
| | | | | | | - Replace ConstantPointerRef usage with GlobalValue usage - Correct test ordering for GlobalValue subclass llvm-svn: 14943
* This patch was contributed by Daniel Berlin!Chris Lattner2004-07-151-14/+48
| | | | | | | Speed up SCCP substantially by processing overdefined values quickly. This patch speeds up SCCP by about 30-40% on large testcases. llvm-svn: 14861
* Fix PR404 try #2Chris Lattner2004-07-151-8/+8
| | | | | | | 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
* Revert previous patch until I get a bug fixedChris Lattner2004-07-151-12/+12
| | | | llvm-svn: 14853
* Fix PR404: Loop simplify is really slow on 252.eonChris Lattner2004-07-151-12/+12
| | | | | | | | 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
* Progress on PR341Chris Lattner2004-07-155-35/+36
| | | | llvm-svn: 14840
* Fixes working towards PR341Chris Lattner2004-07-156-22/+23
| | | | llvm-svn: 14839
* Now that we codegen the portable "sizeof" efficiently, we can use it forChris Lattner2004-07-151-18/+22
| | | | | | | malloc lowering. This means that lowerallocations doesn't need targetdata anymore. yaay. llvm-svn: 14835
* Factor some code to handle "load (constantexpr cast foo)" just likeChris Lattner2004-07-131-20/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "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
* Check to make sure types are sized before calling getTypeSize on them.Chris Lattner2004-07-061-13/+15
| | | | llvm-svn: 14649
* It doesn't matter what the 2nd operand is; if the GEP has 2 operands andBrian Gaeke2004-07-061-2/+1
| | | | | | the first is a zero, we should leave it alone. llvm-svn: 14648
* Add helper function.Brian Gaeke2004-07-061-2/+14
| | | | | | | 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
* Implement rem.ll:test3Chris Lattner2004-07-061-0/+18
| | | | llvm-svn: 14640
* Fix a minor bug where we would go into infinite loops on some constantsChris Lattner2004-07-061-1/+2
| | | | llvm-svn: 14638
* Implement InstCombine/sub.ll:test15: X % -Y === X % YChris Lattner2004-07-061-2/+9
| | | | | | | 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
* Add #include <iostream> since Value.h does not #include it any more.Reid Spencer2004-07-0412-0/+15
| | | | llvm-svn: 14622
* Implement add.ll:test22, a common case in MSIL filesChris Lattner2004-07-031-0/+18
| | | | llvm-svn: 14587
* Do not call getTypeSize on a type that has no sizeChris Lattner2004-07-021-1/+2
| | | | llvm-svn: 14584
* Get rid of a dead variable, and fix a typo in a comment.Brian Gaeke2004-07-021-4/+1
| | | | llvm-svn: 14560
* Make this pass use a more specific debug message than "Processing:".Brian Gaeke2004-07-012-2/+2
| | | | llvm-svn: 14541
* Restoring this file.Vikram S. Adve2004-06-291-0/+76
| | | | llvm-svn: 14478
* Remove unused fileChris Lattner2004-06-281-495/+0
| | | | llvm-svn: 14460
* These passes are long dead/obsolete. They never worked in the first placeChris Lattner2004-06-281-188/+0
| | | | | | and are a maintenence burden. Nuke nuke nuke llvm-svn: 14457
* Implement InstCombine/add.ll:test21Chris Lattner2004-06-271-1/+6
| | | | llvm-svn: 14443
* New constant expression lowering pass to simplify your instruction selection ↵Chris Lattner2004-06-251-0/+171
| | | | | | | | needs. Contributed by Vladimir Prus! llvm-svn: 14399
* This file is unused, and duplicates functionality in TraceValues.cpp.Vikram S. Adve2004-06-241-76/+0
| | | | llvm-svn: 14369
* Two fixes. First, stop using the ugly shouldSubstituteIndVar method.Chris Lattner2004-06-241-1/+7
| | | | | | | Second, disable substitution of quadratic addrec expressions to avoid putting multiplies in loops! llvm-svn: 14358
* Moved to lib/VMCoreMisha Brukman2004-06-231-927/+0
| | | | llvm-svn: 14348
* Use new IsNAN() wrapper.Brian Gaeke2004-06-231-15/+2
| | | | llvm-svn: 14340
* File depends on DSA, moved to lib/Analysis/DataStructureMisha Brukman2004-06-221-495/+0
| | | | llvm-svn: 14325
* *FINALLY* Fix a really nasty nondeterministic bug that has been haunting usChris Lattner2004-06-211-6/+7
| | | | | | | | | | | since May 1st. In this code, the pred iterator was being invalidated sometimes causing the wrong entries to be added to PHI nodes. The fix for this is to defererence and safe the *PI value before we hack on branch instructions, which changes use/def chains, which SOMETIMES invalidates the iterator. llvm-svn: 14278
* Comment out the isnan stuff until we get a proper autoconf test for itChris Lattner2004-06-211-1/+7
| | | | | | breaking the build on sparc is not acceptable. llvm-svn: 14277
* Make order of argument addition deterministic. In particular, the layoutChris Lattner2004-06-211-10/+35
| | | | | | | of ConstantInt objects in memory used to determine which order arguments were added in in some cases. llvm-svn: 14276
* Make use of BinaryOperator::create* methods to shrinkify code.Chris Lattner2004-06-201-21/+14
| | | | llvm-svn: 14262
* Fix the inliner to be deterministic, not letting its output depend on theChris Lattner2004-06-201-4/+3
| | | | | | relative location of Function objects in memory. llvm-svn: 14260
* Add some DEBUG output to the simplifycfg routinesChris Lattner2004-06-201-14/+13
| | | | | | | Fix another non-deterministic behavior, this one should actually speed up the code though as it was doing silly things. llvm-svn: 14258
* Now that dominator tree children are built in determinstic order, this ↵Chris Lattner2004-06-191-16/+2
| | | | | | | | horrible code can go away llvm-svn: 14254
* This will hopefully fix a heisenbug that Vladimir Merzliakov is runningChris Lattner2004-06-191-0/+1
| | | | | | into valiantly trying to compile stuff on freebsd. llvm-svn: 14251
* Fix a nasty bug, noticed by ReidChris Lattner2004-06-191-1/+1
| | | | llvm-svn: 14249
* Fix one source of nondeterminism in the -licm pass: the hoist passChris Lattner2004-06-191-2/+16
| | | | | | | was processing blocks in whatever order they happened to end up in the dominator tree data structure. Force an ordering. llvm-svn: 14248
OpenPOWER on IntegriCloud