History log of /external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
dce4a407a24b04eebc6a376f8e62b41aaa7b071f 29-May-2014 Stephen Hines <srhines@google.com> Update LLVM for 3.5 rebase (r209712).

Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
36b56886974eae4f9c5ebc96befd3e7bfe5de338 24-Apr-2014 Stephen Hines <srhines@google.com> Update to LLVM 3.5a.

Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
fc3b7bbf49086e827a628e22db0b75e46c151d17 05-Oct-2013 Hal Finkel <hfinkel@anl.gov> UpdatePHINodes in BasicBlockUtils should not crash on duplicate predecessors

UpdatePHINodes has an optimization to reuse an existing PHI node, where it
first deletes all of its entries and then replaces them. Unfortunately, in the
case where we had duplicate predecessors (which are allowed so long as the
associated PHI entries have the same value), the loop removing the existing PHI
entries from the to-be-reused PHI would assert (if that PHI was not the one
which had the duplicates).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192001 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
8819c84aed10777ba91d4e862229882b8da0b272 01-Oct-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove several unused variables.

Patch by Alp Toker.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191757 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
01d7203ef8316fdd71c3cec59f8e68fb869e0dbf 06-Aug-2013 Tom Stellard <thomas.stellard@amd.com> Factor FlattenCFG out from SimplifyCFG

Patch by: Mei Ye

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187764 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
81e480463d8bb57776d03cebfd083762909023f1 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 into a new Analysis/CFG.{h,cpp}. Promote isPotentiallyReachable
into llvm::isPotentiallyReachable and move it into Analysis/CFG.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187283 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
6227d5c690504c7ada5780c00a635b282c46e275 04-Jul-2013 Craig Topper <craig.topper@gmail.com> Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185606 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
e673b54bdde4b538cbd67eadac80a15d238c926f 15-Jan-2013 Jakub Staszak <kubastaszak@gmail.com> Remove trailing spaces.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172489 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
0b8c9a80f20772c3793201ab5b251d3520b9cea3 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 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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
d04a8d4b33ff316ca4cf961e06c9e312eff8e64f 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
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. =]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
4a2dec05cef5882b745dd248d79e42a42cdbc87b 19-Oct-2012 Evgeniy Stepanov <eugeni.stepanov@gmail.com> Move SplitBlockAndInsertIfThen to BasicBlockUtils.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166278 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
3574eca1b02600bac4e625297f4ecf745f4c4f32 08-Oct-2012 Micah Villmow <villmow@gmail.com> Move TargetData to DataLayout.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
8e0d1c03ca7fd86e6879b4e37d0d7f0e982feef6 29-Aug-2012 Benjamin Kramer <benny.kra@googlemail.com> Make MemoryBuiltins aware of TargetLibraryInfo.

This disables malloc-specific optimization when -fno-builtin (or -ffreestanding)
is specified. This has been a problem for a long time but became more severe
with the recent memory builtin improvements.

Since the memory builtin functions are used everywhere, this required passing
TLI in many places. This means that functions that now have an optional TLI
argument, like RecursivelyDeleteTriviallyDeadFunctions, won't remove dead
mallocs anymore if the TLI argument is missing. I've updated most passes to do
the right thing.

Fixes PR13694 and probably others.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162841 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
9c777a484415198b3fb0dbeb57a594573b245152 27-Jul-2012 Evan Cheng <evan.cheng@apple.com> Teach CodeGenPrep to look past bitcast when it's duplicating return instruction
into predecessor blocks to enable tail call optimization.

rdar://11958338


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160894 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
ccaddf47086742f62fb7fbf97f6509395f31b957 25-Jun-2012 Eli Bendersky <eli.bendersky@intel.com> The name (and comment describing) of llvm::GetFirstDebuigLocInBasicBlock no longer represents what the function does. Therefore, the function is removed and its functionality is folded into the only place in the code-base where it was being used.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159133 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
fdebc38523b397743973ff6a2d2e93b112dd96e5 17-Jan-2012 David Blaikie <dblaikie@gmail.com> Remove unreachable code. (replace with llvm_unreachable to help GCC where necessary)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148284 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
2fac1d5d61a83c45dcf44119c41dce15ef10e9dc 09-Dec-2011 Jakub Staszak <kubastaszak@gmail.com> SplitBlockPredecessors uses ArrayRef instead of Data and Size.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146277 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
605e2b518445d86491e1a0c812f7c85193d3517a 24-Aug-2011 Rafael Espindola <rafael.espindola@gmail.com> Fix a crashing bug in SplitBlock when it is called on a block with no
dominator information even though dominators were previously computed.

