llvm-6502/test/Transforms
Chandler Carruth 34afa06cf2 [inliner] Fix the early-exit of the inline cost analysis to correctly
model the dense vector instruction bonuses.

Previously, this code really didn't effectively compute the density of
inlined vector instructions and apply the intended inliner bonus. It
would try to compute it repeatedly while analyzing the function and
didn't handle the case where future vector instructions would tip the
scales back towards the bonus.

Instead, speculatively apply all possible bonuses to the threshold
initially. Once we *know* that a certain bonus can not be applied,
subtract it. This should delay early bailout enough to get much more
consistent results without actually causing us to analyze huge swaths of
code. I expect some (hopefully mild) compile time hit here, and some
swings in performance, but this was definitely the intended behavior of
these bonuses.

This also dramatically simplifies the computation of the bonuses to not
interact with each other in confusing ways. The previous code didn't do
a good job of this and the values for bonuses may be surprising but are
at least now clearly written in the code.

Finally, fix code to be in line with comments and use zero as the
bailout condition.

Patch by Easwaran Raman, with some comment tweaks by me to try and
further clarify what is going on with this code.

http://reviews.llvm.org/D8267

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238276 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-27 02:49:05 +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 Forgot to add lit.local.cfg for new R600 directory 2015-05-26 17:01:16 +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 Correct a mistaken comment from 238071 [NFC] 2015-05-23 00:05:43 +00:00
Float2Int
FunctionAttrs Remove conflicting attributes before adding deduced readonly/readnone 2015-05-25 19:46:38 +00:00
GCOVProfiling
GlobalDCE
GlobalOpt
GVN
IndVarSimplify
Inline [inliner] Fix the early-exit of the inline cost analysis to correctly 2015-05-27 02:49:05 +00:00
InstCombine [InstCombine] Don't eagerly propagate nsw for A*B+A*C => A*(B+C) 2015-05-22 23:02:11 +00:00
InstMerge
InstSimplify [InstSimplify] Handle some overflow intrinsics in InstSimplify 2015-05-22 03:56:46 +00:00
Internalize
IPConstantProp
IRCE
JumpThreading
LCSSA
LICM [LICM] Sinking doesn't involve the preheader 2015-05-22 02:14:05 +00:00
LoadCombine
LoopDeletion
LoopDistribute [LoopAccesses] Rearrange printed lines in -analyze 2015-05-18 15:36:57 +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
LoopUnroll [PPC/LoopUnrollRuntime] Don't avoid high-cost trip count computation on the PPC/A2 2015-05-21 20:30:23 +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] Do move the memset, but look at its dest's dependencies. 2015-05-21 01:43:39 +00:00
MergeFunc MergeFunctions: Two different sized allocas are *not* the same 2015-05-12 21:42:22 +00:00
MetaRenamer
NaryReassociate [NaryReassoc] reassociate GEP for CSE 2015-05-21 23:17:30 +00:00
ObjCARC
PartiallyInlineLibCalls
PhaseOrdering
PlaceSafepoints Add a GCStrategy for CoreCLR 2015-05-20 01:07:23 +00:00
PruneEH
Reassociate
Reg2Mem
RewriteStatepointsForGC [RewriteStatepointsForGC] For some values (like gep's and bitcasts) it's cheaper to clone them after statepoint than to emit proper relocates for them. This change implements this logic. There is alredy similar optimization in CodeGenPrepare, but doing so during RewriteStatepointsForGC allows to capture more opprtunities such as relocates in loops and longer instruction chains. 2015-05-19 15:59:05 +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
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