History log of /llvm-project/llvm/lib/Transforms/Utils/DemoteRegToStack.cpp (Results 26 – 50 of 64)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# ac6b2988 06-Aug-2015 David Majnemer <david.majnemer@gmail.com>

Handle PHI nodes prefacing EH pads too

llvm-svn: 244274


# eb518bd5 04-Aug-2015 David Majnemer <david.majnemer@gmail.com>

Drive-by fixes for LandingPad -> EHPad

This change was done as an audit and is by inspection. The new EH
system is still very much a work in progress. NFC for the landingpad
case.

llvm-svn: 243965


Revision tags: llvmorg-3.7.0-rc2, llvmorg-3.7.0-rc1, llvmorg-3.6.2, llvmorg-3.6.2-rc1, llvmorg-3.6.1, llvmorg-3.6.1-rc1, llvmorg-3.5.2, llvmorg-3.5.2-rc1, llvmorg-3.6.0, llvmorg-3.6.0-rc4, llvmorg-3.6.0-rc3
# 8d3cb829 09-Feb-2015 Akira Hatanaka <ahatanaka@apple.com>

Fix a bug in DemoteRegToStack where a reload instruction was inserted into the
wrong basic block.

This would happen when the result of an invoke was used by a phi instruction
in the invoke's normal

Fix a bug in DemoteRegToStack where a reload instruction was inserted into the
wrong basic block.

This would happen when the result of an invoke was used by a phi instruction
in the invoke's normal destination block. An instruction to reload the invoke's
value would get inserted before the critical edge was split and a new basic
block (which is the correct insertion point for the reload) was created. This
commit fixes the bug by splitting the critical edge before all the reload
instructions are inserted.

Also, hoist up the code which computes the insertion point to the only place
that need that computation.

rdar://problem/15978721

llvm-svn: 228566

show more ...


Revision tags: llvmorg-3.6.0-rc2, llvmorg-3.6.0-rc1, llvmorg-3.5.1, llvmorg-3.5.1-rc2, llvmorg-3.5.1-rc1, llvmorg-3.5.0, llvmorg-3.5.0-rc4, llvmorg-3.5.0-rc3, llvmorg-3.5.0-rc2, llvmorg-3.5.0-rc1, llvmorg-3.4.2, llvmorg-3.4.2-rc1, llvmorg-3.4.1, llvmorg-3.4.1-rc2
# f40110f4 25-Apr-2014 Craig Topper <craig.topper@gmail.com>

[C++] Use 'nullptr'. Transforms edition.

llvm-svn: 207196


Revision tags: llvmorg-3.4.1-rc1
# cdf47884 09-Mar-2014 Chandler Carruth <chandlerc@gmail.com>

[C++11] Add range based accessors for the Use-Def chain of a Value.

This requires a number of steps.
1) Move value_use_iterator into the Value class as an implementation
detail
2) Change it to ac

[C++11] Add range based accessors for the Use-Def chain of a Value.

This requires a number of steps.
1) Move value_use_iterator into the Value class as an implementation
detail
2) Change it to actually be a *Use* iterator rather than a *User*
iterator.
3) Add an adaptor which is a User iterator that always looks through the
Use to the User.
4) Wrap these in Value::use_iterator and Value::user_iterator typedefs.
5) Add the range adaptors as Value::uses() and Value::users().
6) Update *all* of the callers to correctly distinguish between whether
they wanted a use_iterator (and to explicitly dig out the User when
needed), or a user_iterator which makes the Use itself totally
opaque.

Because #6 requires churning essentially everything that walked the
Use-Def chains, I went ahead and added all of the range adaptors and
switched them to range-based loops where appropriate. Also because the
renaming requires at least churning every line of code, it didn't make
any sense to split these up into multiple commits -- all of which would
touch all of the same lies of code.

The result is still not quite optimal. The Value::use_iterator is a nice
regular iterator, but Value::user_iterator is an iterator over User*s
rather than over the User objects themselves. As a consequence, it fits
a bit awkwardly into the range-based world and it has the weird
extra-dereferencing 'operator->' that so many of our iterators have.
I think this could be fixed by providing something which transforms
a range of T&s into a range of T*s, but that *can* be separated into
another patch, and it isn't yet 100% clear whether this is the right
move.

