[llvm] 745abbb - [CostModel] move early exit for free intrinsics
Sanjay Patel via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 28 10:33:26 PDT 2020
Author: Sanjay Patel
Date: 2020-09-28T13:30:55-04:00
New Revision: 745abbbb852e3c0006f22b7beade820ac978252c
URL: https://github.com/llvm/llvm-project/commit/745abbbb852e3c0006f22b7beade820ac978252c
DIFF: https://github.com/llvm/llvm-project/commit/745abbbb852e3c0006f22b7beade820ac978252c.diff
LOG: [CostModel] move early exit for free intrinsics
This should be NFC unless some target was expecting that
some form of cttz/ctlz/memcpy is free in terms of size/latency
but not free in throughput cost.
Added:
Modified:
llvm/include/llvm/CodeGen/BasicTTIImpl.h
Removed:
################################################################################
diff --git a/llvm/include/llvm/CodeGen/BasicTTIImpl.h b/llvm/include/llvm/CodeGen/BasicTTIImpl.h
index d5c0b83ea6f7..ee755c7890a8 100644
--- a/llvm/include/llvm/CodeGen/BasicTTIImpl.h
+++ b/llvm/include/llvm/CodeGen/BasicTTIImpl.h
@@ -1121,9 +1121,12 @@ class BasicTTIImplBase : public TargetTransformInfoImplCRTPBase<T> {
/// Get intrinsic cost based on arguments.
unsigned getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
TTI::TargetCostKind CostKind) {
- Intrinsic::ID IID = ICA.getID();
+ // Check for generically free intrinsics.
+ if (BaseT::getIntrinsicInstrCost(ICA, CostKind) == 0)
+ return 0;
// Special case some scalar intrinsics.
+ Intrinsic::ID IID = ICA.getID();
if (CostKind != TTI::TCK_RecipThroughput) {
switch (IID) {
default:
@@ -1143,9 +1146,6 @@ class BasicTTIImplBase : public TargetTransformInfoImplCRTPBase<T> {
return BaseT::getIntrinsicInstrCost(ICA, CostKind);
}
- if (BaseT::getIntrinsicInstrCost(ICA, CostKind) == 0)
- return 0;
-
// TODO: Combine these two logic paths.
if (ICA.isTypeBasedOnly())
return getTypeBasedIntrinsicInstrCost(ICA, CostKind);
More information about the llvm-commits
mailing list