summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
diff options
context:
space:
mode:
authorJun Bum Lim <junbuml@codeaurora.org>2017-10-04 18:33:52 +0000
committerJun Bum Lim <junbuml@codeaurora.org>2017-10-04 18:33:52 +0000
commitd40e03c2d8bef1635d2ff2f0aae43eb1ba0ec9a1 (patch)
tree685c677b527b29765aa0dfb42faa52622da3cf67 /llvm/lib/Analysis
parentbef94bcbae5f5f4e01f0247322e3381f0cc07c5e (diff)
downloadbcm5719-llvm-d40e03c2d8bef1635d2ff2f0aae43eb1ba0ec9a1.tar.gz
bcm5719-llvm-d40e03c2d8bef1635d2ff2f0aae43eb1ba0ec9a1.zip
Recommit : Use the basic cost if a GEP is not used as addressing mode
Recommitting r314517 with the fix for handling ConstantExpr. Original commit message: Currently, getGEPCost() returns TCC_FREE whenever a GEP is a legal addressing mode in the target. However, since it doesn't check its actual users, it will return FREE even in cases where the GEP cannot be folded away as a part of actual addressing mode. For example, if an user of the GEP is a call instruction taking the GEP as a parameter, then the GEP may not be folded in isel. llvm-svn: 314923
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 fad918dabb5..154021a51b9 100644
--- a/llvm/lib/Analysis/TargetTransformInfo.cpp
+++ b/llvm/lib/Analysis/TargetTransformInfo.cpp
@@ -88,6 +88,11 @@ int TargetTransformInfo::getGEPCost(Type *PointeeType, const Value *Ptr,
return TTIImpl->getGEPCost(PointeeType, Ptr, Operands);
}
+int TargetTransformInfo::getGEPCost(const GEPOperator *GEP,
+ ArrayRef<const Value *> Operands) const {
+ return TTIImpl->getGEPCost(GEP, Operands);
+}
+
int TargetTransformInfo::getExtCost(const Instruction *I,
const Value *Src) const {
return TTIImpl->getExtCost(I, Src);
OpenPOWER on IntegriCloud