Patch by Nick Sumner.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138449 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
94657b964f90107989c61a63a214451c03922649 20-Aug-2011 Bill Wendling <isanbard@gmail.com> If we're splitting the landing pad block and assigning it only one predecessor,
then don't split it a second time, since that block will be dead.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138153 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
7e8840c4d9ac7cc259fd967d9fe7540740d1ce92 19-Aug-2011 Bill Wendling <isanbard@gmail.com> Add SplitLandingPadPredecessors().

SplitLandingPadPredecessors is similar to SplitBlockPredecessors in that it
splits the current block and attaches a set of predecessors to the new basic
block. However, it differs from SplitBlockPredecessors in that it's specifically
designed to handle landing pad blocks.

Two new basic blocks are created: one that is has the vector of predecessors as
its predecessors and one that has the remaining predecessors as its
predecessors. Those two new blocks then receive a cloned copy of the landingpad
instruction from the original block. The landingpad instructions are joined in a
PHI, etc. Like SplitBlockPredecessors, it updates the LLVM IR, AliasAnalysis,
DominatorTree, DominanceFrontier, LoopInfo, and LCCSA analyses.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138014 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
1c44d869cd920f3c2d7fdc9196677db202440089 18-Aug-2011 Bill Wendling <isanbard@gmail.com> Split out the updating of PHI nodes after splitting the BB into a separate
function.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137979 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
9210e840ddd2358204281504e9d43a67c5b43219 18-Aug-2011 Bill Wendling <isanbard@gmail.com> Use this fantzy ArrayRef thing to pass in the list of predecessors.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137978 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
d4770144d46992be0321d3cd4dc9315da1aa4d5d 18-Aug-2011 Bill Wendling <isanbard@gmail.com> Use static instead of anonymous namespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137959 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
a644b33e8b9a45044dc531cfc1aac95fe7930605 18-Aug-2011 Bill Wendling <isanbard@gmail.com> Split out the analysis updating code into a helper function. No intended
functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137926 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
ab82fd9ff6874118594bc64bdafcadaa5b7fcb60 17-Aug-2011 Bill Wendling <isanbard@gmail.com> Increment the insertion iterator to beyond the landingpad instruction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137872 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
95c3e48f9557adb6064d580684bb14cacec2f826 23-Jun-2011 Jay Foad <jay.foad@gmail.com> Reinstate r133513 (reverted in r133700) with an additional fix for a
-Wshorten-64-to-32 warning in Instructions.h.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133708 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
e59fbc04ad343435705c28b3cf7038d65fe4af0a 23-Jun-2011 Eric Christopher <echristo@apple.com> Revert r133513:

"Reinstate r133435 and r133449 (reverted in r133499) now that the clang
self-hosted build failure has been fixed (r133512)."

Due to some additional warnings.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133700 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
cd35e09a4a3c640b9da0b1dfe3548a605c929ae5 21-Jun-2011 Jay Foad <jay.foad@gmail.com> Reinstate r133435 and r133449 (reverted in r133499) now that the clang
self-hosted build failure has been fixed (r133512).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133513 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
a88a0ca8082006b37d14d8aee4a644b20bae8bc9 21-Jun-2011 Chad Rosier <mcrosier@apple.com> Revert r133435 and r133449 to appease buildbots.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133499 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
72f5f313d87558958696ce69593d82efcdfa9128 20-Jun-2011 Jay Foad <jay.foad@gmail.com> Change how PHINodes store their operands.

Change PHINodes to store simple pointers to their incoming basic blocks,
instead of full-blown Uses.

Note that this loses an optimization in SplitCriticalEdge(), because we
can no longer walk the use list of a BasicBlock to find phi nodes. See
the comment I removed starting "However, the foreach loop is slow for
blocks with lots of predecessors".

