summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
Commit message (Collapse)AuthorAgeFilesLines
* simplify: CallSite::get --> CallSite constructorGabor Greif2010-07-271-4/+4
| | | | llvm-svn: 109506
* simplifyGabor Greif2010-07-271-1/+1
| | | | llvm-svn: 109502
* Add an initial implementation of LazyValueInfo updating for JumpThreading. ↵Owen Anderson2010-07-261-0/+3
| | | | | | Disabled for now. llvm-svn: 109424
* Remove LCSSA's bogus dependence on LoopSimplify and LoopSimplify's bogusDan Gohman2010-07-264-19/+12
| | | | | | | | | | | | | | dependence on DominanceFrontier. Instead, add an explicit DominanceFrontier pass in StandardPasses.h to ensure that it gets scheduled at the right time. Declare that loop unrolling preserves ScalarEvolution, and shuffle some getAnalysisUsages. This eliminates one LoopSimplify and one LCCSA run in the standard compile opts sequence. llvm-svn: 109413
* Preserve ScalarEvolution in the loop unroller.Dan Gohman2010-07-261-0/+6
| | | | llvm-svn: 109412
* Use DominatorTree::properlyDominates instead of dominates with anDan Gohman2010-07-261-1/+1
| | | | | | explicit inequality check. llvm-svn: 109401
* A block dominates itself, by definition.Dan Gohman2010-07-261-1/+1
| | | | llvm-svn: 109400
* Revert this because we can't clone cyclic MDNodes which are creating during aNick Lewycky2010-07-241-3/+4
| | | | | | build of llvm-gcc. llvm-svn: 109355
* Whether function-local or not, a MDNode may reference a Function in which caseNick Lewycky2010-07-241-4/+3
| | | | | | | it needs to be mapped to refer to the function in the new module, not the old one. Fixes PR7700. llvm-svn: 109353
* Speculatively revert 109117Devang Patel2010-07-221-27/+6
| | | | llvm-svn: 109132
* keep in 80 colsGabor Greif2010-07-221-3/+4
| | | | llvm-svn: 109122
* Map MDNode correctly. Devang Patel2010-07-221-6/+27
| | | | | | A non function local MDNode can have an operand which is cloned by MapValue(). llvm-svn: 109117
* mass elimination of reliance on automatic iterator dereferencingGabor Greif2010-07-228-10/+10
| | | | llvm-svn: 109103
* simplifyGabor Greif2010-07-221-3/+2
| | | | llvm-svn: 109101
* do not access arguments via low-level interface, do not multiply dereference ↵Gabor Greif2010-07-221-17/+19
| | | | | | use_iterators llvm-svn: 109100
* pass dereferenced iterator to dyn_castGabor Greif2010-07-221-1/+1
| | | | llvm-svn: 109099
* pass dereferenced iterator to dyn_castGabor Greif2010-07-221-1/+1
| | | | llvm-svn: 109098
* undo 80 column trespassing I causedGabor Greif2010-07-225-22/+30
| | | | llvm-svn: 109092
* Make NamedMDNode not be a subclass of Value, and simplify the interfaceDan Gohman2010-07-211-4/+2
| | | | | | for creating and populating NamedMDNodes. llvm-svn: 109061
* Fix batch of converting RegisterPass<> to INTIALIZE_PASS().Owen Anderson2010-07-2154-108/+119
| | | | llvm-svn: 109045
* Make this code a little more readable.Dan Gohman2010-07-201-2/+4
| | | | llvm-svn: 108968
* Use DebugLocs instead of MDNodes.Dan Gohman2010-07-201-32/+27
| | | | llvm-svn: 108967
* Fix a typo.Dan Gohman2010-07-201-1/+1
| | | | llvm-svn: 108962
* Don't look up the "dbg" metadata kind by name.Dan Gohman2010-07-203-15/+14
| | | | llvm-svn: 108961
* Use getDebugLoc and setDebugLoc instead of getDbgMetadata and setDbgMetadata,Dan Gohman2010-07-201-4/+2
| | | | | | avoiding MDNode overhead. llvm-svn: 108909
* Remember that the induction variable is always a PHINode andDan Gohman2010-07-201-4/+4
| | | | | | | use getIncomingValueForBlock instead of LoopInfo::getCanonicalInductionVariableIncrement. llvm-svn: 108865
* Tweak per Chris' comments.Owen Anderson2010-07-191-7/+8
| | | | llvm-svn: 108736
* Reimplement r108639 in InstCombine rather than DAGCombine.Owen Anderson2010-07-191-0/+26
| | | | llvm-svn: 108687
* Another attempt at getting the clang self-host to like my instcombine patch.Owen Anderson2010-07-171-0/+32
| | | | llvm-svn: 108614
* eliminate unlockedRefineAbstractTypeTo, types are all per-llvmcontext,Chris Lattner2010-07-161-1/+1
| | | | | | so there is no locking involved in type refinement. llvm-svn: 108553
* Reorder the contents of various getAnalysisUsage functions, eliminatingDan Gohman2010-07-164-20/+23
| | | | | | a redundant loopsimplify run from the default -O2 sequence. llvm-svn: 108539
* Remove the rest of my instcombine changes. Back to the drawing board on ↵Owen Anderson2010-07-161-28/+0
| | | | | | this one. llvm-svn: 108530
* eliminate CallInst::ArgOffsetGabor Greif2010-07-164-13/+13
| | | | llvm-svn: 108522
* Arrays and vectors with different numbers of elements are not equivalent.Nick Lewycky2010-07-161-4/+10
| | | | llvm-svn: 108517
* Also revert 108422, it's causing some test failures.Eric Christopher2010-07-161-19/+0
| | | | | | Working on testcases for Owen. llvm-svn: 108494
* Don't merge uses when they are targetting fixup sites withDan Gohman2010-07-151-1/+20
| | | | | | | | | | | | | different widths. In a use with a narrower fixup, formulae may be wider than the fixup, in which case the high bits aren't necessarily meaningful, so it isn't safe to reuse them for uses with wider fixups. This fixes PR7618, though the testcase is too large for a reasonable regression test, since it heavily dependes on hitting LSR's heuristics in a certain way. llvm-svn: 108455
* Use dbgs() instead of errs() in a DEBUG.Dan Gohman2010-07-151-1/+1
| | | | llvm-svn: 108453
* Speculatively revert r108429 to fix the clang self-host.Owen Anderson2010-07-152-19/+28
| | | | llvm-svn: 108436
* Per Chris' suggestion, get rid of the select canonicalization and just addOwen Anderson2010-07-152-28/+19
| | | | | | | | the corresponding or-icmp-and pattern. This has the added benefit of doing the matching earlier, and thus being less susceptible to being confused by earlier transforms. llvm-svn: 108429
* Remove unneeded check, and correct style.Owen Anderson2010-07-151-3/+2
| | | | llvm-svn: 108427
* Watch out for a constant offset cancelling out a base register, formingDan Gohman2010-07-151-2/+9
| | | | | | | a zero. This situation arrises in Fortran code with induction variables that start at 1 instead of 0. This fixes PR7651. llvm-svn: 108424
* Reapply r108378, with bugfixes, testcase, and improved comment formatting.Owen Anderson2010-07-152-0/+47
| | | | | | This now passes LIT, nighty test, and llvm-gcc bootstrap on my machine. llvm-svn: 108422
* This is a full sentence.Nick Lewycky2010-07-151-1/+1
| | | | llvm-svn: 108418
* Disable aliases on all platforms.Nick Lewycky2010-07-151-0/+5
| | | | llvm-svn: 108417
* make various clients of ReplaceAndSimplifyAllUses tolerate Chris Lattner2010-07-151-2/+3
| | | | | | | | it *changing* the things it replaces, not just causing them to drop to null. There is no functionality change yet, but this is required for a subsequent patch. llvm-svn: 108414
* Speculatively revert r108378; may be causing bootstrap failures.Eli Friedman2010-07-152-43/+0
| | | | llvm-svn: 108389
* Add instcombine transforms to optimize tests of multiple bits of the same ↵Owen Anderson2010-07-142-0/+43
| | | | | | value into a single larger comparison. llvm-svn: 108378
* Extend SimplifyCFG's common-destination folding heuristic to allow a singleOwen Anderson2010-07-141-5/+67
| | | | | | | | | | "bonus" instruction to be speculatively executed. Add a heuristic to ensure we're not tripping up out-of-order execution by checking that this bonus instruction only uses values that were already guaranteed to be available. This allows us to eliminate the short circuit in (x&1)&&(x&2). llvm-svn: 108351
* revert r108320, I see the failures now...Chris Lattner2010-07-141-8/+0
| | | | llvm-svn: 108322
* reapply benjamin's instcombine patch, I don't see anything wrong with it and ↵Chris Lattner2010-07-141-0/+8
| | | | | | can't repro any problems with a manual self-host. llvm-svn: 108320
OpenPOWER on IntegriCloud