diff options
author | Sanjay Patel <spatel@rotateright.com> | 2018-02-05 23:43:05 +0000 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2018-02-05 23:43:05 +0000 |
commit | d7c702b45191ea1cab867a257b8b6b1455b9259f (patch) | |
tree | a21b47a8eda4c0b76d0658feef0aa737d1d9458c /llvm/lib/Analysis/TargetTransformInfo.cpp | |
parent | 40ddcb8133f4acaafabef2406345fdb8c796214e (diff) | |
download | bcm5719-llvm-d7c702b45191ea1cab867a257b8b6b1455b9259f.tar.gz bcm5719-llvm-d7c702b45191ea1cab867a257b8b6b1455b9259f.zip |
[LoopStrengthReduce, x86] don't add cost for a cmp that will be macro-fused (PR35681)
In the motivating case from PR35681 and represented by the macro-fuse-cmp test:
https://bugs.llvm.org/show_bug.cgi?id=35681
...there's a 37 -> 31 byte size win for the loop because we eliminate the big base
address offsets.
SPEC2017 on Ryzen shows no significant perf difference.
Differential Revision: https://reviews.llvm.org/D42607
llvm-svn: 324289
Diffstat (limited to 'llvm/lib/Analysis/TargetTransformInfo.cpp')
-rw-r--r-- | llvm/lib/Analysis/TargetTransformInfo.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Analysis/TargetTransformInfo.cpp b/llvm/lib/Analysis/TargetTransformInfo.cpp index e046984ffc3..3a7b3c4db6d 100644 --- a/llvm/lib/Analysis/TargetTransformInfo.cpp +++ b/llvm/lib/Analysis/TargetTransformInfo.cpp @@ -155,6 +155,10 @@ bool TargetTransformInfo::isLSRCostLess(LSRCost &C1, LSRCost &C2) const { return TTIImpl->isLSRCostLess(C1, C2); } +bool TargetTransformInfo::canMacroFuseCmp() const { + return TTIImpl->canMacroFuseCmp(); +} + bool TargetTransformInfo::isLegalMaskedStore(Type *DataType) const { return TTIImpl->isLegalMaskedStore(DataType); } |