#
66219aba |
| 12-May-2004 |
Chris Lattner <sabre@nondot.org> |
Do not pass in the same argument to the extracted function more than once, and give the extracted function a more useful name than just foo_code.
llvm-svn: 13493
|
#
13d2ddfe |
| 12-May-2004 |
Chris Lattner <sabre@nondot.org> |
Implement support for code extracting basic blocks that have a return instruction in them.
llvm-svn: 13490
|
#
795c9933 |
| 12-May-2004 |
Chris Lattner <sabre@nondot.org> |
Implement splitting of PHI nodes, allowing block extraction of BB's that have PHI node entries from multiple outside-the-region blocks. This also fixes extraction of the entry block in a function.
Implement splitting of PHI nodes, allowing block extraction of BB's that have PHI node entries from multiple outside-the-region blocks. This also fixes extraction of the entry block in a function. Yaay.
This has successfully block extracted all (but one) block from the score_move function in obsequi (out of 33). Hrm, I wonder which block the bug is in. :)
llvm-svn: 13489
show more ...
|
#
3b2917bf |
| 12-May-2004 |
Chris Lattner <sabre@nondot.org> |
* Pull some code out into the definedInRegion/definedInCaller methods * Add a stub for the severSplitPHINodes which will allow us to bbextract bb's with PHI nodes in them soon. * Remove unused argu
* Pull some code out into the definedInRegion/definedInCaller methods * Add a stub for the severSplitPHINodes which will allow us to bbextract bb's with PHI nodes in them soon. * Remove unused arguments from findInputsOutputs * Dramatically simplify the code in findInputsOutputs. In particular, nothing really cares whether or not a PHI node is using something. * Move moveCodeToFunction to after emitCallAndSwitchStatement as that's the order they get called. * Fix a bug where we would code extract a region that included a call to vastart. Like 'alloca', calls to vastart must stay in the function that they are defined in. * Add some comments.
llvm-svn: 13482
show more ...
|
#
ffc49262 |
| 12-May-2004 |
Chris Lattner <sabre@nondot.org> |
Generate substantially better code when there are a limited number of exits from the extracted region. If the return has 0 or 1 exit blocks, the new function returns void. If it has 2 exits, it ret
Generate substantially better code when there are a limited number of exits from the extracted region. If the return has 0 or 1 exit blocks, the new function returns void. If it has 2 exits, it returns bool, otherwise it returns a ushort as before.
This allows us to use a conditional branch instruction when there are two exit blocks, as often happens during block extraction.
llvm-svn: 13481
show more ...
|
#
3d1ca67f |
| 12-May-2004 |
Chris Lattner <sabre@nondot.org> |
Two minor improvements: 1. Get rid of the silly abort block. When doing bb extraction, we get one abort block for every block extracted, which is kinda annoying. 2. If the switch ends up ha
Two minor improvements: 1. Get rid of the silly abort block. When doing bb extraction, we get one abort block for every block extracted, which is kinda annoying. 2. If the switch ends up having a single destination, turn it into an unconditional branch.
I would like to add support for conditional branches, but to do this we will want to have the function return a bool instead of a ushort.
llvm-svn: 13478
show more ...
|
#
3596f0a1 |
| 23-Apr-2004 |
Misha Brukman <brukman+llvm@gmail.com> |
* Allow aggregating extracted function arguments (controlled by flag) * Commandline option (for now) controls that flag that is passed in
llvm-svn: 13141
|
Revision tags: llvmorg-1.2.0 |
|
#
232155dc |
| 18-Mar-2004 |
Chris Lattner <sabre@nondot.org> |
Fix bug: CodeExtractor/2004-03-17-MissedLiveIns.ll With this fix we now successfully extract all 149 loops from 256.bzip2 without crashing or miscompiling the program!
llvm-svn: 12493
|
#
acd75986 |
| 18-Mar-2004 |
Chris Lattner <sabre@nondot.org> |
Fix CodeExtractor/2004-03-17-UpdatePHIsOutsideRegion.ll
llvm-svn: 12489
|
#
320d59f4 |
| 18-Mar-2004 |
Chris Lattner <sabre@nondot.org> |
Seriously simplify and correct the PHI node handling code.
llvm-svn: 12487
|
#
d8017a34 |
| 18-Mar-2004 |
Chris Lattner <sabre@nondot.org> |
Fix CodeExtractor/2004-03-17-OutputMismatch.ll
llvm-svn: 12486
|
#
37de257e |
| 18-Mar-2004 |
Chris Lattner <sabre@nondot.org> |
Fix several bugs in the extractor: 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 bee
Fix several bugs in the extractor: 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!
llvm-svn: 12484
show more ...
|
#
cee3404d |
| 18-Mar-2004 |
Chris Lattner <sabre@nondot.org> |
Prune #includes, moving the module interface to the front. Note that this exposed the fact that the header was not self-contained. There is a reason we do things :)
llvm-svn: 12481
|
#
fb87cdec |
| 15-Mar-2004 |
Chris Lattner <sabre@nondot.org> |
Mostly cosmetic improvements. Do fix the bug where a global value was considered an input.
llvm-svn: 12406
|
#
73ab1fa7 |
| 15-Mar-2004 |
Chris Lattner <sabre@nondot.org> |
Assert that input blocks meet the invariants we expect
Simplify the input/output finder. All elements of a basic block are instructions. Any used arguments are also inputs. An instruction can onl
Assert that input blocks meet the invariants we expect
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
show more ...
|
#
5b2072ec |
| 14-Mar-2004 |
Chris Lattner <sabre@nondot.org> |
No correctness fixes here, just minor qoi fixes:
* 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 bl
No correctness fixes here, just minor qoi fixes:
* 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
show more ...
|
#
b4d8bf36 |
| 14-Mar-2004 |
Chris Lattner <sabre@nondot.org> |
Simplify code a bit, and fix bug CodeExtractor/2004-03-14-NoSwitchSupport.ll
This also implements a two minor improvements: * Don't insert live-out stores IN the region, insert them on the code pa
Simplify code a bit, and fix bug CodeExtractor/2004-03-14-NoSwitchSupport.ll
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
show more ...
|
#
9c431f6c |
| 14-Mar-2004 |
Chris Lattner <sabre@nondot.org> |
Simplify the code a bit by making the collection of basic blocks to extract a member of the class. While we're at it, turn the collection into a set instead of a vector to improve efficiency and mak
Simplify the code a bit by making the collection of basic blocks to extract 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
show more ...
|
#
4fca71eb |
| 14-Mar-2004 |
Chris Lattner <sabre@nondot.org> |
Minor random cleanups
llvm-svn: 12382
|
#
36844693 |
| 14-Mar-2004 |
Chris Lattner <sabre@nondot.org> |
Verify functions as they are produced if -debug is specified. Reduce curly braceage
llvm-svn: 12378
|
#
f44acae3 |
| 02-Mar-2004 |
Misha Brukman <brukman+llvm@gmail.com> |
Implement ExtractCodeRegion()
llvm-svn: 12070
|
#
5af2be7d |
| 01-Mar-2004 |
Misha Brukman <brukman+llvm@gmail.com> |
* Add implementation of ExtractBasicBlock() * Add comments to ExtractLoop()
llvm-svn: 12053
|
#
caa1a5ab |
| 28-Feb-2004 |
Misha Brukman <brukman+llvm@gmail.com> |
A generic code extractor: given a list of BasicBlocks, it will rip them out into a new function, taking care of inputs and outputs.
llvm-svn: 11935
|