llvm-6502/test/Transforms/SimplifyCFG
Juergen Ributzka 18db81a0ec [SimplifyCFG] Make the value type of the hole check bitmask a power-of-2.
When converting a switch to a lookup table we might have to generate a bitmaks
to encode and check for holes in the original switch statement.

The type of this mask depends on the number of switch statements, which can
result in illegal types for pretty much all architectures.

To avoid unnecessary type legalization and help FastISel this commit increases
the size of the bitmask to next power-of-2 value when necessary.

This fixes rdar://problem/18984639.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222168 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-17 19:39:56 +00:00
..
SPARC Reduce verbiage of lit.local.cfg files 2014-06-09 22:42:55 +00:00
X86 [SimplifyCFG] Make the value type of the hole check bitmask a power-of-2. 2014-11-17 19:39:56 +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
2003-08-17-BranchFoldOrdering.ll
2003-08-17-FoldSwitch-dbg.ll
2003-08-17-FoldSwitch.ll
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
2006-02-17-InfiniteUnroll.ll
2006-06-12-InfLoop.ll
2006-08-03-Crash.ll
2006-10-19-UncondDiv.ll
2006-12-08-Ptr-ICmp-Branch.ll
2007-11-22-InvokeNoUnwind.ll
2007-12-21-Crash.ll
2008-01-02-hoist-fp-add.ll
2008-05-16-PHIBlockMerge.ll
2008-07-13-InfLoopMiscompile.ll
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
2009-05-12-externweak.ll
2010-03-30-InvokeCrash.ll
2011-03-08-UnreachableUse.ll
2011-09-05-TrivialLPad.ll
assume.ll Add @llvm.assume, lowering, and some basic properties 2014-07-25 21:13:35 +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 Revert "Revert "DI: Fold constant arguments into a single MDString"" 2014-10-03 20:01:09 +00:00
branch-fold-test.ll
branch-fold-threshold.ll [SimplifyCFG] threshold for folding branches with common destination 2014-09-30 22:23:38 +00:00
branch-fold.ll
branch-phi-thread.ll
BrUnwind.ll
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
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
dbginfo.ll
dce-cond-after-folding-terminator.ll
DeadSetCC.ll
duplicate-phis.ll
EmptyBlockMerge.ll
EqualPHIEdgeBlockMerge.ll
extract-cost.ll Add ExtractValue instruction to SimplifyCFG's ComputeSpeculationCost 2014-05-09 17:02:46 +00:00
ForwardSwitchConditionToPHI.ll
hoist-common-code.ll
hoist-dbgvalue.ll Revert "Revert "DI: Fold constant arguments into a single MDString"" 2014-10-03 20:01:09 +00:00
hoist-with-range.ll Add a test for hoisting instructions with metadata out of then/else blocks 2014-09-09 17:10:21 +00:00
HoistCode.ll
indirectbr.ll
invoke_unwind.ll
invoke.ll
iterative-simplify.ll
lifetime.ll SimplifyCFG: Avoid miscompilations due to removed lifetime intrinsics. 2014-07-30 21:04:00 +00:00
MagicPointer.ll Teach SimplifyCFG about address spaces 2013-10-21 18:55:08 +00:00
multiple-phis.ll
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
PhiBlockMerge2.ll
PhiBlockMerge.ll
PhiEliminate2.ll
PhiEliminate3.ll
PhiEliminate.ll
PHINode.ll
PhiNoEliminate.ll
PR9946.ll
PR16069.ll
PR17073.ll Fix for PR17073 ( http://llvm.org/pr17073 ), simplifycfg illegally hoists an operation in a phi node that can trap. 2014-07-07 21:19:00 +00:00
preserve-branchweights-partial.ll
preserve-branchweights-switch-create.ll
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
sink-common-code.ll
speculate-math.ll Add minnum / maxnum intrinsics 2014-10-21 23:00:20 +00:00
speculate-store.ll
speculate-vector-ops.ll Make bitcast, extractelement, and insertelement considered cheap for speculation. 2014-05-30 18:34:43 +00:00
speculate-with-offset.ll
SpeculativeExec.ll
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
switch-masked-bits.ll
switch-on-const-select.ll
switch-simplify-crash.ll
switch-to-icmp.ll
switch-to-select-multiple-edge-per-block-phi.ll Switch to select optimization for two-case switches 2014-10-14 01:58:26 +00:00
switch-to-select-two-case.ll Switch to select optimization for two-case switches 2014-10-14 01:58:26 +00:00
trap-debugloc.ll Revert "Revert "DI: Fold constant arguments into a single MDString"" 2014-10-03 20:01:09 +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
two-entry-phi-return.ll
UncondBranchToReturn.ll
unreachable-blocks.ll
UnreachableEliminate.ll Switch to select optimization for two-case switches 2014-10-14 01:58:26 +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