However, this change gets us most of the benefit and cleans up
a substantial amount of code around Use and User. =]

llvm-svn: 203364

show more ...


# 8a8cd2ba 07-Jan-2014 Chandler Carruth <chandlerc@gmail.com>

Re-sort all of the includes with ./utils/sort_includes.py so that
subsequent changes are easier to review. About to fix some layering
issues, and wanted to separate out the necessary churn.

Also com

Re-sort all of the includes with ./utils/sort_includes.py so that
subsequent changes are easier to review. About to fix some layering
issues, and wanted to separate out the necessary churn.

Also comment and sink the include of "Windows.h" in three .inc files to
match the usage in Memory.inc.

llvm-svn: 198685

show more ...


Revision tags: llvmorg-3.4.0, llvmorg-3.4.0-rc3, llvmorg-3.4.0-rc2, llvmorg-3.4.0-rc1
# 0b68245e 27-Jul-2013 Nick Lewycky <nicholas@mxc.ca>

Reimplement isPotentiallyReachable to make nocapture deduction much stronger.
Adds unit tests for it too.

Split BasicBlockUtils into an analysis-half and a transforms-half, and put the
analysis bits

Reimplement isPotentiallyReachable to make nocapture deduction much stronger.
Adds unit tests for it too.

Split BasicBlockUtils into an analysis-half and a transforms-half, and put the
analysis bits into a new Analysis/CFG.{h,cpp}. Promote isPotentiallyReachable
into llvm::isPotentiallyReachable and move it into Analysis/CFG.

llvm-svn: 187283

show more ...


Revision tags: llvmorg-3.3.1-rc1, llvmorg-3.3.0, llvmorg-3.3.0-rc3, llvmorg-3.3.0-rc2, llvmorg-3.3.0-rc1
# 92a54f6d 05-Feb-2013 Chad Rosier <mcrosier@apple.com>

[SjLj Prepare] When demoting an invoke instructions to the stack, if the normal
edge is critical, then split it so we can insert the store.
rdar://13126179

llvm-svn: 174418


# 76c6521b 08-Jan-2013 Bill Wendling <isanbard@gmail.com>

Make sure we don't emit instructions before a landingpad instruction.
PR14782

llvm-svn: 171846


# 9fb823bb 02-Jan-2013 Chandler Carruth <chandlerc@gmail.com>

Move all of the header files which are involved in modelling the LLVM IR
into their new header subdirectory: include/llvm/IR. This matches the
directory structure of lib, and begins to correct a long

Move all of the header files which are involved in modelling the LLVM IR
into their new header subdirectory: include/llvm/IR. This matches the
directory structure of lib, and begins to correct a long standing point
of file layout clutter in LLVM.

There are still more header files to move here, but I wanted to handle
them in separate commits to make tracking what files make sense at each
layer easier.

The only really questionable files here are the target intrinsic
tablegen files. But that's a battle I'd rather not fight today.

I've updated both CMake and Makefile build systems (I think, and my
tests think, but I may have missed something).

I've also re-sorted the includes throughout the project. I'll be
committing updates to Clang, DragonEgg, and Polly momentarily.

llvm-svn: 171366

show more ...


Revision tags: llvmorg-3.2.0, llvmorg-3.2.0-rc3
# ed0881b2 03-Dec-2012 Chandler Carruth <chandlerc@gmail.com>

Use the new script to sort the includes of every file under lib.

Sooooo many of these had incorrect or strange main module includes.
I have manually inspected all of these, and fixed the main module

Use the new script to sort the includes of every file under lib.

Sooooo many of these had incorrect or strange main module includes.
I have manually inspected all of these, and fixed the main module
include to be the nearest plausible thing I could find. If you own or
care about any of these source files, I encourage you to take some time
and check that these edits were sensible. I can't have broken anything
(I strictly added headers, and reordered them, never removed), but they
may not be the headers you'd really like to identify as containing the
API being implemented.

