mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-02 22:04:55 +00:00
85e632de29
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
59 lines
1.2 KiB
CMake
59 lines
1.2 KiB
CMake
add_llvm_library(LLVMScalarOpts
|
|
ADCE.cpp
|
|
AlignmentFromAssumptions.cpp
|
|
BDCE.cpp
|
|
ConstantHoisting.cpp
|
|
ConstantProp.cpp
|
|
CorrelatedValuePropagation.cpp
|
|
DCE.cpp
|
|
DeadStoreElimination.cpp
|
|
EarlyCSE.cpp
|
|
FlattenCFGPass.cpp
|
|
Float2Int.cpp
|
|
GVN.cpp
|
|
InductiveRangeCheckElimination.cpp
|
|
IndVarSimplify.cpp
|
|
JumpThreading.cpp
|
|
LICM.cpp
|
|
LoadCombine.cpp
|
|
LoopDeletion.cpp
|
|
LoopDistribute.cpp
|
|
LoopIdiomRecognize.cpp
|
|
LoopInstSimplify.cpp
|
|
LoopInterchange.cpp
|
|
LoopRerollPass.cpp
|
|
LoopRotation.cpp
|
|
LoopStrengthReduce.cpp
|
|
LoopUnrollPass.cpp
|
|
LoopUnswitch.cpp
|
|
LowerAtomic.cpp
|
|
LowerExpectIntrinsic.cpp
|
|
MemCpyOptimizer.cpp
|
|
MergedLoadStoreMotion.cpp
|
|
NaryReassociate.cpp
|
|
PartiallyInlineLibCalls.cpp
|
|
PlaceSafepoints.cpp
|
|
Reassociate.cpp
|
|
Reg2Mem.cpp
|
|
RewriteStatepointsForGC.cpp
|
|
SCCP.cpp
|
|
SROA.cpp
|
|
SampleProfile.cpp
|
|
Scalar.cpp
|
|
ScalarReplAggregates.cpp
|
|
Scalarizer.cpp
|
|
SeparateConstOffsetFromGEP.cpp
|
|
SimplifyCFGPass.cpp
|
|
Sink.cpp
|
|
SpeculativeExecution.cpp
|
|
StraightLineStrengthReduce.cpp
|
|
StructurizeCFG.cpp
|
|
TailRecursionElimination.cpp
|
|
|
|
ADDITIONAL_HEADER_DIRS
|
|
${LLVM_MAIN_INCLUDE_DIR}/llvm/Transforms
|
|
${LLVM_MAIN_INCLUDE_DIR}/llvm/Transforms/Scalar
|
|
)
|
|
|
|
add_dependencies(LLVMScalarOpts intrinsics_gen)
|