aboutsummaryrefslogtreecommitdiff
path: root/lib/Transforms/Utils/CodeExtractor.cpp
AgeCommit message (Collapse)Author
2004-03-18Seriously simplify and correct the PHI node handling code.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12487 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-18Fix CodeExtractor/2004-03-17-OutputMismatch.llChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12486 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-18Fix several bugs in the extractor:Chris Lattner
1. Names were not put on the new arguments created (ok, this just helps sanity :) 2. Fix outgoing pointer values 3. Do not insert stores for values that had not been computed 4. Fix some wierd problems with the outset calculation This fixes CodeExtractor/2004-03-14-DominanceProblem.ll, making the extractor work on at least one simple case! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12484 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-18Prune #includes, moving the module interface to the front. Note that thisChris Lattner
exposed the fact that the header was not self-contained. There is a reason we do things :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12481 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-15Mostly cosmetic improvements. Do fix the bug where a global value was ↵Chris Lattner
considered an input. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12406 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-15Assert that input blocks meet the invariants we expectChris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12405 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14No correctness fixes here, just minor qoi fixes:Chris Lattner
* 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12402 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14Simplify code a bit, and fix bug CodeExtractor/2004-03-14-NoSwitchSupport.llChris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12401 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14Simplify the code a bit by making the collection of basic blocks to extractChris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12400 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14Minor random cleanupsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12382 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14Verify functions as they are produced if -debug is specified. ReduceChris Lattner
curly braceage git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12378 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-02Implement ExtractCodeRegion()Misha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12070 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-01* Add implementation of ExtractBasicBlock()Misha Brukman
* Add comments to ExtractLoop() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12053 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-28A generic code extractor: given a list of BasicBlocks, it will rip them out intoMisha Brukman
a new function, taking care of inputs and outputs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11935 91177308-0d34-0410-b5e6-96231b3b80d8