Extend replaceAllUsesWith() on a BasicBlock to also update any phi
nodes in the block's successors. This mimics what would have happened
when PHINodes were proper Users of their incoming blocks. (Note that
this only works if OldBB->replaceAllUsesWith(NewBB) is called when
OldBB still has a terminator instruction, so it still has some
successors.)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133435 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
67352b3ce7110541475ed7fb335ee95954f0523a 02-May-2011 Devang Patel <dpatel@apple.com> Scanning entire basic block may be too expensive in terms of compile time. Instead, just use whatever location info first non-phi instruction has.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130729 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
40348e8d1ff564a23101d4fd37fe4dd03d9018ab 30-Apr-2011 Devang Patel <dpatel@apple.com> Assing line number info to new PHIs created by SSA updater.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130551 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
3ecfc861b4365f341c5c969b40e1afccde676e6f 30-Mar-2011 Jay Foad <jay.foad@gmail.com> Remove PHINode::reserveOperandSpace(). Instead, add a parameter to
PHINode::Create() giving the (known or expected) number of operands.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128537 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
d8b4fb4aab4d6fedb2b14bed1b846451b17bde7c 30-Mar-2011 Jay Foad <jay.foad@gmail.com> (Almost) always call reserveOperandSpace() on newly created PHINodes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128535 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
c3f507f98a0747bd256e1c13536060b6fc5c4b62 29-Jan-2011 Evan Cheng <evan.cheng@apple.com> Re-apply r124518 with fix. Watch out for invalidated iterator.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124526 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
b0a42fdb36b575a8ad939ca9624105908aeedf51 29-Jan-2011 Evan Cheng <evan.cheng@apple.com> Revert r124518. It broke Linux self-host.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124522 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
5e6940788fb2f8cf3ce4219d3ac0f78317f54696 29-Jan-2011 Evan Cheng <evan.cheng@apple.com> Re-commit r124462 with fixes. Tail recursion elim will now dup ret into unconditional predecessor to enable TCE on demand.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124518 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
301278719b67dcdd1159d9f91b4db5ef57f025c6 18-Jan-2011 Cameron Zwarich <zwarich@apple.com> Remove code for updating dominance frontiers and some outdated references to
dominance and post-dominance frontiers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123725 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
fbbd4abfe5a89e432240d2c05201b44a5e2f2f78 11-Jan-2011 Jakob Stoklund Olesen <stoklund@2pi.dk> Fix a non-deterministic loop in llvm::MergeBlockIntoPredecessor.

DT->changeImmediateDominator() trivially ignores identity updates, so there is
really no need for the uniqueing provided by SmallPtrSet.

I expect this to fix PR8954.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123286 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
b6810991a9648a40fe05162d744f42c3c178dba7 11-Jan-2011 Chris Lattner <sabre@nondot.org> when MergeBlockIntoPredecessor merges two blocks, update MemDep if it
is floating around in the ether.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123223 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
b5b7997fd0765f73b711ea4c72e4433ce3637794 11-Jan-2011 Chris Lattner <sabre@nondot.org> Fix FoldSingleEntryPHINodes to update memdep and AA when it deletes
phi nodes. It is called from MergeBlockIntoPredecessor which is
called from GVN, which claims to preserve these.

