History log of /llvm-project/llvm/lib/Transforms/Utils/CodeExtractor.cpp (Results 351 – 373 of 373)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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


1...<<1112131415