llvm-project/llvm/lib/Transforms/Utils
Dan Gohman 4a63fad976 Teach SimplifyCFG how to simplify indirectbr instructions.
- Eliminate redundant successors.
 - Convert an indirectbr with one successor into a direct branch.

Also, generalize SimplifyCFG to be able to be run on a function entry block.
It knows quite a few simplifications which are applicable to the entry
block, and it only needs a few checks to avoid trouble with the entry block.

llvm-svn: 111060
2010-08-14 00:29:42 +00:00
..
AddrModeMatcher.cpp use getArgOperand instead of getOperand 2010-06-30 09:14:26 +00:00
BasicBlockUtils.cpp Move FindAvailableLoadedValue isSafeToLoadUnconditionally out of 2010-05-28 16:19:17 +00:00
BasicInliner.cpp simplify 2010-07-28 15:52:43 +00:00
BreakCriticalEdges.cpp Reapply r110396, with fixes to appease the Linux buildbot gods. 2010-08-06 18:33:48 +00:00
BuildLibCalls.cpp undo 80 column trespassing I caused 2010-07-22 10:37:47 +00:00
CMakeLists.txt Update CMake build. 2010-03-05 22:34:16 +00:00
CloneFunction.cpp Use DebugLocs instead of MDNodes. 2010-07-20 23:49:05 +00:00
CloneLoop.cpp Use ValueMap instead of DenseMap. 2010-06-24 00:33:28 +00:00
CloneModule.cpp Make NamedMDNode not be a subclass of Value, and simplify the interface 2010-07-21 23:38:33 +00:00
CodeExtractor.cpp rename llvm::llvm_report_error -> llvm::report_fatal_error 2010-04-07 22:58:41 +00:00
DemoteRegToStack.cpp remove trailing whitespace 2010-06-16 22:41:09 +00:00
InlineFunction.cpp simplify: CallSite::get --> CallSite constructor 2010-07-27 15:02:37 +00:00
InstructionNamer.cpp Reapply r110396, with fixes to appease the Linux buildbot gods. 2010-08-06 18:33:48 +00:00
LCSSA.cpp Reapply r110396, with fixes to appease the Linux buildbot gods. 2010-08-06 18:33:48 +00:00
Local.cpp Teach SimplifyCFG how to simplify indirectbr instructions. 2010-08-14 00:29:42 +00:00
LoopSimplify.cpp Reapply r110396, with fixes to appease the Linux buildbot gods. 2010-08-06 18:33:48 +00:00
LoopUnroll.cpp Preserve ScalarEvolution in the loop unroller. 2010-07-26 18:02:06 +00:00
LowerInvoke.cpp Eliminate PromoteMemoryToRegisterID; just use addPreserved("mem2reg") 2010-08-06 21:48:06 +00:00
LowerSwitch.cpp Eliminate PromoteMemoryToRegisterID; just use addPreserved("mem2reg") 2010-08-06 21:48:06 +00:00
Makefile make -fno-rtti the default unless a directory builds with REQUIRES_RTTI. 2010-01-24 20:43:08 +00:00
Mem2Reg.cpp Eliminate PromoteMemoryToRegisterID; just use addPreserved("mem2reg") 2010-08-06 21:48:06 +00:00
PromoteMemoryToRegister.cpp Don't look up the "dbg" metadata kind by name. 2010-07-20 23:09:34 +00:00
SSAUpdater.cpp Combine the implementations of the core part of the SSAUpdater and 2010-05-04 23:18:19 +00:00
SSI.cpp Reapply r110396, with fixes to appease the Linux buildbot gods. 2010-08-06 18:33:48 +00:00
SimplifyCFG.cpp Teach SimplifyCFG how to simplify indirectbr instructions. 2010-08-14 00:29:42 +00:00
UnifyFunctionExitNodes.cpp Eliminate PromoteMemoryToRegisterID; just use addPreserved("mem2reg") 2010-08-06 21:48:06 +00:00
ValueMapper.cpp Revert this because we can't clone cyclic MDNodes which are creating during a 2010-07-24 20:54:02 +00:00
ValueMapper.h Use ValueMap instead of DenseMap. 2010-06-24 00:33:28 +00:00