I'm skeptical that this is the actual problem behind PR8954, but
this is a stab in the right direction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123222 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
dc85f8ab808aec2f673262f5145eda58538cfb26 08-Jan-2011 Chris Lattner <sabre@nondot.org> various code cleanups, enhance MergeBlockIntoPredecessor to preserve
loop info.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123074 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
b0433d4b2fb66922fa3625871840ccb72c8a9dec 08-Jan-2011 Chris Lattner <sabre@nondot.org> reduce nesting.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123071 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
9fc5cdf77c812aaa80419036de27576d45894d0d 02-Jan-2011 Chris Lattner <sabre@nondot.org> split dom frontier handling stuff out to its own DominanceFrontier header,
so that Dominators.h is *just* domtree. Also prune #includes a bit.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122714 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
2112bbc42d1de50e482f64e1fb0f10de9817fcf8 14-Dec-2010 Chris Lattner <sabre@nondot.org> remove the dead (and terrible) llvm::RemoveSuccessor function.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121753 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
e2d50046fd29cb3eb2483e080cb7c39b460fbb19 11-Sep-2010 Gabor Greif <ggreif@gmail.com> typoes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113647 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
c7e31fcf496e164cd6b45e6d15e06df54c3441a6 18-Aug-2010 Chris Lattner <sabre@nondot.org> fit in 80 cols


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111348 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
1c034dcbbc86674cc146340a877495f71d9a2569 17-Aug-2010 Dan Gohman <gohman@apple.com> Use the getUniquePredecessor() utility function, instead of doing
what it does manually.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111248 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
dd9344f3face8f1978a7f9f393c31b628144d1f6 28-May-2010 Dan Gohman <gohman@apple.com> Move FindAvailableLoadedValue isSafeToLoadUnconditionally out of
lib/Transforms/Utils and into lib/Analysis so that Analysis passes
can use them.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104949 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
0f1666b480f7ac55af09fdd5ff09c3df7c20e2e4 05-Apr-2010 Evan Cheng <evan.cheng@apple.com> Code clean up.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100467 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
ae23daf63afccd68be965ff4f7acafa818d76aaa 16-Feb-2010 Bob Wilson <bob.wilson@apple.com> Rename SuccessorNumber to GetSuccessorNumber.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96387 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
adb6f226714dcfae363f51b453c4590b0f42da5e 16-Feb-2010 Bob Wilson <bob.wilson@apple.com> Refactor to share code to find the position of a basic block successor in the
terminator's list of successors.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96377 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
edd7966809e112c29473f36108c308d2fb9f46e0 22-Jan-2010 Victor Hernandez <vhernandez@apple.com> No need to look through bitcasts for DbgInfoIntrinsic

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94114 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
90fe0bd68cdbeb980c08628c4992dffad0dc728f 05-Jan-2010 Dan Gohman <gohman@apple.com> Make RecursivelyDeleteTriviallyDeadInstructions,
RecursivelyDeleteDeadPHINode, and DeleteDeadPHIs return a flag
indicating whether they made any changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92732 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
f012705c7e4ca8cf90b6b734ce1d5355daca5ba5 05-Jan-2010 Benjamin Kramer <benny.kra@googlemail.com> Avoid going through the LLVMContext for type equality where it's safe to dereference the type pointer.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92726 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
44a29e066a24e88bdf127e88be4380a5f259c4b4 05-Jan-2010 Devang Patel <dpatel@apple.com> Remove dead debug info intrinsics.
Intrinsic::dbg_stoppoint
Intrinsic::dbg_region_start
Intrinsic::dbg_region_end
Intrinsic::dbg_func_start
AutoUpgrade simply ignores these intrinsics now.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92557 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
87f8e4902757e8dfdecb0056f530755d61a35adb 08-Dec-2009 Nick Lewycky <nicholas@mxc.ca> Remove unnecessary #include "llvm/LLVMContext.h".


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90836 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
b8eb17c80793c33368e3c3af6de4bd8c1b09ba5b 05-Nov-2009 Dan Gohman <gohman@apple.com> Add an assertion to catch indirectbr in SplitBlockPredecessors. This
makes several optimization passes abort in cases where they're currently
silently miscompiling code.

Remove the indirectbr assertion from SplitEdge. Indirectbr is only
a problem for critical edges, and SplitEdge defers to SplitCriticalEdge
to handle those, and SplitCriticalEdge has its own assertion for
indirectbr.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86147 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
882029269e0cf4b497993b8e9a754429ef035fac 01-Nov-2009 Chris Lattner <sabre@nondot.org> change llvm::MergeBlockIntoPredecessor to not merge two blocks BB1->BB2
when BB2 has its address taken. Since it ends up doing BB2->rauw(BB1),
this can cause the address of the entry block to be taken. Since it is
generally undesirable to nuke blocks whose address is taken, even when
we can, just unconditionally stop this xform.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85708 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
a4b04210d4a838e5a48b0c128bdfe42c3055633f 31-Oct-2009 Chris Lattner <sabre@nondot.org> llvm::SplitEdge should refuse to split an edge from an indirectbr.
Fix CodeGenPrepare to not try to split edges from indirectbr.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85690 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
438b583dbd20f63b70d0b5abb7780a50bf03dd83 31-Oct-2009 Dan Gohman <gohman@apple.com> Revert r85667. LoopUnroll currently can't call utility functions which
auto-update the DominatorTree because it doesn't keep the DominatorTree
current while it works.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85670 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
dca094100b47c59aeeabd3edc050b1872d713082 31-Oct-2009 Dan Gohman <gohman@apple.com> Remove redundant code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85668 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
f230d8ad15f7ad5cdc5f3950b9d4f0c773d0bac0 31-Oct-2009 Dan Gohman <gohman@apple.com> Merge the enhancements from LoopUnroll's FoldBlockIntoPredecessor into
MergeBlockIntoPredecessor. This makes SimplifyCFG slightly more aggressive,
and makes it unnecessary for LoopUnroll to have its own copy of this code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85667 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
50b6e33584f4e4cf75c7795b1f1a90731861c825 27-Oct-2009 Devang Patel <dpatel@apple.com> Factor out redundancy from clone() implementations.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85327 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
841a14753175bb9a02a8f5286ffe03d050b0da26 19-Oct-2009 Dan Gohman <gohman@apple.com> Fix SplitBlockPredecessors' LoopInfo updating code to handle the case
where a loop's header is being split and it has predecessors which are not
contained by the most-nested loop which contains the loop.
This fixes PR5235.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84505 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
6776064d190701c5bae4d5403939eed2e480d1cd 27-Sep-2009 Nick Lewycky <nicholas@mxc.ca> Instruction::clone does not need to take an LLVMContext&. Remove that and
update all the callers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82889 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
5c89b5240c90eb8171f999e5f06f815502d0321c 08-Sep-2009 Dan Gohman <gohman@apple.com> Re-apply r80926, with fixes: keep the domtree informed of new blocks
that get created during loop unswitching, and fix SplitBlockPredecessors'
LCSSA updating code to create new PHIs instead of trying to just move
existing ones.

