diff options
author | Mohammed Agabaria <mohammed.agabaria@intel.com> | 2017-01-05 14:03:41 +0000 |
---|---|---|
committer | Mohammed Agabaria <mohammed.agabaria@intel.com> | 2017-01-05 14:03:41 +0000 |
commit | 23599ba7940d9891ed5eb982aaaed116f97aea74 (patch) | |
tree | 910698abcc007239ab93b2f167fcd7ff96a75603 /llvm/lib/Target/X86/X86TargetTransformInfo.h | |
parent | a983e7c4a415bc28b8bc6218f4881d11b3a2d995 (diff) | |
download | bcm5719-llvm-23599ba7940d9891ed5eb982aaaed116f97aea74.tar.gz bcm5719-llvm-23599ba7940d9891ed5eb982aaaed116f97aea74.zip |
Currently isLikelyComplexAddressComputation tries to figure out if the given stride seems to be 'complex' and need some extra cost for address computation handling.
This code seems to be target dependent which may not be the same for all targets.
Passed the decision whether the given stride is complex or not to the target by sending stride information via SCEV to getAddressComputationCost instead of 'IsComplex'.
Specifically at X86 targets we dont see any significant address computation cost in case of the strided access in general.
Differential Revision: https://reviews.llvm.org/D27518
llvm-svn: 291106
Diffstat (limited to 'llvm/lib/Target/X86/X86TargetTransformInfo.h')
-rw-r--r-- | llvm/lib/Target/X86/X86TargetTransformInfo.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Target/X86/X86TargetTransformInfo.h b/llvm/lib/Target/X86/X86TargetTransformInfo.h index f6bcb9f569e..c013805f432 100644 --- a/llvm/lib/Target/X86/X86TargetTransformInfo.h +++ b/llvm/lib/Target/X86/X86TargetTransformInfo.h @@ -71,7 +71,8 @@ public: unsigned AddressSpace); int getGatherScatterOpCost(unsigned Opcode, Type *DataTy, Value *Ptr, bool VariableMask, unsigned Alignment); - int getAddressComputationCost(Type *PtrTy, bool IsComplex); + int getAddressComputationCost(Type *PtrTy, ScalarEvolution *SE, + const SCEV *Ptr); int getIntrinsicInstrCost(Intrinsic::ID IID, Type *RetTy, ArrayRef<Type *> Tys, FastMathFlags FMF); |