llvm-6502/test/Transforms
Jingyue Wu 85e632de29 Add a speculative execution pass
Summary:
This is a pass for speculative execution of instructions for simple if-then (triangle) control flow. It's aimed at GPUs, but could perhaps be used in other contexts. Enabling this pass gives us a 1.0% geomean improvement on Google benchmark suites, with one benchmark improving 33%.

Credit goes to Jingyue Wu for writing an earlier version of this pass.

Patched by Bjarke Roune. 

Test Plan:
This patch adds a set of tests in test/Transforms/SpeculativeExecution/spec.ll
The pass is controlled by a flag which defaults to having the pass not run.

Reviewers: eliben, dberlin, meheff, jingyue, hfinkel

Reviewed By: jingyue, hfinkel

Subscribers: majnemer, jholewinski, llvm-commits

Differential Revision: http://reviews.llvm.org/D9360

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237459 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-15 17:54:48 +00:00
..
ADCE
AddDiscriminators
AlignmentFromAssumptions
ArgumentPromotion
AtomicExpand/ARM
BBVectorize Changed renaming of local symbols by inserting a dot vefore the numeric suffix. 2015-05-12 16:47:30 +00:00
BDCE
BranchFolding
CodeExtractor
CodeGenPrepare [Statepoints] Support for "patchable" statepoints. 2015-05-12 23:52:24 +00:00
ConstantHoisting
ConstantMerge
ConstProp [ConstantFolding] Fix wrong folding of intrinsic 'convert.from.fp16'. 2015-05-14 18:01:48 +00:00
CorrelatedValuePropagation CVP: Improve handling of Selects used as incoming PHI values 2015-05-12 22:31:47 +00:00
DeadArgElim
DeadStoreElimination
EarlyCSE
Float2Int
FunctionAttrs
GCOVProfiling
GlobalDCE
GlobalOpt
GVN Update BasicAliasAnalysis to understand that nothing aliases with undef values. 2015-05-05 18:10:49 +00:00
IndVarSimplify
Inline Changed renaming of local symbols by inserting a dot vefore the numeric suffix. 2015-05-12 16:47:30 +00:00
InstCombine Revert "Canonicalize min/max expressions correctly." 2015-05-15 17:45:09 +00:00
InstMerge
InstSimplify
Internalize
IPConstantProp
IRCE
JumpThreading [JumpThreading] Simplify comparisons when simplifying branches 2015-05-07 00:19:14 +00:00
LCSSA
LICM
LoadCombine
LoopDeletion
LoopDistribute New Loop Distribution pass 2015-05-14 12:05:18 +00:00
LoopIdiom Changed renaming of local symbols by inserting a dot vefore the numeric suffix. 2015-05-12 16:47:30 +00:00
LoopInterchange
LoopReroll
LoopRotate
LoopSimplify
LoopStrengthReduce [NoTTI] reject negative scale in addressing mode 2015-05-08 18:07:24 +00:00
LoopUnroll Add another InstCombine pass after LoopUnroll. 2015-05-14 22:02:54 +00:00
LoopUnswitch Changed renaming of local symbols by inserting a dot vefore the numeric suffix. 2015-05-12 16:47:30 +00:00
LoopVectorize NFC - Test case invokes llc on a file rather than redirected from a file. 2015-05-15 15:29:53 +00:00
LowerAtomic
LowerBitSets Changed renaming of local symbols by inserting a dot vefore the numeric suffix. 2015-05-12 16:47:30 +00:00
LowerExpectIntrinsic
LowerInvoke
LowerSwitch Changed renaming of local symbols by inserting a dot vefore the numeric suffix. 2015-05-12 16:47:30 +00:00
Mem2Reg
MemCpyOpt [MemCpyOpt] Look at any dependency -not just source- for memset+memcpy. 2015-05-11 23:09:46 +00:00
MergeFunc MergeFunctions: Two different sized allocas are *not* the same 2015-05-12 21:42:22 +00:00
MetaRenamer
NaryReassociate [NaryReassociate] avoid running forever 2015-05-13 18:12:24 +00:00
ObjCARC
PartiallyInlineLibCalls
PhaseOrdering
PlaceSafepoints [PlaceSafepoints] Fix a bug that came in with rL236672. 2015-05-15 00:26:21 +00:00
PruneEH
Reassociate
Reg2Mem
RewriteStatepointsForGC [Statepoints] Support for "patchable" statepoints. 2015-05-12 23:52:24 +00:00
SampleProfile Add function entry counts from sample profiles. 2015-05-13 17:04:29 +00:00
Scalarizer
ScalarRepl
SCCP
SeparateConstOffsetFromGEP/NVPTX [ValueTracking] refactor: extract method haveNoCommonBitsSet 2015-05-14 23:53:19 +00:00
SimplifyCFG Changed renaming of local symbols by inserting a dot vefore the numeric suffix. 2015-05-12 16:47:30 +00:00
Sink
SLPVectorizer Let llc and opt override "-target-cpu" and "-target-features" via command line 2015-05-06 23:54:14 +00:00
SpeculativeExecution Add a speculative execution pass 2015-05-15 17:54:48 +00:00
SROA
StraightLineStrengthReduce [SLSR] handle (B | i) * S 2015-05-15 17:07:48 +00:00
StripSymbols
StructurizeCFG
TailCallElim
TailDup
Util Changed renaming of local symbols by inserting a dot vefore the numeric suffix. 2015-05-12 16:47:30 +00:00