llvm-6502/test/Transforms
Andrea Di Biagio f033db57e9 [TTI] Improved cost heuristic for cttz/ctlz calls.
This patch is a follow-up of r228826 (see code-review: D7506).

Now that SimplifyCFG uses TargetTransformInfo for cost analysis, we 
have to fix the cost heuristic for intrinsic calls to cttz/ctlz.

This patch defines method 'getIntrinsicCost' in BasicTTIImpl: now, BasicTTIImpl
queries TLI to check if a call to cttz/ctlz is cheap for the target.

Added test cases in Transforms/SimplifyCFG/X86 to verify that on x86,
SimplifyCFG only speculates a call to cttz/ctlz if it is cheap.

Differential Revision: http://reviews.llvm.org/D7554


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@228829 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-11 14:22:18 +00:00
..
ADCE
AddDiscriminators
AlignmentFromAssumptions
ArgumentPromotion
AtomicExpand/ARM
BBVectorize
BranchFolding
CodeExtractor
CodeGenPrepare
ConstantHoisting
ConstantMerge
ConstProp
CorrelatedValuePropagation
DeadArgElim DeadArgElim: arguments affect all returned sub-values by default. 2015-02-10 19:49:18 +00:00
DeadStoreElimination
EarlyCSE EarlyCSE: Add check lines for test added in r228760 2015-02-10 23:11:02 +00:00
FunctionAttrs
GCOVProfiling
GlobalDCE
GlobalOpt
GVN Allow PRE to insert no-cost phi nodes 2015-02-03 20:37:08 +00:00
IndVarSimplify
Inline Value soft float calls as more expensive in the inliner. 2015-02-05 02:09:33 +00:00
InstCombine Revert r228556: InstCombine: propagate nonNull through assume 2015-02-10 08:07:32 +00:00
InstMerge
InstSimplify Fold fcmp in cases where value is provably non-negative. By Arch Robison. 2015-01-28 08:03:58 +00:00
Internalize
IPConstantProp
IRCE Teach IRCE to look at branch weights when recognizing range checks 2015-01-27 21:38:12 +00:00
JumpThreading
LCSSA
LICM Teach isDereferenceablePointer() to look through bitcast constant expressions. 2015-02-05 09:15:37 +00:00
LoadCombine
LoopDeletion
LoopIdiom
LoopReroll [LoopReroll] Introduce the concept of DAGRootSets. 2015-02-11 09:19:47 +00:00
LoopRotate LoopRotate: Don't walk the uses of a Constant 2015-01-27 06:21:43 +00:00
LoopSimplify Teach SplitBlockPredecessors how to handle landingpad blocks. 2015-01-28 23:06:47 +00:00
LoopStrengthReduce Reverting VLD1/VST1 base-updating/post-incrementing combining 2015-02-04 10:11:59 +00:00
LoopUnroll Add a test case for new unrolling heuristics. 2015-02-10 17:54:54 +00:00
LoopUnswitch
LoopVectorize Move the target specific test case arbitrary-induction-step.ll to test/Transforms/LoopVectorize/AArch64 folder. 2015-01-30 07:33:31 +00:00
LowerAtomic
LowerExpectIntrinsic [PM] Port LowerExpectIntrinsic to the new pass manager. 2015-01-24 11:13:02 +00:00
LowerInvoke
LowerSwitch LowerSwitch: replace unreachable default with popular case destination 2015-01-23 20:43:51 +00:00
Mem2Reg
MemCpyOpt ValueTracking: Make isBytewiseValue simpler and more powerful at the same time. 2015-02-07 19:29:02 +00:00
MergeFunc
MetaRenamer
ObjCARC
PartiallyInlineLibCalls
PhaseOrdering
PlaceSafepoints PlaceSafepoints: modernize gc.result.* -> gc.result 2015-02-09 23:00:40 +00:00
PruneEH Fix invalid LLVM IR in PruneEH tests 2015-02-11 02:06:47 +00:00
Reassociate
Reg2Mem
SampleProfile
Scalarizer
ScalarRepl
SCCP
SeparateConstOffsetFromGEP/NVPTX
SimplifyCFG [TTI] Improved cost heuristic for cttz/ctlz calls. 2015-02-11 14:22:18 +00:00
Sink
SLPVectorizer Fix: SLPVectorizer crashes with assertion when vectorizing a cmp instruction. 2015-02-02 12:45:34 +00:00
SROA
StraightLineStrengthReduce Add straight-line strength reduction to LLVM 2015-02-03 19:37:06 +00:00
StripSymbols
StructurizeCFG StructurizeCFG: Use a reverse post-order traversal 2015-02-04 20:49:44 +00:00
TailCallElim
TailDup
Util Correctly combine alias.scope metadata by a union instead of intersecting 2015-02-08 17:07:14 +00:00