| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | s/convertable/convertible/g | Misha Brukman | 2003-05-20 | 1 | -1/+1 | |
| | | | | | llvm-svn: 6248 | |||||
| * | Fix long standing bug | Chris Lattner | 2003-05-15 | 1 | -1/+1 | |
| | | | | | llvm-svn: 6232 | |||||
| * | Fix bug: LoopPreheaders/2003-05-12-PreheaderExitOfChild.ll | Chris Lattner | 2003-05-12 | 1 | -5/+19 | |
| | | | | | llvm-svn: 6153 | |||||
| * | Handle va_arg instruction correctly | Chris Lattner | 2003-05-08 | 1 | -0/+1 | |
| | | | | | llvm-svn: 6030 | |||||
| * | Fix spelling | Chris Lattner | 2003-05-02 | 1 | -1/+1 | |
| | | | | | llvm-svn: 5983 | |||||
| * | Fix Bug: LowerSwitch/2003-05-01-PHIProblem.ll | Chris Lattner | 2003-05-01 | 1 | -2/+12 | |
| | | | | | llvm-svn: 5979 | |||||
| * | Fix another case where constexprs could cause a crash | Chris Lattner | 2003-04-30 | 1 | -5/+2 | |
| | | | | | llvm-svn: 5972 | |||||
| * | Fix constant folding of constexprs | Chris Lattner | 2003-04-30 | 1 | -6/+3 | |
| | | | | | llvm-svn: 5971 | |||||
| * | Fix bug: ADCE/2003-04-25-PHIPostDominateProblem.ll | Chris Lattner | 2003-04-25 | 1 | -9/+10 | |
| | | | | | llvm-svn: 5952 | |||||
| * | Fix major problem with PHI node traversal: rechecking PHIs should go into | Chris Lattner | 2003-04-25 | 1 | -1/+1 | |
| | | | | | | | the visit function. The worklist is for when their lattice value changes. llvm-svn: 5927 | |||||
| * | Minor non-functional changes: | Chris Lattner | 2003-04-25 | 1 | -61/+47 | |
| | | | | | | | | | | * Spell propagate right * Improve performance of phi node handling * Delete using directive * Other minor changes llvm-svn: 5920 | |||||
| * | Remove unnecesary &*'s | Chris Lattner | 2003-04-23 | 10 | -17/+17 | |
| | | | | | llvm-svn: 5872 | |||||
| * | New pass to lower switch instructions to branch instructions | Chris Lattner | 2003-04-23 | 1 | -0/+102 | |
| | | | | | llvm-svn: 5865 | |||||
| * | Minor cleanups | Chris Lattner | 2003-04-23 | 1 | -6/+6 | |
| | | | | | llvm-svn: 5863 | |||||
| * | Change the interface to constant expressions to allow automatic folding | Chris Lattner | 2003-04-16 | 1 | -1/+1 | |
| | | | | | llvm-svn: 5793 | |||||
| * | Initial checkin of PRE on LLVM. This implementation is still lacking in | Chris Lattner | 2003-03-31 | 1 | -0/+614 | |
| | | | | | | | | | | | | | | | | several ways: * Load expressions are not PRE'd well. Alias Analysis should be used to get accurate information when computing anticipatibility. * The expression collection implementation does not handle PHI nodes properly, thus the implementation misses many opportunities to PRE. * This code could be sped up quite a bit Despite these flaws, the code seems to work well, and handles PR's as one would expect. llvm-svn: 5759 | |||||
| * | Move BreakCriticalEdges pass to lib/Transforms/Utils | Chris Lattner | 2003-03-21 | 1 | -155/+0 | |
| | | | | | llvm-svn: 5754 | |||||
| * | Add the following instcombine xforms: | Chris Lattner | 2003-03-11 | 1 | -29/+74 | |
| | | | | | | | | | - Implement simple reassociation: (A|c1)|(B|c2) == (A|B)|(c1|c2) - (A & C1)+(B & C2) -> (A & C1)|(B & C2) iff C1&C2 == 0 - (A & C1)^(B & C2) -> (A & C1)|(B & C2) iff C1&C2 == 0 llvm-svn: 5743 | |||||
| * | Implement: -A*-B == A*B | Chris Lattner | 2003-03-10 | 1 | -0/+4 | |
| | | | | | llvm-svn: 5740 | |||||
| * | Add new transformation: // (~A | ~B) == (~(A & B)) | Chris Lattner | 2003-03-10 | 1 | -8/+19 | |
| | | | | | llvm-svn: 5738 | |||||
| * | Generalize not and neg comparison testers to allow constant to be considered ↵ | Chris Lattner | 2003-03-10 | 1 | -27/+41 | |
| | | | | | | | | | | | | | | | | | | | | | not'able and neg'able. This allows optimization of this: int %test4(int %A, int %B) { %a = xor int %A, -1 %c = and int %a, 5 ; 5 = ~c2 %d = xor int %c, -1 ret int %d } into this: int %test4(int %A, int %B) { ; No predecessors! %c.demorgan = or int %A, -6 ; <int> [#uses=1] ret int %c.demorgan } llvm-svn: 5736 | |||||
| * | Generalize (A+c1)+c2 optimization to work with all associative operators | Chris Lattner | 2003-03-10 | 1 | -35/+50 | |
| | | | | | llvm-svn: 5733 | |||||
| * | Minor change, no functionality diff | Chris Lattner | 2003-03-10 | 1 | -3/+3 | |
| | | | | | llvm-svn: 5731 | |||||
| * | Fix bug: (x << 100) wasn't folded to 0, but (x >> 100) was (when x is unsigned) | Chris Lattner | 2003-03-10 | 1 | -7/+48 | |
| | | | | | | | Implement new shift optimizations for shifting the result of a shift. llvm-svn: 5729 | |||||
| * | Implement: (A|B)^B == A & (~B) | Chris Lattner | 2003-03-10 | 1 | -0/+25 | |
| | | | | | llvm-svn: 5728 | |||||
| * | Implement %test7 in InstCombine/getelementptr.ll | Chris Lattner | 2003-03-05 | 1 | -7/+21 | |
| | | | | | llvm-svn: 5704 | |||||
| * | Convert LICM over to use AliasSetTracker. Besides being nicer, this ↵ | Chris Lattner | 2003-03-03 | 1 | -164/+45 | |
| | | | | | | | | | automatically allows LICM to use access sizes to help alias analysis be more precise. llvm-svn: 5693 | |||||
| * | Change the mem2reg interface to accept a TargetData argument | Chris Lattner | 2003-03-03 | 2 | -3/+8 | |
| | | | | | llvm-svn: 5685 | |||||
| * | Fix bug: LICM/2003-02-28-PromoteDifferentType.ll | Chris Lattner | 2003-02-28 | 1 | -2/+8 | |
| | | | | | llvm-svn: 5675 | |||||
| * | Fix bug I introduced yesterday :( | Chris Lattner | 2003-02-28 | 1 | -1/+2 | |
| | | | | | llvm-svn: 5669 | |||||
| * | Fix bug: LICM/2003-02-27-PreheaderExitNodeUpdate.ll | Chris Lattner | 2003-02-28 | 1 | -1/+5 | |
| | | | | | llvm-svn: 5667 | |||||
| * | Fix bug: 2003-02-27-PreheaderExitNodeUpdate.ll by updating exit node info | Chris Lattner | 2003-02-27 | 1 | -0/+16 | |
| | | | | | llvm-svn: 5664 | |||||
| * | Add a new assertion to check that stuff is happening right | Chris Lattner | 2003-02-27 | 1 | -3/+8 | |
| | | | | | | | | Ironically the exit block modification code wasn't updating the exit block information itself. Fix this. llvm-svn: 5659 | |||||
| * | Fix bug: 2003-02-27-StoreSinkPHIs.ll | Chris Lattner | 2003-02-27 | 1 | -1/+4 | |
| | | | | | llvm-svn: 5658 | |||||
| * | * Don't forget to update Loop information! | Chris Lattner | 2003-02-27 | 1 | -3/+5 | |
| | | | | | | | | | * Remove bogus assertion: there may be a single outside predecessor and still need a new loop-preheader if the predecessor has multiple successors. See bug: LICM/2003-02-27-PreheaderProblem.ll llvm-svn: 5655 | |||||
| * | * Significant changes to the preheader insertion pass: | Chris Lattner | 2003-02-27 | 1 | -42/+219 | |
| | | | | | | | | | | - Now we perform loop exit-block splitting to ensure exit blocks are always dominated by the loop header. - We now preserve dominance frontier information - This fixes bug: LICM/2003-02-26-LoopExitNotDominated.ll llvm-svn: 5652 | |||||
| * | Convert to work with new AliasAnalysis interface by conservatively assuming ↵ | Chris Lattner | 2003-02-26 | 1 | -6/+6 | |
| | | | | | | | all pointers are arbitrarily large accesses llvm-svn: 5636 | |||||
| * | Rename Instruction::hasSideEffects() -> mayWriteToMemory() | Chris Lattner | 2003-02-24 | 2 | -2/+2 | |
| | | | | | llvm-svn: 5620 | |||||
| * | Initial implementation of Loop invariant memory->scalar promotion | Chris Lattner | 2003-02-24 | 1 | -33/+328 | |
| | | | | | llvm-svn: 5613 | |||||
| * | Split mem2reg promotion into two parts: a function which does the work, and | Chris Lattner | 2003-02-22 | 1 | -0/+59 | |
| | | | | | | | a pass which wraps the function. This allows other passes to use the functionality llvm-svn: 5610 | |||||
| * | 4 new transformations: | Chris Lattner | 2003-02-18 | 1 | -0/+42 | |
| | | | | | | | | | | * X*C + X --> X * (C+1) * X + X*C --> X * (C+1) * X - X*C --> X * (1-C) * X*C - X --> X * (C-1) llvm-svn: 5592 | |||||
| * | Add a variety of new transformations: | Chris Lattner | 2003-02-18 | 1 | -48/+140 | |
| | | | | | | | | | | | | | | | | | * A & ~A == 0 * A / (2^c) == A >> c if unsigned * 0 / A == 0 * 1.0 * A == A * A * (2^c) == A << c * A ^ ~A == -1 * A | ~A == -1 * 0 % X = 0 * A % (2^c) == A & (c-1) if unsigned * A - (A & B) == A & ~B * -1 - A == ~A llvm-svn: 5587 | |||||
| * | Fix typo | Chris Lattner | 2003-02-01 | 1 | -1/+1 | |
| | | | | | llvm-svn: 5458 | |||||
| * | Fix bug: ADCE/2003-01-22-PredecessorProblem.ll | Chris Lattner | 2003-01-23 | 1 | -7/+18 | |
| | | | | | llvm-svn: 5405 | |||||
| * | Fix a huge performance problem in reassociate by introducing a | Chris Lattner | 2002-12-15 | 1 | -1/+7 | |
| | | | | | | | rank map cache for instruction ranks llvm-svn: 5030 | |||||
| * | Minor changes: | Chris Lattner | 2002-12-15 | 1 | -19/+13 | |
| | | | | | | | | | * Reword comment to make more clear * Don't print out BB's after modification made * Don't delete and new an instruction when we need to move something, just move it. llvm-svn: 5029 | |||||
| * | Remove dead code | Chris Lattner | 2002-12-07 | 1 | -32/+0 | |
| | | | | | llvm-svn: 4952 | |||||
| * | Fix bug: 2002-12-05-MissedConstProp.ll pointed out by Casey Carter | Chris Lattner | 2002-12-05 | 1 | -1/+2 | |
| | | | | | llvm-svn: 4935 | |||||
| * | - Eliminated the deferred symbol table stuff in Module & Function, it really | Chris Lattner | 2002-11-20 | 1 | -5/+4 | |
| | | | | | | | wasn't an optimization and it was causing lots of bugs. llvm-svn: 4779 | |||||
| * | Fix warning | Chris Lattner | 2002-11-09 | 1 | -2/+4 | |
| | | | | | llvm-svn: 4649 | |||||

