summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Make sure that pure calls don't kill loadsChris Lattner2004-03-151-0/+13
| | | | llvm-svn: 12416
* 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
* New testcases to test LICM of call instructionsChris Lattner2004-03-152-0/+30
| | | | llvm-svn: 12414
* Don't be COMPLETELY pessimistic in the face of function callsChris Lattner2004-03-151-4/+20
| | | | llvm-svn: 12413
* Tweak argumentChris Lattner2004-03-151-1/+1
| | | | llvm-svn: 12412
* Deinline a couple of methods. Improve comment.Chris Lattner2004-03-151-12/+7
| | | | llvm-svn: 12411
* Deinline some virtual methods, provide better mod/ref answers through theChris Lattner2004-03-151-5/+21
| | | | | | use of the boolean queries llvm-svn: 12410
* Pass through the boolean queriesChris Lattner2004-03-151-0/+12
| | | | llvm-svn: 12409
* Teach basicaa about some stdc functions.Chris Lattner2004-03-151-5/+100
| | | | llvm-svn: 12408
* Add two new methods which can be used to enable a bunch of transformationsChris Lattner2004-03-151-0/+22
| | | | | | in common cases. llvm-svn: 12407
* Mostly cosmetic improvements. Do fix the bug where a global value was ↵Chris Lattner2004-03-151-35/+23
| | | | | | considered an input. llvm-svn: 12406
* Assert that input blocks meet the invariants we expectChris Lattner2004-03-151-42/+38
| | | | | | | | Simplify the input/output finder. All elements of a basic block are instructions. Any used arguments are also inputs. An instruction can only be used by another instruction. llvm-svn: 12405
* New testcase that causes the code extractor to generate bogus code.Chris Lattner2004-03-151-0/+34
| | | | llvm-svn: 12404
* Fix several bugs in the loop extractor. In particular, subloops were neverChris Lattner2004-03-151-8/+48
| | | | | | | extracted, and a function that contained a single top-level loop never had the loop extracted, regardless of how much non-loop code there was. llvm-svn: 12403
* No correctness fixes here, just minor qoi fixes:Chris Lattner2004-03-141-30/+26
| | | | | | | | | | | | | * Don't insert a branch to the switch instruction after the call, just make it a single block. * Insert the new alloca instructions in the entry block of the original function instead of having them execute dynamically * Don't make the default edge of the switch instruction go back to the switch. The loop extractor shouldn't create new loops! * Give meaningful names to the alloca slots and the reload instructions * Some minor code simplifications llvm-svn: 12402
* Simplify code a bit, and fix bug CodeExtractor/2004-03-14-NoSwitchSupport.llChris Lattner2004-03-141-62/+34
| | | | | | | | | | This also implements a two minor improvements: * Don't insert live-out stores IN the region, insert them on the code path that exits the region * If the region is exited to the same block from multiple paths, share the switch statement entry, live-out store code, and the basic block. llvm-svn: 12401
* 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
* New testcase that crashes the loop extractorChris Lattner2004-03-141-0/+27
| | | | llvm-svn: 12399
* After reducing a miscompiled program down to the functions which are beingChris Lattner2004-03-142-28/+110
| | | | | | | | | miscompiled, try to use the loop extractor to reduce the program down to a loop nest that is being miscompiled. In practice, the loop extractor appears to have too many bugs for this to be useful, but hopefully they will be fixed soon... llvm-svn: 12398
* Fix a minor bug in runPassesOnChris Lattner2004-03-141-0/+1
| | | | llvm-svn: 12397
* Add a new "AutoDebugCrashes" optionChris Lattner2004-03-142-4/+17
| | | | llvm-svn: 12396
* Refactor to use a new methodChris Lattner2004-03-141-39/+15
| | | | llvm-svn: 12395
* Add new methodChris Lattner2004-03-142-0/+28
| | | | llvm-svn: 12394
* Refactor and clean up a bunch more code. No major functionality changes.Chris Lattner2004-03-146-89/+98
| | | | | | | | | | | | | | * Make several methods of bugdriver global functions (ParseInputFile, PrintFunctionList) * Make PrintFunctionList truncate the output after 10 entries, like the crash debugger did. This allows code sharing. * Add a couple of methods to BugDriver that allows us to eliminate some friends * Improve comments in ExtractFunction.cpp * Make classes that used to be friends up bugdriver now live in anon namespaces * Rip a bunch of functionality in the miscompilation tester into a new TestMergedProgram function for future code sharing. * Fix a bug in the miscompilation tester induced in my last checkin llvm-svn: 12393
* Another API change to MRegisterInfo::foldMemoryOperand. Instead of aAlkis Evlogimenos2004-03-143-6/+5
| | | | | | MachineBasicBlock::iterator take a MachineInstr*. llvm-svn: 12392
* Add a method to extract a loopChris Lattner2004-03-142-1/+42
| | | | llvm-svn: 12391
* 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
* Rename createLoopExtractorPass to createSingleLoopExtractorPassChris Lattner2004-03-141-63/+64
| | | | | | Doxygenify llvm-svn: 12389
* add a fixmeChris Lattner2004-03-141-0/+5
| | | | llvm-svn: 12388
* Refactor all of the "splitting a module into two pieces" code to avoidChris Lattner2004-03-145-129/+92
| | | | | | | code duplication. Also, don't use ReduceMiscompilingFunctions::TestFuncs to print out the final message. llvm-svn: 12387
* Change MRegisterInfo::foldMemoryOperand to return the foldedAlkis Evlogimenos2004-03-145-191/+188
| | | | | | 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
* New testcase that crashes the -lowerswitch passChris Lattner2004-03-141-0/+21
| | | | llvm-svn: 12383
* 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
* New testcase that crashes the loop extractorChris Lattner2004-03-141-0/+75
| | | | llvm-svn: 12376
* 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
* Move loop extractor to the IPO headerChris Lattner2004-03-142-8/+8
| | | | llvm-svn: 12374
* 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
* Remove dead fileChris Lattner2004-03-141-34/+0
| | | | llvm-svn: 12371
* DemoteRegToStack got moved from DemoteRegToStack.h to Local.hChris Lattner2004-03-143-6/+6
| | | | llvm-svn: 12368
* Move DemoteRegToStack prototype out of DemoteRegToStack.h to this file.Chris Lattner2004-03-141-0/+9
| | | | llvm-svn: 12367
* Document stuff that is known to be brokenChris Lattner2004-03-141-4/+26
| | | | llvm-svn: 12366
* 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
OpenPOWER on IntegriCloud