Many forward declarations and missing includes were added to a header
files to allow them to parse cleanly when included first. The main
module rule does in fact have its merits. =]

llvm-svn: 169131

show more ...


Revision tags: llvmorg-3.2.0-rc2, llvmorg-3.2.0-rc1, llvmorg-3.1.0, llvmorg-3.1.0-rc3, llvmorg-3.1.0-rc2, llvmorg-3.1.0-rc1
# aa9a3eae 17-Feb-2012 Bill Wendling <isanbard@gmail.com>

Remove redundant comment. Use a more efficient datatype.

llvm-svn: 150780


# 0a8fec27 17-Feb-2012 Bill Wendling <isanbard@gmail.com>

Fix some grammar-os and formatting.

llvm-svn: 150779


Revision tags: llvmorg-3.0.0, llvmorg-3.0.0-rc4
# 7496461f 07-Nov-2011 Bill Wendling <isanbard@gmail.com>

Make sure we don't insert instructions before a landingpad instruction.
<rdar://problem/10405911>

llvm-svn: 144000


Revision tags: llvmorg-3.0.0-rc3, llvmorg-3.0.0-rc2, llvmorg-3.0.0-rc1, llvmorg-2.9.0, llvmorg-2.9.0-rc3, llvmorg-2.9.0-rc2, llvmorg-2.9.0-rc1
# 9b43f336 23-Dec-2010 Jeffrey Yasskin <jyasskin@google.com>

Change all self assignments X=X to (void)X, so that we can turn on a
new gcc warning that complains on self-assignments and
self-initializations.

llvm-svn: 122458


Revision tags: llvmorg-2.8.0, llvmorg-2.8.0-rc3, llvmorg-2.8.0-rc2, llvmorg-2.8.0-rc1, llvmorg-2.8.0-rc0
# e94f1ded 16-Jun-2010 Jim Grosbach <grosbach@apple.com>

remove trailing whitespace

llvm-svn: 106164


Revision tags: llvmorg-2.7.0, llvmorg-2.6.0
# 4fdeba97 15-Jul-2009 Owen Anderson <resistor@mac.com>

Revert yesterday's change by removing the LLVMContext parameter to AllocaInst and MallocInst.

llvm-svn: 75863


# b6b25300 14-Jul-2009 Owen Anderson <resistor@mac.com>

Move EVER MORE stuff over to LLVMContext.

llvm-svn: 75703


Revision tags: llvmorg-2.5.0, llvmorg-2.4.0
# 8459e0bc 21-Jun-2008 Chris Lattner <sabre@nondot.org>

Fix warning when assertions disabled.

llvm-svn: 52590


# 68f539e8 19-Jun-2008 Dan Gohman <gohman@apple.com>

Delete dead code.

llvm-svn: 52494


Revision tags: llvmorg-2.3.0, llvmorg-2.2.0
# f3ebc3f3 29-Dec-2007 Chris Lattner <sabre@nondot.org>

Remove attribution from file headers, per discussion on llvmdev.

llvm-svn: 45418


# 7499a3b0 21-Oct-2007 Anton Korobeynikov <asl@math.spbu.ru>

Reg2Mem cleanup and optimizations:
- enable phi instructions demotion to stack
- create alloca instructions in the entry block

llvm-svn: 43208


Revision tags: llvmorg-2.1.0
# 35322d74 02-Sep-2007 Anton Korobeynikov <asl@math.spbu.ru>

Silence warning while compiling with gcc 4.2

llvm-svn: 41676


# ccecbcd7 11-Jul-2007 Tanya Lattner <tonic@nondot.org>

Adding ability to demote phi to stack.

llvm-svn: 39744


Revision tags: llvmorg-2.0.0, llvmorg-1.9.0, llvmorg-1.6.0
# 20b0754c 04-Oct-2005 Chris Lattner <sabre@nondot.org>

Fix DemoteRegToStack on an invoke. This fixes PR634.

llvm-svn: 23618


123