summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/LICM.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Change uses of Function::front to Function::getEntryBlock for readability.Dan Gohman2007-03-221-1/+1
| | | | llvm-svn: 35265
* Now LICM is a LoopPass.Devang Patel2007-03-071-30/+26
| | | | llvm-svn: 35001
* Apply the VISIBILITY_HIDDEN field to the remaining anonymous classes inReid Spencer2007-02-051-2/+3
| | | | | | | the Transforms library. This reduces debug library size by 132 KB, debug binary size by 376 KB, and reduces link time for llvm tools slightly. llvm-svn: 33939
* Changes to support making the shift instructions be true BinaryOperators.Reid Spencer2007-02-021-1/+1
| | | | | | | | | | | | This feature is needed in order to support shifts of more than 255 bits on large integer types. This changes the syntax for llvm assembly to make shl, ashr and lshr instructions look like a binary operator: shl i32 %X, 1 instead of shl i32 %X, i8 1 Additionally, this should help a few passes perform additional optimizations. llvm-svn: 33776
* Adjust #includes to match movement of constant folding code from ↵Chris Lattner2007-01-301-1/+1
| | | | | | transformutils to libanalysis. llvm-svn: 33680
* For PR950:Reid Spencer2006-12-231-1/+1
| | | | | | | | This patch removes the SetCC instructions and replaces them with the ICmp and FCmp instructions. The SetCondInst instruction has been removed and been replaced with ICmpInst and FCmpInst. llvm-svn: 32751
* Switch over Transforms/Scalar to use the STATISTIC macro. For each statisticChris Lattner2006-12-191-7/+6
| | | | | | | converted, we lose a static initializer. This also allows GCC to emit warnings about unused statistics. llvm-svn: 32690
* Detemplatize the Statistic class. The only type it is instantiated withChris Lattner2006-12-061-5/+5
| | | | | | is 'unsigned'. llvm-svn: 32279
* For PR950:Reid Spencer2006-11-271-0/+1
| | | | | | | | | | The long awaited CAST patch. This introduces 12 new instructions into LLVM to replace the cast instruction. Corresponding changes throughout LLVM are provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the exception of 175.vpr which fails only on a slight floating point output difference. llvm-svn: 31931
* Removed #include <iostream> and replaced with llvm_* streams.Bill Wendling2006-11-261-5/+3
| | | | llvm-svn: 31923
* An sinkable instruction may exist with uses, if those uses are in dead blocks.Chris Lattner2006-09-121-0/+4
| | | | | | Handle this. This fixes PR908 and Transforms/LICM/2006-09-12-DeadUserOfSunkInstr.ll llvm-svn: 30275
* eliminate RegisterOpt. It does the same thing as RegisterPass.Chris Lattner2006-08-271-1/+1
| | | | llvm-svn: 29925
* random code cleanups, no functionality changeChris Lattner2006-06-261-9/+8
| | | | llvm-svn: 28914
* Make iostream #inclusion explicitChris Lattner2006-01-221-0/+1
| | | | llvm-svn: 25514
* prevent va_arg from being hoisted from a loopAndrew Lenharth2005-06-201-1/+1
| | | | llvm-svn: 22265
* core changes for varargsAndrew Lenharth2005-06-181-1/+1
| | | | llvm-svn: 22254
* Remove trailing whitespaceMisha Brukman2005-04-211-26/+26
| | | | llvm-svn: 21427
* Fix a bug where LICM was not updating AA information properly when sinkingChris Lattner2005-03-251-1/+2
| | | | | | a pointer value out of a loop causing it to be duplicated. llvm-svn: 20828
* enable -debug-only=licmChris Lattner2005-03-231-0/+1
| | | | llvm-svn: 20788
* Adjust to new interfacesChris Lattner2004-12-151-2/+3
| | | | llvm-svn: 18958
* Allow hoisting loads of globals and alloca's in conditionals.Chris Lattner2004-11-291-0/+6
| | | | llvm-svn: 18363
* Provide size information when checking to see if we can LICM a load, thisChris Lattner2004-11-261-3/+6
| | | | | | allows us to hoist more loads in some cases. llvm-svn: 18265
* Fix a bug in the previous checkin that broke 255.vortexChris Lattner2004-09-151-1/+1
| | | | llvm-svn: 16355
* Make sure to update alias analysis information as we transform the function.Chris Lattner2004-09-151-21/+57
| | | | | | This fixes PR420 and Regression/Transforms/LICM/2004-09-14-AliasAnalysisInvalidate.llx llvm-svn: 16348
* Changes For Bug 352Reid Spencer2004-09-011-3/+3
| | | | | | | | Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. llvm-svn: 16137
* Fix hoisting of void typed values, e.g. callsChris Lattner2004-07-271-7/+13
| | | | llvm-svn: 15263
* 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
* 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
* Fix typo in DEBUG printout.Brian Gaeke2004-06-171-1/+1
| | | | llvm-svn: 14196
* Adjust to the changes in the AliasSetTracker interfaceChris Lattner2004-05-231-16/+14
| | | | llvm-svn: 13690
* Move isLoopInvariant to the Loop classChris Lattner2004-04-181-10/+2
| | | | llvm-svn: 13051
* Loop exit sets are no longer explicitly held, they are dynamically computed ↵Chris Lattner2004-04-181-3/+6
| | | | | | on demand. llvm-svn: 13046
* Implement LICM of calls in simple cases. This is sufficient to move aroundChris Lattner2004-03-151-1/+31
| | | | | | | | sin/cos/strlen calls and stuff. This implements: LICM/call_sink_pure_function.ll LICM/call_sink_const_function.ll llvm-svn: 12415
* Update commentChris Lattner2004-02-021-1/+1
| | | | llvm-svn: 11082
* Improve encapsulation in the Loop and LoopInfo classes by eliminating theChris Lattner2004-01-081-7/+4
| | | | | | | getSubLoops/getTopLevelLoops methods, replacing them with iterator-based accessors. llvm-svn: 10714
* Remove the wierd "Operands" loop, by traversing basicblocks in reverse orderChris Lattner2003-12-191-14/+14
| | | | llvm-svn: 10536
* Implement LICM/sink_multiple.ll, by sinking all possible instructions in theChris Lattner2003-12-191-20/+55
| | | | | | loop before hoisting any. llvm-svn: 10534
* When we delete instructions from the loop, make sure to remove them from theChris Lattner2003-12-181-0/+2
| | | | | | AliasSetTracker as well. llvm-svn: 10507
* Do not promote volatile alias sets into registersChris Lattner2003-12-141-1/+1
| | | | llvm-svn: 10458
* Fix LICM/2003-12-11-SinkingToPHI.ll, and quite possibly all of the other ↵Chris Lattner2003-12-111-2/+11
| | | | | | known problems in the universe. llvm-svn: 10409
* Fix bug: LICM/sink_multiple_exits.llChris Lattner2003-12-101-1/+1
| | | | | | Thanks for pointing this out John :) llvm-svn: 10387
* Don't allow dead instructions to stop sinking early.Chris Lattner2003-12-101-10/+9
| | | | llvm-svn: 10386
* Simplify codeChris Lattner2003-12-101-6/+1
| | | | llvm-svn: 10371
* Avoid performing two identical lookups when one will sufficeChris Lattner2003-12-101-3/+1
| | | | llvm-svn: 10370
* Make LICM itself a bit more efficient, and make the generated code more ↵Chris Lattner2003-12-101-21/+26
| | | | | | efficient too: don't insert a store in every exit block, because a particular block may be exited to more than once by a loop llvm-svn: 10369
* Implement instruction sinking out of loops. This still can do a little bitChris Lattner2003-12-101-61/+246
| | | | | | | better job, but this is the majority of the work. This implements LICM/sink*.ll llvm-svn: 10358
* Refactor code a little bit, eliminating the gratuitous InstVisitor, whichChris Lattner2003-12-091-41/+43
| | | | | | | should make subsequent changes simpler. This also allows us to hoist vaarg and vanext instructions llvm-svn: 10342
* Fine grainify namespacificationChris Lattner2003-12-091-36/+48
| | | | | | | Code cleanups Make LICM::SafeToHoist marginally more efficient llvm-svn: 10341
* Put all LLVM code into the llvm namespace, as per bug 109.Brian Gaeke2003-11-111-0/+4
| | | | llvm-svn: 9903
* Declare FunctionPasses as such so that they can be used in FunctionPassManager.Misha Brukman2003-11-071-1/+1
| | | | llvm-svn: 9768
OpenPOWER on IntegriCloud