summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
diff options
context:
space:
mode:
authorHaicheng Wu <haicheng@codeaurora.org>2017-07-15 02:12:16 +0000
committerHaicheng Wu <haicheng@codeaurora.org>2017-07-15 02:12:16 +0000
commitabdef9ee7ee5393fe347e594cf1a053fbefc9312 (patch)
tree9f6006b10f9c14dbfff06022490690d412790cfc /llvm/lib/Analysis
parente9838cdcc5d96192f492e5772d9a43557337a2aa (diff)
downloadbcm5719-llvm-abdef9ee7ee5393fe347e594cf1a053fbefc9312.tar.gz
bcm5719-llvm-abdef9ee7ee5393fe347e594cf1a053fbefc9312.zip
[TTI] Refine the cost of EXT in getUserCost()
Now, getUserCost() only checks the src and dst types of EXT to decide it is free or not. This change first checks the types, then calls isExtFreeImpl(), and check if EXT can form ExtLoad at last. Currently, only AArch64 has customized implementation of isExtFreeImpl() to check if EXT can be folded into its use. Differential Revision: https://reviews.llvm.org/D34458 llvm-svn: 308076
Diffstat (limited to 'llvm/lib/Analysis')
-rw-r--r--llvm/lib/Analysis/TargetTransformInfo.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Analysis/TargetTransformInfo.cpp b/llvm/lib/Analysis/TargetTransformInfo.cpp
index 94bbc58541a..25813c65037 100644
--- a/llvm/lib/Analysis/TargetTransformInfo.cpp
+++ b/llvm/lib/Analysis/TargetTransformInfo.cpp
@@ -82,6 +82,11 @@ int TargetTransformInfo::getGEPCost(Type *PointeeType, const Value *Ptr,
return TTIImpl->getGEPCost(PointeeType, Ptr, Operands);
}
+int TargetTransformInfo::getExtCost(const Instruction *I,
+ const Value *Src) const {
+ return TTIImpl->getExtCost(I, Src);
+}
+
int TargetTransformInfo::getIntrinsicCost(
Intrinsic::ID IID, Type *RetTy, ArrayRef<const Value *> Arguments) const {
int Cost = TTIImpl->getIntrinsicCost(IID, RetTy, Arguments);
OpenPOWER on IntegriCloud