llvm-project/llvm/lib/Transforms/IPO
Tom Stellard 8b1e021e85 SimplifyCFG: Use parallel-and and parallel-or mode to consolidate branch conditions
Merge consecutive if-regions if they contain identical statements.
Both transformations reduce number of branches.  The transformation
is guarded by a target-hook, and is currently enabled only for +R600,
but the correctness has been tested on X86 target using a variety of
CPU benchmarks.

Patch by: Mei Ye

llvm-svn: 187278
2013-07-27 00:01:07 +00:00
..
ArgumentPromotion.cpp Clean up some of this code a tiny bit, no functionality change. 2013-07-18 22:32:32 +00:00
BarrierNoopPass.cpp Introduce a BarrierNoop pass, a hack designed to allow *some* control 2012-10-18 08:05:46 +00:00
CMakeLists.txt Introduce a BarrierNoop pass, a hack designed to allow *some* control 2012-10-18 08:05:46 +00:00
ConstantMerge.cpp Fix const merging when an alias of a const is llvm.used. 2013-05-06 01:48:55 +00:00
DeadArgumentElimination.cpp DeadArgumentElimination: keep return value on functions that have a live argument with the 'returned' attribute (rather than generate invalid IR); however, if both can be eliminated, both will be 2013-06-30 20:26:21 +00:00
ExtractGV.cpp Check isDiscardableIfUnused, rather than hasLocalLinkage, when bumping 2013-03-04 22:40:44 +00:00
FunctionAttrs.cpp Fix annotation of unlink. Should fix builder. 2013-07-06 00:59:28 +00:00
GlobalDCE.cpp GlobalDCE: Fix an oversight in my last commit that could lead to crashes. 2013-04-13 16:11:14 +00:00
GlobalOpt.cpp Respect llvm.used in Internalize. 2013-07-25 03:23:25 +00:00
IPConstantPropagation.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
IPO.cpp This patch breaks up Wrap.h so that it does not have to include all of 2013-05-01 20:59:00 +00:00
InlineAlways.cpp Make the inline cost a proper analysis pass. This remains essentially 2013-01-21 11:39:18 +00:00
InlineSimple.cpp Make the inline cost a proper analysis pass. This remains essentially 2013-01-21 11:39:18 +00:00
Inliner.cpp Fix comparisons of alloca alignment in inliner merging 2013-07-17 14:32:41 +00:00
Internalize.cpp Respect llvm.used in Internalize. 2013-07-25 03:23:25 +00:00
LLVMBuild.txt Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation for refactoring the ARC Optimizer. 2013-01-28 01:35:51 +00:00
LoopExtractor.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
Makefile
MergeFunctions.cpp MergeFunc: Make pointer and integer types generate the same hash. 2013-04-19 23:06:44 +00:00
PartialInlining.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
PassManagerBuilder.cpp SimplifyCFG: Use parallel-and and parallel-or mode to consolidate branch conditions 2013-07-27 00:01:07 +00:00
PruneEH.cpp PruneEH: Only merge attribute sets when used. No functionality change. 2013-06-15 10:55:39 +00:00
StripDeadPrototypes.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
StripSymbols.cpp Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size. 2013-07-04 01:31:24 +00:00