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 IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
AlignmentFromAssumptions
ArgumentPromotion IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
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 [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
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 IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
DeadStoreElimination IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
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 IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
GlobalDCE [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
GlobalOpt IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
GVN Update BasicAliasAnalysis to understand that nothing aliases with undef values. 2015-05-05 18:10:49 +00:00
IndVarSimplify [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
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 Skip extra LLVM IR assemble/disassemble steps in some tests 2015-04-24 18:06:09 +00:00
IRCE
JumpThreading [JumpThreading] Simplify comparisons when simplifying branches 2015-05-07 00:19:14 +00:00
LCSSA [opaque pointer type] Add textual IR support for explicit type parameter to the invoke instruction 2015-04-24 19:32:54 +00:00
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 Add support to interchange loops with reductions. 2015-04-23 04:51:44 +00:00
LoopReroll
LoopRotate IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
LoopSimplify
LoopStrengthReduce [NoTTI] reject negative scale in addressing mode 2015-05-08 18:07:24 +00:00
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 [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
LowerInvoke
LowerSwitch Changed renaming of local symbols by inserting a dot vefore the numeric suffix. 2015-05-12 16:47:30 +00:00
Mem2Reg IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
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 IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
PartiallyInlineLibCalls
PhaseOrdering [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
PlaceSafepoints Add a GCStrategy for CoreCLR 2015-05-20 01:07:23 +00:00
PruneEH
Reassociate [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
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 IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
ScalarRepl IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
SCCP [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
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 IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
StructurizeCFG
TailCallElim
TailDup [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
Util Changed renaming of local symbols by inserting a dot vefore the numeric suffix. 2015-05-12 16:47:30 +00:00