Also, optimize Loop::verifyLoop, since it gets called a lot. Use
searches on a sorted list of blocks instead of calling the "contains"
function, as is done in other places in the Loop class, since "contains"
does a linear search. Also, don't call verifyLoop from LoopSimplify or
LCSSA, as the PassManager is already calling verifyLoop as part of
LoopInfo's verifyAnalysis.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81221 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
8f78a58e14fa754cde827e46ad03f00c7a6ead01 06-Sep-2009 Evan Cheng <evan.cheng@apple.com> Revert r80926. It causes loop unswitch assertion and slow down some JIT tests significantly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81101 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
8fc5ad33691b2a0672a7487da1f56b6f7f675a1b 03-Sep-2009 Dan Gohman <gohman@apple.com> Add a verifyAnalysis to LoopInfo, LoopSimplify, and LCSSA form that verify
that these passes are properly preserved.

Fix several transformation passes that claimed to preserve LoopSimplify
form but weren't.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80926 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
bccfc24c4e8092e1ee18746dd4cee01247728faa 03-Sep-2009 Dan Gohman <gohman@apple.com> Change PHINode::hasConstantValue to have a DominatorTree argument
instead of a bool argument, and to do the dominator check itself.
This makes it eaiser to use when DominatorTree information is
available.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80920 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
58cfa3b13752579c86cf85270d49f9ced0942f2f 26-Aug-2009 Dan Gohman <gohman@apple.com> Rename Instruction::isIdenticalTo to Instruction::isIdenticalToWhenDefined,
and introduce a new Instruction::isIdenticalTo which tests for full
identity, including the SubclassOptionalData flags. Also, fix the
Instruction::clone implementations to preserve the SubclassOptionalData
flags. Finally, teach several optimizations how to handle
SubclassOptionalData correctly, given these changes.

This fixes the counterintuitive behavior of isIdenticalTo not comparing
the full value, and clone not returning an identical clone, as well as
some subtle bugs that could be caused by these.

