llvm-project/llvm/test/Transforms/SimplifyCFG
Louis Gerbarg 1f54b82164 Add ExtractValue instruction to SimplifyCFG's ComputeSpeculationCost
Since ExtractValue is not included in ComputeSpeculationCost CFGs containing
ExtractValueInsts cannot be simplified. In particular this interacts with
InstCombineCompare's tendency to insert add.with.overflow intrinsics for
certain idiomatic math operations, preventing optimization.

This patch adds ExtractValue to the ComputeSpeculationCost. Test case included

rdar://14853450

llvm-svn: 208434
2014-05-09 17:02:46 +00:00
..
SPARC [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
X86 Allow switch-to-lookup table for tables with holes by adding bitmask check 2014-03-12 18:35:40 +00:00
2002-05-21-PHIElimination.ll
2002-09-24-PHIAssertion.ll
2003-03-07-DominateProblem.ll
2003-08-05-InvokeCrash.ll
2003-08-17-BranchFold.ll Converted 8x tests of SimplifyCFG to use FileCheck instead of grep. 2013-04-09 05:18:53 +00:00
2003-08-17-BranchFoldOrdering.ll Converted 8x tests of SimplifyCFG to use FileCheck instead of grep. 2013-04-09 05:18:53 +00:00
2003-08-17-FoldSwitch-dbg.ll Converted 8x tests of SimplifyCFG to use FileCheck instead of grep. 2013-04-09 05:18:53 +00:00
2003-08-17-FoldSwitch.ll Converted 8x tests of SimplifyCFG to use FileCheck instead of grep. 2013-04-09 05:18:53 +00:00
2004-12-10-SimplifyCFGCrash.ll
2005-06-16-PHICrash.ll
2005-08-01-PHIUpdateFail.ll
2005-10-02-InvokeSimplify.ll
2005-12-03-IncorrectPHIFold.ll Converted 8x tests of SimplifyCFG to use FileCheck instead of grep. 2013-04-09 05:18:53 +00:00
2006-02-17-InfiniteUnroll.ll
2006-06-12-InfLoop.ll
2006-08-03-Crash.ll
2006-10-19-UncondDiv.ll Converted 8x tests of SimplifyCFG to use FileCheck instead of grep. 2013-04-09 05:18:53 +00:00
2006-12-08-Ptr-ICmp-Branch.ll
2007-11-22-InvokeNoUnwind.ll Converted 8x tests of SimplifyCFG to use FileCheck instead of grep. 2013-04-09 05:18:53 +00:00
2007-12-21-Crash.ll
2008-01-02-hoist-fp-add.ll Converted 8x tests of SimplifyCFG to use FileCheck instead of grep. 2013-04-09 05:18:53 +00:00
2008-05-16-PHIBlockMerge.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
2008-07-13-InfLoopMiscompile.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
2008-09-08-MultiplePred.ll
2008-09-17-SpeculativeHoist.ll
2008-10-03-SpeculativelyExecuteBeforePHI.ll
2008-12-06-SingleEntryPhi.ll
2008-12-16-DCECond.ll
2009-01-18-PHIPropCrash.ll
2009-01-19-UnconditionalTrappingConstantExpr.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
2009-05-12-externweak.ll
2010-03-30-InvokeCrash.ll Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2013-01-01 13:57:25 +00:00
2011-03-08-UnreachableUse.ll
2011-09-05-TrivialLPad.ll
BrUnwind.ll Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
CoveredLookupTable.ll Teach simplify-cfg how to correctly create covered lookup tables for switches on iN with N >= 3. 2013-10-20 07:04:37 +00:00
DeadSetCC.ll Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
EmptyBlockMerge.ll Filecheckized 2x tests in SimplifyCFG and removed their date prefix to fit with current llvm style for test names. 2013-01-31 01:04:23 +00:00
EqualPHIEdgeBlockMerge.ll TryToSimplifyUncondBranchFromEmptyBlock was checking that any common 2013-07-11 08:28:20 +00:00
ForwardSwitchConditionToPHI.ll
HoistCode.ll
MagicPointer.ll Teach SimplifyCFG about address spaces 2013-10-21 18:55:08 +00:00
PHINode.ll Filecheckized 2x tests in SimplifyCFG and removed their date prefix to fit with current llvm style for test names. 2013-01-31 01:04:23 +00:00
PR9946.ll Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2013-01-01 13:57:25 +00:00
PR16069.ll Second part of pr16069 2013-06-04 14:11:59 +00:00
PhiBlockMerge.ll
PhiBlockMerge2.ll
PhiEliminate.ll
PhiEliminate2.ll
PhiEliminate3.ll
PhiNoEliminate.ll
SpeculativeExec.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
UncondBranchToReturn.ll Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
UnreachableEliminate.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
attr-noduplicate.ll SimplifyCFG: Don't duplicate calls to functions marked noduplicate v2 2013-10-21 20:07:30 +00:00
basictest.ll Fix pr14893. 2014-01-28 16:56:46 +00:00
branch-cond-merge.ll
branch-cond-prop.ll
branch-fold-dbg.ll Debug Info Testing: updated to use NULL instead of "i32 0" in a few fields. 2013-09-06 21:03:58 +00:00
branch-fold-test.ll
branch-fold.ll Remove dyn_cast + dereference pattern by replacing it with a cast and changing 2012-06-24 10:15:42 +00:00
branch-phi-thread.ll Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
common-dest-folding.ll FoldBranchToCommonDest merges branches into a single branch with or/and of the condition. It has a heuristics for estimating when some of the dependencies are processed by out-of-order processors. This patch adds another rule to the heuristics that says that if the "BonusInstruction" that we speculatively execute is used by the condition of the second branch then it is okay to hoist it. This change exposes more opportunities for other passes to transform the code. It does not matter that much that we if-convert the code because the selectiondag builder splits or/and branches into multiple branches when profitable. 2013-11-12 22:37:16 +00:00
dbginfo.ll
dce-cond-after-folding-terminator.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
duplicate-phis.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
extract-cost.ll Add ExtractValue instruction to SimplifyCFG's ComputeSpeculationCost 2014-05-09 17:02:46 +00:00
hoist-common-code.ll
hoist-dbgvalue.ll Debug Info: update testing cases to specify the debug info version number. 2013-11-23 01:16:29 +00:00
indirectbr.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
invoke.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
invoke_unwind.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
iterative-simplify.ll
lifetime.ll
multiple-phis.ll Fix SpeculativelyExecuteBB to either speculate all or none of the phis 2012-01-05 23:58:56 +00:00
no_speculative_loads_with_tsan.ll Don't speculate loads under ThreadSanitizer 2013-11-21 07:29:28 +00:00
noreturn-call.ll
phi-undef-loadstore.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
preserve-branchweights-partial.ll Catch more CHECK that can be converted to CHECK-LABEL in Transforms for easier debugging. No functionality change. 2013-07-14 01:50:49 +00:00
preserve-branchweights-switch-create.ll PGO: preserve branch-weight metadata when merging two switches where 2012-09-14 17:29:56 +00:00
preserve-branchweights.ll PGO branch weight: keep halving the weights until they can fit into 2014-01-27 23:39:03 +00:00
return-merge.ll
select-gep.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
sink-common-code.ll SimplifyCFG: sink common codes from IF, ELSE blocks down to END block. 2012-09-20 22:37:36 +00:00
speculate-math.ll Allow speculating llvm.sqrt, fma and fmuladd 2014-01-31 00:09:00 +00:00
speculate-store.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
speculate-with-offset.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
switch-masked-bits.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
switch-on-const-select.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
switch-simplify-crash.ll
switch-to-icmp.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
switch_create.ll Resolve TODO in test now that filecheck has multiple check prefixes. 2013-11-10 02:16:47 +00:00
switch_switch_fold.ll
switch_thread.ll Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
trap-debugloc.ll Debug Info: update testing cases to specify the debug info version number. 2013-11-22 21:49:45 +00:00
trapping-load-unreachable.ll IR: add a second ordering operand to cmpxhg for failure 2014-03-11 10:48:52 +00:00
trivial-throw.ll Don't remove a landing pad if the invoke requires a table entry. 2013-03-11 20:53:00 +00:00
two-entry-phi-return.ll
unreachable-blocks.ll Make Value::isDereferenceablePointer() handle unreachable code blocks. (This 2012-01-23 00:05:17 +00:00
volatile-phioper.ll Use function attributes to indicate that we don't want to realign the stack. 2013-08-01 21:42:05 +00:00