llvm-project/llvm/test/Transforms
Vedant Kumar d2a895a972 [HotColdSplitting] Use TTI to inform outlining threshold
Using TargetTransformInfo allows the splitting pass to factor in the
code size cost of instructions as it decides whether or not outlining is
profitable.

This did not regress the overall amount of outlining seen on the handful
of internal frameworks I tested.

Thanks to Jun Bum Lim for suggesting this!

Differential Revision: https://reviews.llvm.org/D53835

llvm-svn: 346108
2018-11-04 23:11:57 +00:00
..
ADCE [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
AddDiscriminators [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
AggressiveInstCombine [AggressiveInstCombine] avoid crashing on unsimplified code (PR37446) 2018-05-14 13:43:32 +00:00
AlignmentFromAssumptions
ArgumentPromotion [ArgumentPromotion] don't break musttail invariant PR36543 2018-03-02 00:59:27 +00:00
AtomicExpand AMDGPU: Expand atomicrmw nand in IR 2018-10-02 03:50:56 +00:00
BDCE [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
BlockExtractor [hot-cold-split] Name split functions with ".cold" suffix 2018-10-24 18:53:47 +00:00
BranchFolding
CallSiteSplitting [CallSiteSplitting] Add debug location to created PHI nodes. 2018-09-11 17:55:58 +00:00
CalledValuePropagation
CodeExtractor [hot-cold-split] Name split functions with ".cold" suffix 2018-10-24 18:53:47 +00:00
CodeGenPrepare Fix a use-after-RAUW bug in large GEP splitting 2018-10-19 19:02:16 +00:00
ConstProp [X86] Add constant folding for AVX512 versions of scalar floating point to integer conversion intrinsics. 2018-08-12 22:09:54 +00:00
ConstantHoisting X86/TargetTransformInfo: Report div/rem constant immediate costs as TCC_Free 2018-10-11 23:14:35 +00:00
ConstantMerge
Coroutines [Coroutines] PR34897: Fix incorrect elisions 2018-05-11 03:12:28 +00:00
CorrelatedValuePropagation [CVP] Extend tests to illustrate an old patch isn't needed 2018-08-24 21:56:43 +00:00
CrossDSOCFI
DCE
DeadArgElim [deadargelim] Update dbg.value of 'unused' parameters 2018-09-24 10:01:24 +00:00
DeadStoreElimination [BasicAA] Don't assume tail calls with byval don't alias allocas 2018-08-14 01:24:35 +00:00
DivRemPairs
EarlyCSE [EarlyCSEwMemorySSA] Add MSSA verification and tests to make EarlyCSE failures easier to track. 2018-09-17 22:35:21 +00:00
EliminateAvailableExternally
EntryExitInstrumenter [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
ExpandMemCmp/X86
Float2Int
ForcedFunctionAttrs
FunctionAttrs [FuncAttrs] Remove "access range attributes" for read-none functions 2018-09-11 11:51:29 +00:00
FunctionImport New test requires x86-registered-target 2018-10-17 00:59:14 +00:00
GCOVProfiling [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
GVN [Local] Keep K's range if K does not move when combining metadata. 2018-10-27 16:53:45 +00:00
GVNHoist [MemorySSAUpdater] Avoid creating self-referencing MemoryDefs 2018-09-11 14:29:59 +00:00
GVNSink [Local] Make DoesKMove required for combineMetadata. 2018-08-24 11:40:04 +00:00
GlobalDCE
GlobalMerge [GlobalMerge] Allow merging globals with explicit section markings. 2018-08-02 23:54:16 +00:00
GlobalOpt [DebugInfo][GlobalOpt] Fix -debugify for globalopt shrinking globals to booleans. 2018-10-23 16:35:51 +00:00
GlobalSplit
GuardWidening [GuardWidening] Ignore guards with trivial conditions 2018-08-22 02:40:49 +00:00
HotColdSplit [HotColdSplitting] Use TTI to inform outlining threshold 2018-11-04 23:11:57 +00:00
IPConstantProp Recommit r333268: [IPSCCP] Use PredicateInfo to propagate facts from cmp instructions. 2018-08-23 11:04:00 +00:00
IRCE Revert "[SCEV][NFC] Check NoWrap flags before lexicographical comparison of SCEVs" 2018-08-27 21:41:37 +00:00
IndVarSimplify [IndVars] Smart hard uses detection 2018-11-01 06:47:01 +00:00
IndirectBrExpand
InferAddressSpaces AMDGPU: Fix tests using old number for constant address space 2018-09-10 02:54:25 +00:00
InferFunctionAttrs [LibCalls] Added returned attribute to libcalls 2018-08-23 05:18:23 +00:00
Inline [PM] keeping history when original SCC split and then merge into itself 2018-10-23 23:29:45 +00:00
InstCombine [ValueTracking] determine sign of 0.0 from select when matching min/max FP 2018-11-04 14:28:48 +00:00
InstMerge [DebugInfo][InstMerge] Fix -debugify for phi node created by -mldst-motion 2018-11-02 18:25:41 +00:00
InstNamer
InstSimplify [InstSimplify] fold icmp based on range of abs/nabs (2nd try) 2018-11-01 14:07:39 +00:00
InterleavedAccess
Internalize
JumpThreading [Local] Keep K's range if K does not move when combining metadata. 2018-10-27 16:53:45 +00:00
LCSSA [DebugInfo][LCSSA] Rewrite pre-existing debug values outside loop 2018-10-16 08:06:48 +00:00
LICM [InstCombine] InstCombine and InstSimplify for minimum and maximum 2018-10-19 19:01:26 +00:00
LoadStoreVectorizer AMDGPU: Fix private handling for allowsMisalignedMemoryAccesses 2018-09-24 13:18:15 +00:00
LoopDataPrefetch [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
LoopDeletion
LoopDistribute [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
LoopIdiom SCEV should forget all loops containing a deleted block. 2018-08-09 17:53:26 +00:00
LoopInstSimplify Update MemorySSA in LoopInstSimplify. 2018-08-22 20:05:21 +00:00
LoopInterchange [LoopInterchange] Remove support for inner-only reductions. 2018-11-01 19:25:00 +00:00
LoopLoadElim
LoopPredication [LoopPredication] Add profitability check based on BPI 2018-03-22 16:03:59 +00:00
LoopReroll [LoopReroll] Rewrite induction variable rewriting. 2018-06-22 22:58:55 +00:00
LoopRotate Update MemorySSA in LoopRotate. 2018-10-24 22:46:45 +00:00
LoopSimplify [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
LoopSimplifyCFG [NFC] Add tests for loop-simplifycfg for further development 2018-10-31 11:28:23 +00:00
LoopStrengthReduce Revert r345114 2018-10-24 08:41:22 +00:00
LoopUnroll [LoopUnroll] allow customization for new-pass-manager version of LoopUnroll 2018-10-31 14:33:14 +00:00
LoopUnrollAndJam [UnJ] Improve explicit loop count checks 2018-08-11 07:37:31 +00:00
LoopUnswitch Update MemorySSA in LoopUnswitch. 2018-09-11 19:19:21 +00:00
LoopVectorize [SystemZ] Rework getInterleavedMemoryOpCost() 2018-11-02 17:15:36 +00:00
LoopVersioning Re-apply "[SCEV] Strengthen StrengthenNoWrapFlags (reapply r334428)." 2018-07-13 23:58:46 +00:00
LoopVersioningLICM
LowerAtomic
LowerExpectIntrinsic
LowerGuardIntrinsic
LowerInvoke
LowerSwitch
LowerTypeTests [LowerTypeTests] Limit when icall jumptable entries are emitted 2018-07-13 19:57:39 +00:00
Mem2Reg Improve ConvertDebugDeclareToDebugValue 2018-06-26 06:17:00 +00:00
MemCpyOpt Merge clang's isRepeatedBytePattern with LLVM's isBytewiseValue 2018-09-21 05:17:42 +00:00
MergeFunc [MergeFunctions] Fix merging of small weak functions 2018-05-15 11:31:07 +00:00
MergeICmps Pointer types were treated as zero-size by MergeICmps 2018-10-26 18:02:06 +00:00
MetaRenamer
NameAnonGlobals
NaryReassociate [NaryReassociate] Detect deleted instr with WeakVH 2018-05-24 06:09:02 +00:00
NewGVN [Local] Keep K's range if K does not move when combining metadata. 2018-10-27 16:53:45 +00:00
ObjCARC [ObjCARC] Prevent code motion into a catchswitch 2018-05-16 04:52:18 +00:00
PGOProfile Add a flag to remap manglings when reading profile data information. 2018-10-10 23:13:47 +00:00
PartiallyInlineLibCalls
PhaseOrdering [PhaseOrdering] remove stale comments; NFC 2018-05-09 23:10:46 +00:00
PlaceSafepoints
PreISelIntrinsicLowering
PruneEH [PM][FunctionAttrs] add NoUnwind attribute inference to PostOrderFunctionAttrs pass 2018-03-23 21:46:16 +00:00
Reassociate [FPEnv] Convert more BinaryOperator::isFNeg(...) to m_FNeg(...) 2018-10-24 14:45:18 +00:00
Reg2Mem
RewriteStatepointsForGC NFC - Various typo fixes in tests 2018-07-04 13:28:39 +00:00
SCCP SCCP: avoid caching DenseMap entry that might be invalidated. 2018-10-12 09:01:59 +00:00
SLPVectorizer [CostModel][X86] Add realistic vXi64 uitofp vXf64 costs 2018-10-25 13:06:20 +00:00
SROA [SROA] Use offset sizes from the DataLayout instead of the pointer siezes. 2018-10-30 11:15:04 +00:00
SafeStack SafeStack: Prevent OOB reads with mem intrinsics 2018-08-30 20:44:51 +00:00
SampleProfile Add a flag to remap manglings when reading profile data information. 2018-10-10 23:13:47 +00:00
ScalarizeMaskedMemIntrin/X86 [ScalarizeMaskedMemIntrin] Use MinAlign to calculate alignment for the scalar load/stores to handle element types that are byte-sized but not powers of 2. 2018-09-28 03:35:37 +00:00
Scalarizer [LoopVectorize] Loop vectorization for minimum and maximum 2018-10-19 21:11:43 +00:00
SeparateConstOffsetFromGEP [Split GEP] handle trunc() in separate-const-offset-from-gep pass. 2018-05-11 21:13:19 +00:00
SimpleLoopUnswitch [SimpleLoopUnswitch] Unswitch by experimental.guard intrinsics 2018-10-26 14:20:11 +00:00
SimplifyCFG [InstCombine] InstCombine and InstSimplify for minimum and maximum 2018-10-19 19:01:26 +00:00
Sink
SpeculateAroundPHIs
SpeculativeExecution
StraightLineStrengthReduce [SLSR] use 'match' to simplify code; NFC 2018-10-23 14:07:39 +00:00
StripDeadPrototypes
StripSymbols
StructurizeCFG StructurizeCFG: Simplify inserted PHI nodes 2018-10-17 15:37:41 +00:00
SyntheticCountsPropagation
TailCallElim [TailCallElim] Enable marking of calls with byval as tails 2018-10-08 18:03:40 +00:00
ThinLTOBitcodeWriter [ThinLTOBitcodeWriter] Emit summaries for regular LTO modules 2018-06-01 15:20:47 +00:00
Util Relax trivial cast requirements in CallPromotionUtils 2018-10-10 16:35:47 +00:00
WholeProgramDevirt [ThinLTO] Efficiency fix for writing type id records in per-module indexes 2018-09-25 20:14:40 +00:00