Thanks to Nick Lewycky for reporting this, and for an initial patch!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80038 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
1d0be15f89cb5056e20e2d24faa8d6afb1573bca 13-Aug-2009 Owen Anderson <resistor@mac.com> Push LLVMContexts through the IntegerType APIs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78948 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
a7235ea7245028a0723e8ab7fd011386b3900777 31-Jul-2009 Owen Anderson <resistor@mac.com> Move a few more APIs back to 2.5 forms. The only remaining ones left to change back are
metadata related, which I'm waiting on to avoid conflicting with Devang.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77721 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
9e9a0d5fc26878e51a58a8b57900fcbf952c2691 31-Jul-2009 Owen Anderson <resistor@mac.com> Move more code back to 2.5 APIs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77635 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
fc2a3ed0c9e32cf7edaf5030fa0972b916cc5f0b 25-Jul-2009 Dan Gohman <gohman@apple.com> Make AliasAnalysis and related classes use
getAnalysisIfAvailable<TargetData>().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77028 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
67efc56b80fe47831478a1ea1730d700cef1a411 25-Jul-2009 Dan Gohman <gohman@apple.com> AliasAnalysis wants sizes in address-units, not bits.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77009 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
e922c0201916e0b980ab3cfe91e1413e68d55647 22-Jul-2009 Owen Anderson <resistor@mac.com> Get rid of the Pass+Context magic.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76702 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
c23197a26f34f559ea9797de51e187087c039c42 14-Jul-2009 Torok Edwin <edwintorok@gmail.com> llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable.
This adds location info for all llvm_unreachable calls (which is a macro now) in
!NDEBUG builds.
In NDEBUG builds location info and the message is off (it only prints
"UREACHABLE executed").


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
7d696d80409aad20bb5da0fc4eccab941dd371d4 11-Jul-2009 Torok Edwin <edwintorok@gmail.com> Convert more assert(0)+abort() -> LLVM_UNREACHABLE,
and abort()/exit() -> llvm_report_error().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75363 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
333c40096561218bc3597cf153c0a3895274414c 10-Jul-2009 Owen Anderson <resistor@mac.com> This started as a small change, I swear. Unfortunately, lots of things call the [I|F]CmpInst constructors. Who knew!?


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75200 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
0a205a459884ec745df1c529396dd921f029dafd 06-Jul-2009 Owen Anderson <resistor@mac.com> More LLVMContext-ification.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
35738ac150afafe2359268d4b2169498c6c98c5f 05-May-2009 Dan Gohman <gohman@apple.com> Re-apply 70645, converting ScalarEvolution to use
CallbackVH, with fixes. allUsesReplacedWith need to
walk the def-use chains and invalidate all users of a
value that is replaced. SCEVs of users need to be
recalcualted even if the new value is equivalent. Also,
make forgetLoopPHIs walk def-use chains, since any
SCEV that depends on a PHI should be recalculated when
more information about that PHI becomes available.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70927 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
fe095f39e7009c51d1c86769792ccbcad8cdd2ec 04-May-2009 Mike Stump <mrs@apple.com> Restore minor deletion.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70892 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
f9a77b77c2324b2ca5c644909ebda387daf82fe3 03-May-2009 Dan Gohman <gohman@apple.com> Revert r70645 for now; it's causing a variety of regressions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70661 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
db6fa2964176c34f0e878e101427c28782c93419 02-May-2009 Dan Gohman <gohman@apple.com> Convert ScalarEvolution to use CallbackVH for its internal map. This
makes ScalarEvolution::deleteValueFromRecords, and it's code that
subtly needed to be called before ReplaceAllUsesWith, unnecessary.

It also makes ValueDeletionListener unnecessary.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70645 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
afc36a9520971832dfbebc0333593bf5d3098296 02-May-2009 Dan Gohman <gohman@apple.com> Previously, RecursivelyDeleteDeadInstructions provided an option
of returning a list of pointers to Values that are deleted. This was
unsafe, because the pointers in the list are, by nature of what
RecursivelyDeleteDeadInstructions does, always dangling. Replace this
with a simple callback mechanism. This may eventually be removed if
all clients can reasonably be expected to use CallbackVH.

Use this to factor out the dead-phi-cycle-elimination code from LSR
utility function, and generalize it to use the
RecursivelyDeleteTriviallyDeadInstructions utility function.

This makes LSR more aggressive about eliminating dead PHI cycles;
adjust tests to either be less trivial or to simply expect fewer
instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
d9c05d7711b65bca070da76cb0e9a9b9eb7e69d5 04-Mar-2009 Dale Johannesen <dalej@apple.com> Skip ptr-to-ptr bitcasts when counting in another case.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66000 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
4ded40a44da9d67355a103cc8da68c2c1ab40bfd 03-Mar-2009 Dale Johannesen <dalej@apple.com> Instruction counters must skip the bitcasts that
feed into llvm.dbg.declare nodes, as well as
the debug directives themselves.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65976 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
4945c657848523410a449280c6b88ee1f507511f 03-Mar-2009 Dale Johannesen <dalej@apple.com> When removing a store to an alloca that has only one
use, check also for the case where it has two uses,
the other being a llvm.dbg.declare. This is needed so
debug info doesn't affect codegen.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65970 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
0f8b53f19d29013ab18f3d444cea1e6305405611 03-Mar-2009 Dan Gohman <gohman@apple.com> Fix a bunch of Doxygen syntax issues. Escape special characters,
and put @file directives on their own comment line.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65920 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
bd8e650876cc93952dde3120938271dbda6cbbb7 03-Mar-2009 Dale Johannesen <dalej@apple.com> When sinking an insn in InstCombine bring its debug
info with it.
Don't count debug info insns against the scan maximum
in FindAvailableLoadedValue (lest they affect codegen).



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65910 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
5622f07a21b799964dc172925b9ebc38191859f6 24-Feb-2009 Devang Patel <dpatel@apple.com> While folding unconditional return move DbgRegionEndInst into the predecessor, instead of removing it. This fixes following tests from llvmgcc42 testsuite.

