summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp
diff options
context:
space:
mode:
authorJun Bum Lim <junbuml@codeaurora.org>2017-09-29 14:50:16 +0000
committerJun Bum Lim <junbuml@codeaurora.org>2017-09-29 14:50:16 +0000
commit0e16a59e83f8141bf4d84df5fe0d402688913ee3 (patch)
tree13a5b01aea9374a3244698a4cfc73267a63410a4 /llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp
parentc9e363ac69f0cb4e9a2198ef9a475c21c695d694 (diff)
downloadbcm5719-llvm-0e16a59e83f8141bf4d84df5fe0d402688913ee3.tar.gz
bcm5719-llvm-0e16a59e83f8141bf4d84df5fe0d402688913ee3.zip
Use the basic cost if a GEP is not used as addressing mode
Summary: 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. Reviewers: hfinkel, efriedma, mcrosier, jingyue, haicheng Reviewed By: hfinkel Subscribers: javed.absar, llvm-commits Differential Revision: https://reviews.llvm.org/D38085 llvm-svn: 314517
Diffstat (limited to 'llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp')
-rw-r--r--llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp b/llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp
index 8b8d6590aa6..3f93eaecc5d 100644
--- a/llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp
+++ b/llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp
@@ -239,7 +239,7 @@ static bool isGEPFoldable(GetElementPtrInst *GEP,
SmallVector<const Value*, 4> Indices;
for (auto I = GEP->idx_begin(); I != GEP->idx_end(); ++I)
Indices.push_back(*I);
- return TTI->getGEPCost(GEP->getSourceElementType(), GEP->getPointerOperand(),
+ return TTI->getGEPCost(cast<GEPOperator>(GEP),
Indices) == TargetTransformInfo::TCC_Free;
}
OpenPOWER on IntegriCloud