summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Simplify the code a bit by making the collection of basic blocks to extractChris Lattner2004-03-141-57/+39
| | | | | | | a member of the class. While we're at it, turn the collection into a set instead of a vector to improve efficiency and make queries simpler. llvm-svn: 12400
* Another API change to MRegisterInfo::foldMemoryOperand. Instead of aAlkis Evlogimenos2004-03-142-5/+4
| | | | | | MachineBasicBlock::iterator take a MachineInstr*. llvm-svn: 12392
* Split into two passes. Now there is the general loop extractor, usable onChris Lattner2004-03-141-6/+24
| | | | | | the command line, and the single loop extractor, usable by bugpoint llvm-svn: 12390
* Change MRegisterInfo::foldMemoryOperand to return the foldedAlkis Evlogimenos2004-03-144-182/+178
| | | | | | instruction to make the API more flexible. llvm-svn: 12386
* Passes don't print stuff!Chris Lattner2004-03-141-2/+0
| | | | llvm-svn: 12385
* Do not create empty basic blocks when the lowerswitch pass expects blocks toChris Lattner2004-03-141-5/+2
| | | | | | be non-empty! This fixes LowerSwitch/2004-03-13-SwitchIsDefaultCrash.ll llvm-svn: 12384
* Minor random cleanupsChris Lattner2004-03-141-9/+7
| | | | llvm-svn: 12382
* FunctionPass's should not define their own 'run' method.Chris Lattner2004-03-141-8/+2
| | | | | | | Require 'simplified' loops, not just raw natural loops. This fixes CodeExtractor/2004-03-13-LoopExtractorCrash.ll llvm-svn: 12381
* If a block is dead, dominators will not be calculated for it. Because of thisChris Lattner2004-03-141-2/+33
| | | | | | | | loop information won't see it, and we could have unreachable blocks pointing to the non-header node of blocks in a natural loop. This isn't tidy, so have the loopsimplify pass clean it up. llvm-svn: 12380
* Catch some more cases of broken code. The loop extractor seems to be creatingChris Lattner2004-03-141-3/+8
| | | | | | situations where there is a branch that goes to a block in another function. llvm-svn: 12379
* Verify functions as they are produced if -debug is specified. ReduceChris Lattner2004-03-141-6/+5
| | | | | | curly braceage llvm-svn: 12378
* verifyFunction has been broken for a long time now. Fix it.Chris Lattner2004-03-141-12/+8
| | | | llvm-svn: 12377
* Move prototype to IPO.h instead of Scalar.hChris Lattner2004-03-141-3/+2
| | | | | | | Make sure that the file interface header (IPO.h) is included first remove dead #incldue llvm-svn: 12375
* Indent anon namespace properly, add copyright blockChris Lattner2004-03-141-19/+20
| | | | llvm-svn: 12373
* Move to the IPO library. Utils shouldn't contain passes.Chris Lattner2004-03-141-0/+0
| | | | llvm-svn: 12372
* DemoteRegToStack got moved from DemoteRegToStack.h to Local.hChris Lattner2004-03-143-6/+6
| | | | llvm-svn: 12368
* Add some debugging outputChris Lattner2004-03-131-1/+8
| | | | | | | Fix InstCombine/2004-03-13-InstCombineInfLoop.ll which caused an infinite loop compiling (I think) povray. llvm-svn: 12365
* This change makes two big adjustments.Chris Lattner2004-03-131-11/+49
| | | | | | | | | | * Be a lot more accurate about what the effects will be when inlining a call to a function when an argument is an alloca. * Dramatically reduce the penalty for inlining a call in a large function. This heuristic made it almost impossible to inline a function into a large function, no matter how small the callee is. llvm-svn: 12363
* This little patch speeds up the loop used to update the dominator set analysis.Chris Lattner2004-03-131-17/+18
| | | | | | | | | | | | | On the testcase from GCC PR12440, which has a LOT of loops (1392 of which require preheaders to be inserted), this speeds up the loopsimplify pass from 1.931s to 0.1875s. The loop in question goes from 1.65s -> 0.0097s, which isn't bad. All of these times are a debug build. This adds a dependency on DominatorTree analysis that was not there before, but we always had dominatortree available anyway, because LICM requires both loop simplify and DT, so this doesn't add any extra analysis in practice. llvm-svn: 12362
* Fix a tiny bug that caused an incorrect assertion failure poolallocatingChris Lattner2004-03-131-4/+6
| | | | | | boxed-sim. llvm-svn: 12358
* It helps if I save the file. :)Chris Lattner2004-03-131-3/+3
| | | | llvm-svn: 12357
* Rename the intrinsic enum values for llvm.va_* from Intrinsic::va_* toChris Lattner2004-03-138-32/+27
| | | | | | Intrinsic::va*. This avoid conflicting with macros in the stdlib.h file. llvm-svn: 12356
* Implement sub.ll:test14Chris Lattner2004-03-131-8/+29
| | | | llvm-svn: 12355
* Implement InstCombine/sub.ll:test12 & test13Chris Lattner2004-03-121-0/+36
| | | | llvm-svn: 12353
* Fix a couple of minor problems. Because PHI nodes can use themselves, thisChris Lattner2004-03-121-4/+1
| | | | | | could cause infinite loops. Also, getUnderlyingObject can return null llvm-svn: 12351
* Implement mod/ref analysis for a trivial case where locals don't escape.Chris Lattner2004-03-121-0/+52
| | | | | | | This comes up when you have a local array on the stack and you never pass the address of elements around. llvm-svn: 12349
* Make -print-machineinstrs show us the code both before and after reg. alloc.Brian Gaeke2004-03-121-1/+4
| | | | llvm-svn: 12344
* Add support for a wider range of CMOV instructions.Alkis Evlogimenos2004-03-121-2/+54
| | | | llvm-svn: 12336
* Simplify code to process CallSites (thanks to Chris).Misha Brukman2004-03-121-4/+2
| | | | llvm-svn: 12334
* Keep transitively-required passes alive for queries to work after the initialMisha Brukman2004-03-121-1/+10
| | | | | | user pass is destroyed. llvm-svn: 12332
* Evaluate ModRef information in addition to regular ol' pointer analysis.Misha Brukman2004-03-121-24/+93
| | | | llvm-svn: 12331
* Implement getModRefInfo() for DSA to calculate whether a function modifies orMisha Brukman2004-03-121-5/+39
| | | | | | references a pointer. llvm-svn: 12330
* Add support for checking the select instructionChris Lattner2004-03-121-0/+11
| | | | llvm-svn: 12325
* Know the opcode name of the select instructionChris Lattner2004-03-121-0/+1
| | | | llvm-svn: 12324
* Add support for select constant expressions. Use reserve a bit more to avoidChris Lattner2004-03-121-0/+35
| | | | | | memory wasteage. llvm-svn: 12323
* Add new functionChris Lattner2004-03-121-0/+3
| | | | llvm-svn: 12322
* Teach the constant folder how to do select instructionsChris Lattner2004-03-121-0/+11
| | | | llvm-svn: 12321
* Print select instructions correctlyChris Lattner2004-03-121-2/+3
| | | | llvm-svn: 12320
* Add constant folding wrapper support for select instructions.Chris Lattner2004-03-121-0/+4
| | | | llvm-svn: 12319
* Add sccp support for select instructionsChris Lattner2004-03-121-0/+23
| | | | llvm-svn: 12318
* Add trivial optimizations for select instructionsChris Lattner2004-03-121-0/+15
| | | | llvm-svn: 12317
* ADd support for select instructionsChris Lattner2004-03-121-0/+12
| | | | llvm-svn: 12316
* Write select instructions to bytecodeChris Lattner2004-03-121-1/+2
| | | | llvm-svn: 12315
* Read select instrs from bytecodeChris Lattner2004-03-121-0/+5
| | | | llvm-svn: 12314
* Allow parsing select instruction and constant exprChris Lattner2004-03-122-1/+16
| | | | llvm-svn: 12313
* Make code more readable.Misha Brukman2004-03-121-35/+31
| | | | llvm-svn: 12305
* Fix indentation.Misha Brukman2004-03-111-2/+2
| | | | llvm-svn: 12298
* Move implementations of functions here, which avoids #including <cstdlib> in theMisha Brukman2004-03-111-0/+86
| | | | | | header file and all those who #include it. llvm-svn: 12297
* Get rid of the abort in PhyRegAlloc::finishSavingState().Brian Gaeke2004-03-111-5/+6
| | | | | | | | Make an explicit call to it from runOnFunction() if we know we're supposed to write into the global. This is lame (esp. the const_cast), but it solves the problem. llvm-svn: 12291
* Give pass a nameBrian Gaeke2004-03-111-0/+1
| | | | llvm-svn: 12290
OpenPOWER on IntegriCloud