gcc.c-torture/execute/20000605-3.c
gcc.c-torture/execute/20020619-1.c
gcc.c-torture/execute/20030920-1.c
gcc.c-torture/execute/loop-ivopts-1.c



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65353 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
bd75b8345f9c2a6efd8fb799ba861129fed36ef8 11-Feb-2009 Devang Patel <dpatel@apple.com> If llvm.dbg.region.end is disappearing then remove corresponding llvm.dbg.func.start also.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64278 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
1465d61bdd36cfd6021036a527895f0dd358e97d 28-Jan-2009 Duncan Sands <baldrick@free.fr> Rename getAnalysisToUpdate to getAnalysisIfAvailable.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63198 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
29874e0dc6c4e55bc384611273343bb358982cc3 03-Dec-2008 Chris Lattner <sabre@nondot.org> Factor some code into a new FoldSingleEntryPHINodes method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60501 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
2973a25dbc0ee1081e34421e53b8f4308b624854 03-Dec-2008 Chris Lattner <sabre@nondot.org> third time is the charm.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60469 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
15efa1a1fdc612db75ba66d496c213e7cc249842 03-Dec-2008 Chris Lattner <sabre@nondot.org> fix assertion.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60468 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
71af9b07a58a264064813545889cf6473ce23de6 03-Dec-2008 Chris Lattner <sabre@nondot.org> Rename DeleteBlockIfDead to DeleteDeadBlock and make it
unconditionally delete the block. All likely clients will
do the checking anyway.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60464 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
2b1ba24fb75e633560846e551acadade92783bb3 03-Dec-2008 Chris Lattner <sabre@nondot.org> Factor some code out of SimplifyCFG, forming a new
DeleteBlockIfDead method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
4aebaee0e40f2457f1a6588679655a3c600a553b 27-Nov-2008 Chris Lattner <sabre@nondot.org> switch InstCombine::visitLoadInst to use
FindAvailableLoadedValue


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60169 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
ee6e10bc8e389ed1a09c33c8cec15b3aa13e813b 27-Nov-2008 Chris Lattner <sabre@nondot.org> enhance FindAvailableLoadedValue to make use of AliasAnalysis
if it has it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60167 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
52c95856b4a40ccae6c4b0e13b2a04101e1f79c9 27-Nov-2008 Chris Lattner <sabre@nondot.org> move FindAvailableLoadedValue from JumpThreading to Transforms/Utils.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60166 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
8a88a14462db7e8ad96536c89b3ab948b89d0c2b 04-Nov-2008 Devang Patel <dpatel@apple.com> Fix unused variable warnings.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58651 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
a90793b431458c1bac4c7267946738968c4cdf58 03-Oct-2008 Owen Anderson <resistor@mac.com> SplitBlock should only attempt to update LoopInfo if it is actually being used.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56994 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
e435a5d9374b61049b16ef69e6314542815fadb4 09-Sep-2008 Devang Patel <dpatel@apple.com> Fix simplifycfg crash in handing block merge.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55971 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
3ecaf1b33940470d5bf554135778ba5a8bce9a79 18-Jul-2008 Owen Anderson <resistor@mac.com> Add some checks that got lost in the shuffle. This fixes 464.h264ref.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53760 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
11f2ec8eb534502a0d5b7e3c13c1a38e877876b2 17-Jul-2008 Owen Anderson <resistor@mac.com> Make MergeBlockIntoPredecessor more aggressive when the same successor appears
more than once.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53731 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
b31b06d04b81c5383e2fba0cd44d4ba3f324a794 17-Jul-2008 Owen Anderson <resistor@mac.com> Factor MergeBlockIntoPredecessor out into BasicBlockUtils.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53705 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
280a6e607d8eb7401749a92db624a82de47da777 25-Apr-2008 Nick Lewycky <nicholas@mxc.ca> Remove 'unwinds to' support from mainline. This patch undoes r47802 r47989
r48047 r48084 r48085 r48086 r48088 r48096 r48099 r48109 and r48123.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
54b9c3ba2a5b0aa8fda817bcc72c370040cfb3f8 21-Apr-2008 Chris Lattner <sabre@nondot.org> Move SplitBlockPredecessors out of loopsimplify into BasicBlockUtils.h
as a global helper function. At the same type, switch it from taking
a vector of predecessors to an arbitrary sequential input. This allows
us to switch LoopSimplify to use a SmallVector for various temporary
vectors that it passed into SplitBlockPredecessors.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50020 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
051a950000e21935165db56695e35bade668193b 06-Apr-2008 Gabor Greif <ggreif@gmail.com> API changes for class Use size reduction, wave 1.
Specifically, introduction of XXX::Create methods
for Users that have a potentially variable number of
Uses.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49277 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
c6694228fa8df57193cbd924d627814384106ba2 09-Mar-2008 Nick Lewycky <nicholas@mxc.ca> Two things. Preserve the unwind_to when splitting a BB.
Add the ability to remove just one instance of a BB from a phi node. This fixes
the compile error in the tree now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48085 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
4ee451de366474b9c228b4e5fa573795a715216d 29-Dec-2007 Chris Lattner <sabre@nondot.org> Remove attribution from file headers, per discussion on llvmdev.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
d735ee85dbab8e4f66f9ec157f19956e0d11ec7a 27-Nov-2007 Owen Anderson <resistor@mac.com> Make LoopInfoBase more generic, in preparation for having MachineLoopInfo. This involves a small interface change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44348 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
a8a8a366299863fe3711880add4c041c437b63cf 19-Jul-2007 Devang Patel <dpatel@apple.com> After a basic block is split into two parts,
second part dominates all the blocks dominated
by original basic block. And first part dominates
second part.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40035 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
8019893c3f55a4bfe770888fe285d6dae57cf216 06-Jul-2007 Devang Patel <dpatel@apple.com> Add SplitEdge and SplitBlock utility routines.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
86cc42355593dd1689f7d58d56695c451215b02b 11-Feb-2007 Chris Lattner <sabre@nondot.org> simplify code by using Value::takeName


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34177 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
bc2eba1ca2d99836af6b5e12128c08e022930918 19-May-2006 Reid Spencer <rspencer@reidspencer.com> Fix a doxygen problem and break lines at 80 columns


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28395 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
fd93908ae8b9684fe71c239e3c6cfe13ff6a2663 22-Apr-2005 Misha Brukman <brukman+llvm@gmail.com> Remove trailing whitespace


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21427 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
0f67dd6237eb7227aa58e9b77cd95f354989b891 21-Apr-2005 Chris Lattner <sabre@nondot.org> Improve doxygen documentation, patch contributed by Evan Jones!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21393 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
7acff25f7f48ccbc8ca55032a59bfd4102ebed72 05-Mar-2005 Chris Lattner <sabre@nondot.org> second argument to Value::setName is now gone.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
47b14a4a6a455c7be169cfd312fcbe796f0ad426 29-Jul-2004 Misha Brukman <brukman+llvm@gmail.com> Fix #includes of i*.h => Instructions.h as per PR403.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15334 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
f7703df4968084c18c248c1feea9961c19a32e6a 09-Jan-2004 Chris Lattner <sabre@nondot.org> Finegrainify namespacification


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10727 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
d0fde30ce850b78371fd1386338350591f9ff494 11-Nov-2003 Brian Gaeke <gaeke@uiuc.edu> Put all LLVM code into the llvm namespace, as per bug 109.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
b576c94c15af9a440f69d9d03c2afead7971118c 20-Oct-2003 John Criswell <criswell@uiuc.edu> Added LLVM project notice to the top of every C++ source file.
Header files will be on the way.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
cf00c4ab3ba308d45d98c5ccab87362cf802facb 10-Oct-2003 Misha Brukman <brukman+llvm@gmail.com> Fix spelling.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9027 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
5560c9d49ccae132cabf1155f18aa0480dce3eda 18-Aug-2003 Misha Brukman <brukman+llvm@gmail.com> Spell `necessary' correctly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7944 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
6e6026b46569b01f8f6d4dcdb6c899c3a9c76b3e 20-Nov-2002 Chris Lattner <sabre@nondot.org> - Eliminated the deferred symbol table stuff in Module & Function, it really
wasn't an optimization and it was causing lots of bugs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4779 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
a3bbcb5b664c1c851b87392119608901b2e1837c 30-Oct-2002 Misha Brukman <brukman+llvm@gmail.com> Fix spelling of `propagate'.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
b0f0ef8f26eb8911ec1bb31380b5fe2d62e1c0ec 30-Jul-2002 Chris Lattner <sabre@nondot.org> Implement a new RemoveSuccessor function


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
18961504fc2b299578dba817900a0696cf3ccc4d 25-Jun-2002 Chris Lattner <sabre@nondot.org> *** empty log message ***


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2777 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
4d1e46e7b06534cde262d32fad038135f406b6b7 07-May-2002 Chris Lattner <sabre@nondot.org> Add code pulled out of TransformInternals.cpp, ConstProp.cpp, and DCE.cpp


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2513 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp