summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Utils
Commit message (Collapse)AuthorAgeFilesLines
...
* MapValue support for MDNodes. This is similar to r109117, exceptDan Gohman2010-08-241-8/+27
| | | | | | | | that it avoids a lot of unnecessary cloning by avoiding remapping MDNode cycles when none of the nodes in the cycle actually need to be remapped. Also it uses the new temporary MDNode mechanism. llvm-svn: 111922
* Now that PassInfo and Pass::ID have been separated, move the rest of the ↵Owen Anderson2010-08-237-12/+14
| | | | | | passes over to the new registration API. llvm-svn: 111815
* fit in 80 colsChris Lattner2010-08-181-2/+3
| | | | llvm-svn: 111348
* remove some dead code.Chris Lattner2010-08-182-12/+2
| | | | llvm-svn: 111344
* Use the getUniquePredecessor() utility function, instead of doingDan Gohman2010-08-171-15/+5
| | | | | | what it does manually. llvm-svn: 111248
* Avoid #include <ScalarEvolution.h> in LoopSimplify.cpp, which doesn'tDan Gohman2010-08-161-2/+1
| | | | | | actually use ScalarEvolution. llvm-svn: 111124
* Instead, teach SimplifyCFG to trim non-address-taken blocks fromDan Gohman2010-08-161-2/+3
| | | | | | indirectbr destination lists. llvm-svn: 111122
* LoopSimplify shouldn't split loop backedges that use indirectbr. PR7867.Dan Gohman2010-08-141-0/+5
| | | | llvm-svn: 111061
* Teach SimplifyCFG how to simplify indirectbr instructions.Dan Gohman2010-08-142-13/+43
| | | | | | | | | | | - Eliminate redundant successors. - Convert an indirectbr with one successor into a direct branch. Also, generalize SimplifyCFG to be able to be run on a function entry block. It knows quite a few simplifications which are applicable to the entry block, and it only needs a few checks to avoid trouble with the entry block. llvm-svn: 111060
* Eliminate PromoteMemoryToRegisterID; just use addPreserved("mem2reg")Dan Gohman2010-08-064-5/+3
| | | | | | instead, as an example of what this looks like. llvm-svn: 110478
* Reapply r110396, with fixes to appease the Linux buildbot gods.Owen Anderson2010-08-068-15/+15
| | | | llvm-svn: 110460
* Revert r110396 to fix buildbots.Owen Anderson2010-08-068-15/+15
| | | | llvm-svn: 110410
* Don't use PassInfo* as a type identifier for passes. Instead, use the ↵Owen Anderson2010-08-058-15/+15
| | | | | | | | address of the static ID member as the sole unique type identifier. Clean up APIs related to this change. llvm-svn: 110396
* simplifyGabor Greif2010-07-281-2/+2
| | | | llvm-svn: 109589
* simplify: CallSite::get --> CallSite constructorGabor Greif2010-07-271-4/+4
| | | | llvm-svn: 109506
* Remove LCSSA's bogus dependence on LoopSimplify and LoopSimplify's bogusDan Gohman2010-07-262-16/+6
| | | | | | | | | | | | | | 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
* 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-222-3/+3
| | | | llvm-svn: 109103
* pass dereferenced iterator to dyn_castGabor Greif2010-07-221-1/+1
| | | | llvm-svn: 109098
* undo 80 column trespassing I causedGabor Greif2010-07-221-5/+6
| | | | 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-212-5/+6
| | | | llvm-svn: 109045
* Use DebugLocs instead of MDNodes.Dan Gohman2010-07-201-32/+27
| | | | llvm-svn: 108967
* Don't look up the "dbg" metadata kind by name.Dan Gohman2010-07-202-12/+12
| | | | llvm-svn: 108961
* Reorder the contents of various getAnalysisUsage functions, eliminatingDan Gohman2010-07-162-14/+17
| | | | | | a redundant loopsimplify run from the default -O2 sequence. llvm-svn: 108539
* eliminate CallInst::ArgOffsetGabor Greif2010-07-161-5/+5
| | | | llvm-svn: 108522
* Remove unneeded check, and correct style.Owen Anderson2010-07-151-3/+2
| | | | llvm-svn: 108427
* 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
* 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
* cache dereferenced iteratorsGabor Greif2010-07-121-4/+6
| | | | llvm-svn: 108133
* cache dereferenced iteratorsGabor Greif2010-07-121-3/+5
| | | | llvm-svn: 108132
* cache result of operator*Gabor Greif2010-07-091-3/+5
| | | | llvm-svn: 107984
* cache result of operator*Gabor Greif2010-07-091-2/+4
| | | | llvm-svn: 107983
* cache result of operator*Gabor Greif2010-07-091-2/+3
| | | | llvm-svn: 107981
* cache result of operator*Gabor Greif2010-07-091-4/+6
| | | | llvm-svn: 107975
* cache result of operator*Gabor Greif2010-07-091-2/+3
| | | | llvm-svn: 107974
* cache result of operator*Gabor Greif2010-07-091-3/+4
| | | | llvm-svn: 107968
* cache result of operator*Gabor Greif2010-07-091-3/+5
| | | | llvm-svn: 107966
* cache operator*'s result (in multiple functions)Gabor Greif2010-07-091-15/+22
| | | | llvm-svn: 107965
* MDString is already checked earlier.Devang Patel2010-07-021-1/+1
| | | | llvm-svn: 107516
* lowerinvoke needs to handle aggregate function args like sjlj eh does.Jim Grosbach2010-06-301-4/+4
| | | | llvm-svn: 107335
* use getArgOperand instead of getOperandGabor Greif2010-06-301-8/+8
| | | | llvm-svn: 107269
* use CallInst::ArgOffsetGabor Greif2010-06-281-1/+1
| | | | llvm-svn: 107003
* use ArgOperand API and CallInst::ArgOffsetGabor Greif2010-06-281-17/+17
| | | | llvm-svn: 107002
* The hasMemory argument is irrelevant to how the argumentDale Johannesen2010-06-251-2/+1
| | | | | | | | | for an "i" constraint should get lowered; PR 6309. While this argument was passed around a lot, this is the only place it was used, so it goes away from a lot of other places. llvm-svn: 106893
OpenPOWER on IntegriCloud