llvm-6502/lib/Transforms/Utils
Jay Foad 72f5f313d8 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
2011-06-20 14:38:01 +00:00
..
AddrModeMatcher.cpp Change all self assignments X=X to (void)X, so that we can turn on a 2010-12-23 00:58:24 +00:00
BasicBlockUtils.cpp Change how PHINodes store their operands. 2011-06-20 14:38:01 +00:00
BasicInliner.cpp
BreakCriticalEdges.cpp Change how PHINodes store their operands. 2011-06-20 14:38:01 +00:00
BuildLibCalls.cpp One more debug line number miss in instcombine (although the code in question isn't actually in instcombine). 2011-05-27 01:00:36 +00:00
CloneFunction.cpp Change how PHINodes store their operands. 2011-06-20 14:38:01 +00:00
CloneModule.cpp Revamp the ValueMapper interfaces in a couple ways: 2011-01-08 08:15:20 +00:00
CMakeLists.txt Fix cmake build. 2011-06-15 21:03:04 +00:00
CodeExtractor.cpp Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
DemoteRegToStack.cpp Change all self assignments X=X to (void)X, so that we can turn on a 2010-12-23 00:58:24 +00:00
InlineFunction.cpp Change how PHINodes store their operands. 2011-06-20 14:38:01 +00:00
InstructionNamer.cpp
LCSSA.cpp There is no need to force DebugLoc on a PHI at this point. 2011-05-16 22:05:03 +00:00
Local.cpp Change how PHINodes store their operands. 2011-06-20 14:38:01 +00:00
LoopSimplify.cpp Set debug loc for new preheader's terminator. 2011-06-17 21:36:44 +00:00
LoopUnroll.cpp Change how PHINodes store their operands. 2011-06-20 14:38:01 +00:00
LowerInvoke.cpp
LowerSwitch.cpp Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
Makefile
Mem2Reg.cpp Remove outdated references to dominance frontiers. 2011-01-18 03:53:26 +00:00
PromoteMemoryToRegister.cpp When promoting an alloca to registers discard any lifetime intrinsics. 2011-06-17 10:09:00 +00:00
SimplifyCFG.cpp Fix PR10103: Less code for enum type translation. 2011-06-18 10:28:47 +00:00
SimplifyInstructions.cpp Speed up instsimplify by about 10-15% by not bothering to retry 2011-01-03 10:50:04 +00:00
SSAUpdater.cpp Clean up the lazy initialization of DIBuilder a bit. 2011-05-24 06:00:08 +00:00
UnifyFunctionExitNodes.cpp Remove PHINode::reserveOperandSpace(). Instead, add a parameter to 2011-03-30 11:28:46 +00:00
Utils.cpp
ValueMapper.cpp Change how PHINodes store their operands. 2011-06-20 14:38:01 +00:00