mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-25 14:02:52 +02:00
c222d94c24
This implements PGO-driven loop peeling. The basic idea is that when the average dynamic trip-count of a loop is known, based on PGO, to be low, we can expect a performance win by peeling off the first several iterations of that loop. Unlike unrolling based on a known trip count, or a trip count multiple, this doesn't save us the conditional check and branch on each iteration. However, it does allow us to simplify the straight-line code we get (constant-folding, etc.). This is important given that we know that we will usually only hit this code, and not the actual loop. This is currently disabled by default. Differential Revision: https://reviews.llvm.org/D25963 llvm-svn: 288274
62 lines
1.3 KiB
CMake
62 lines
1.3 KiB
CMake
add_llvm_library(LLVMTransformUtils
|
|
ASanStackFrameLayout.cpp
|
|
AddDiscriminators.cpp
|
|
BasicBlockUtils.cpp
|
|
BreakCriticalEdges.cpp
|
|
BuildLibCalls.cpp
|
|
BypassSlowDivision.cpp
|
|
CloneFunction.cpp
|
|
CloneModule.cpp
|
|
CmpInstAnalysis.cpp
|
|
CodeExtractor.cpp
|
|
CtorUtils.cpp
|
|
DemoteRegToStack.cpp
|
|
EscapeEnumerator.cpp
|
|
Evaluator.cpp
|
|
FlattenCFG.cpp
|
|
FunctionComparator.cpp
|
|
FunctionImportUtils.cpp
|
|
GlobalStatus.cpp
|
|
InlineFunction.cpp
|
|
ImportedFunctionsInliningStatistics.cpp
|
|
InstructionNamer.cpp
|
|
IntegerDivision.cpp
|
|
LCSSA.cpp
|
|
LibCallsShrinkWrap.cpp
|
|
Local.cpp
|
|
LoopSimplify.cpp
|
|
LoopUnroll.cpp
|
|
LoopUnrollPeel.cpp
|
|
LoopUnrollRuntime.cpp
|
|
LoopUtils.cpp
|
|
LoopVersioning.cpp
|
|
LowerInvoke.cpp
|
|
LowerSwitch.cpp
|
|
Mem2Reg.cpp
|
|
MemorySSA.cpp
|
|
MetaRenamer.cpp
|
|
ModuleUtils.cpp
|
|
NameAnonGlobals.cpp
|
|
PromoteMemoryToRegister.cpp
|
|
StripGCRelocates.cpp
|
|
SSAUpdater.cpp
|
|
SanitizerStats.cpp
|
|
SimplifyCFG.cpp
|
|
SimplifyIndVar.cpp
|
|
SimplifyInstructions.cpp
|
|
SimplifyLibCalls.cpp
|
|
SplitModule.cpp
|
|
StripNonLineTableDebugInfo.cpp
|
|
SymbolRewriter.cpp
|
|
UnifyFunctionExitNodes.cpp
|
|
Utils.cpp
|
|
ValueMapper.cpp
|
|
|
|
ADDITIONAL_HEADER_DIRS
|
|
${LLVM_MAIN_INCLUDE_DIR}/llvm/Transforms
|
|
${LLVM_MAIN_INCLUDE_DIR}/llvm/Transforms/Utils
|
|
|
|
DEPENDS
|
|
intrinsics_gen
|
|
)
|