llvm-6502/lib/Transforms/Scalar
Benjamin Kramer c11b107f21 JumpThreading: Turn a select instruction into branching if it allows to thread one half of the select.
This is a common pattern coming out of simplifycfg generating gross code.

a:                                       ; preds = %entry
  %sel = select i1 %cmp1, double %add, double 0.000000e+00
  br label %b

b:
  %cond5 = phi double [ %sel, %a ], [ %sub, %entry ]
  %cmp6 = fcmp oeq double %cond5, 0.000000e+00
  br i1 %cmp6, label %if.then, label %if.end

becomes

a:
  br i1 %cmp1, label %b, label %if.then

b:
  %cond5 = phi double [ %sub, %entry ], [ %add, %a ]
  %cmp6 = fcmp oeq double %cond5, 0.000000e+00
  br i1 %cmp6, label %if.then, label %if.end

Skipping block b completely if possible.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187880 91177308-0d34-0410-b5e6-96231b3b80d8
2013-08-07 10:29:38 +00:00
..
ADCE.cpp
BasicBlockPlacement.cpp
CMakeLists.txt Factor FlattenCFG out from SimplifyCFG 2013-08-06 02:43:45 +00:00
CodeGenPrepare.cpp
ConstantProp.cpp
CorrelatedValuePropagation.cpp
DCE.cpp
DeadStoreElimination.cpp
EarlyCSE.cpp
FlattenCFGPass.cpp Factor FlattenCFG out from SimplifyCFG 2013-08-06 02:43:45 +00:00
GlobalMerge.cpp
GVN.cpp Reimplement isPotentiallyReachable to make nocapture deduction much stronger. 2013-07-27 01:24:00 +00:00
IndVarSimplify.cpp
JumpThreading.cpp JumpThreading: Turn a select instruction into branching if it allows to thread one half of the select. 2013-08-07 10:29:38 +00:00
LICM.cpp
LLVMBuild.txt
LoopDeletion.cpp
LoopIdiomRecognize.cpp
LoopInstSimplify.cpp
LoopRotation.cpp
LoopStrengthReduce.cpp
LoopUnrollPass.cpp
LoopUnswitch.cpp Adjust file to the coding standard. 2013-08-06 17:03:42 +00:00
LowerAtomic.cpp
Makefile
MemCpyOptimizer.cpp
Reassociate.cpp Use switch instead of if. No functionality change. 2013-07-22 23:38:16 +00:00
Reg2Mem.cpp
Scalar.cpp Factor FlattenCFG out from SimplifyCFG 2013-08-06 02:43:45 +00:00
ScalarReplAggregates.cpp Thread DataLayout through the callers and into mem2reg. This will be 2013-07-28 06:43:11 +00:00
SCCP.cpp
SimplifyCFGPass.cpp Factor FlattenCFG out from SimplifyCFG 2013-08-06 02:43:45 +00:00
Sink.cpp
SROA.cpp Teach the AllocaPromoter which is wrapped around the SSAUpdater 2013-07-29 09:06:53 +00:00
StructurizeCFG.cpp
TailRecursionElimination.cpp TRE: Move class into anonymous namespace. 2013-07-24 16:12:08 +00:00