LLVM 22.0.0git
CostModel.cpp File Reference

Go to the source code of this file.

Macros

#define CM_NAME   "cost-model"
#define DEBUG_TYPE   CM_NAME

Enumerations

enum class  OutputCostKind {
  RecipThroughput , Latency , CodeSize , SizeAndLatency ,
  All
}
enum class  IntrinsicCostStrategy { InstructionCost , IntrinsicCost , TypeBasedIntrinsicCost }

Functions

static InstructionCost getCost (Instruction &Inst, TTI::TargetCostKind CostKind, TargetTransformInfo &TTI, TargetLibraryInfo &TLI)
static TTI::TargetCostKind OutputCostKindToTargetCostKind (OutputCostKind CostKind)

Variables

static cl::opt< OutputCostKindCostKind ("cost-kind", cl::desc("Target cost kind"), cl::init(OutputCostKind::RecipThroughput), cl::values(clEnumValN(OutputCostKind::RecipThroughput, "throughput", "Reciprocal throughput"), clEnumValN(OutputCostKind::Latency, "latency", "Instruction latency"), clEnumValN(OutputCostKind::CodeSize, "code-size", "Code size"), clEnumValN(OutputCostKind::SizeAndLatency, "size-latency", "Code size and latency"), clEnumValN(OutputCostKind::All, "all", "Print all cost kinds")))
static cl::opt< IntrinsicCostStrategyIntrinsicCost ("intrinsic-cost-strategy", cl::desc("Costing strategy for intrinsic instructions"), cl::init(IntrinsicCostStrategy::InstructionCost), cl::values(clEnumValN(IntrinsicCostStrategy::InstructionCost, "instruction-cost", "Use TargetTransformInfo::getInstructionCost"), clEnumValN(IntrinsicCostStrategy::IntrinsicCost, "intrinsic-cost", "Use TargetTransformInfo::getIntrinsicInstrCost"), clEnumValN(IntrinsicCostStrategy::TypeBasedIntrinsicCost, "type-based-intrinsic-cost", "Calculate the intrinsic cost based only on argument types")))

Macro Definition Documentation

◆ CM_NAME

#define CM_NAME   "cost-model"

Definition at line 71 of file CostModel.cpp.

◆ DEBUG_TYPE

#define DEBUG_TYPE   CM_NAME

Definition at line 72 of file CostModel.cpp.

Enumeration Type Documentation

◆ IntrinsicCostStrategy

enum class IntrinsicCostStrategy
strong
Enumerator
InstructionCost 
IntrinsicCost 
TypeBasedIntrinsicCost 

Definition at line 51 of file CostModel.cpp.

◆ OutputCostKind

enum class OutputCostKind
strong
Enumerator
RecipThroughput 
Latency 
CodeSize 
SizeAndLatency 
All 

Definition at line 31 of file CostModel.cpp.

Function Documentation

◆ getCost()

◆ OutputCostKindToTargetCostKind()

Variable Documentation

◆ CostKind

cl::opt< OutputCostKind > CostKind("cost-kind", cl::desc("Target cost kind"), cl::init(OutputCostKind::RecipThroughput), cl::values(clEnumValN(OutputCostKind::RecipThroughput, "throughput", "Reciprocal throughput"), clEnumValN(OutputCostKind::Latency, "latency", "Instruction latency"), clEnumValN(OutputCostKind::CodeSize, "code-size", "Code size"), clEnumValN(OutputCostKind::SizeAndLatency, "size-latency", "Code size and latency"), clEnumValN(OutputCostKind::All, "all", "Print all cost kinds"))) ( "cost-kind" ,
cl::desc("Target cost kind") ,
cl::init(OutputCostKind::RecipThroughput) ,
cl::values(clEnumValN(OutputCostKind::RecipThroughput, "throughput", "Reciprocal throughput"), clEnumValN(OutputCostKind::Latency, "latency", "Instruction latency"), clEnumValN(OutputCostKind::CodeSize, "code-size", "Code size"), clEnumValN(OutputCostKind::SizeAndLatency, "size-latency", "Code size and latency"), clEnumValN(OutputCostKind::All, "all", "Print all cost kinds"))  )
static

Referenced by analyzeCostOfVecReduction(), analyzeLoopUnrollCost(), canConvertToFMA(), llvm::slpvectorizer::BoUpSLP::canVectorizeLoads(), costAndCollectOperands(), costShuffleViaSplitting(), costShuffleViaVRegSplitting(), findBestNonTrivialUnswitchCandidate(), llvm::foldBranchToCommonDest(), llvm::AArch64TTIImpl::getAddressComputationCost(), llvm::ARMTTIImpl::getAddressComputationCost(), llvm::HexagonTTIImpl::getAddressComputationCost(), llvm::RISCVTTIImpl::getAddressComputationCost(), llvm::TargetTransformInfo::getAddressComputationCost(), llvm::X86TTIImpl::getAddressComputationCost(), llvm::TargetTransformInfo::getAltInstrCost(), llvm::TargetTransformInfoImplBase::getAltInstrCost(), llvm::X86TTIImpl::getAltInstrCost(), llvm::AArch64TTIImpl::getArithmeticInstrCost(), llvm::ARMTTIImpl::getArithmeticInstrCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getArithmeticInstrCost(), llvm::BPFTTIImpl::getArithmeticInstrCost(), llvm::GCNTTIImpl::getArithmeticInstrCost(), llvm::HexagonTTIImpl::getArithmeticInstrCost(), llvm::LanaiTTIImpl::getArithmeticInstrCost(), llvm::NVPTXTTIImpl::getArithmeticInstrCost(), llvm::PPCTTIImpl::getArithmeticInstrCost(), llvm::RISCVTTIImpl::getArithmeticInstrCost(), llvm::SystemZTTIImpl::getArithmeticInstrCost(), llvm::TargetTransformInfo::getArithmeticInstrCost(), llvm::TargetTransformInfoImplBase::getArithmeticInstrCost(), llvm::WebAssemblyTTIImpl::getArithmeticInstrCost(), llvm::X86TTIImpl::getArithmeticInstrCost(), llvm::AArch64TTIImpl::getArithmeticReductionCost(), llvm::ARMTTIImpl::getArithmeticReductionCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getArithmeticReductionCost(), llvm::GCNTTIImpl::getArithmeticReductionCost(), llvm::RISCVTTIImpl::getArithmeticReductionCost(), llvm::SystemZTTIImpl::getArithmeticReductionCost(), llvm::TargetTransformInfo::getArithmeticReductionCost(), llvm::X86TTIImpl::getArithmeticReductionCost(), llvm::AArch64TTIImpl::getArithmeticReductionCostSVE(), llvm::BasicTTIImplBase< BasicTTIImpl >::getCallInstrCost(), llvm::HexagonTTIImpl::getCallInstrCost(), llvm::TargetTransformInfo::getCallInstrCost(), llvm::TargetTransformInfoImplBase::getCallInstrCost(), llvm::AArch64TTIImpl::getCastInstrCost(), llvm::ARMTTIImpl::getCastInstrCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getCastInstrCost(), llvm::HexagonTTIImpl::getCastInstrCost(), llvm::PPCTTIImpl::getCastInstrCost(), llvm::RISCVTTIImpl::getCastInstrCost(), llvm::SystemZTTIImpl::getCastInstrCost(), llvm::TargetTransformInfo::getCastInstrCost(), llvm::TargetTransformInfoImplBase::getCastInstrCost(), llvm::WebAssemblyTTIImpl::getCastInstrCost(), llvm::X86TTIImpl::getCastInstrCost(), llvm::AArch64TTIImpl::getCFInstrCost(), llvm::ARMTTIImpl::getCFInstrCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getCFInstrCost(), llvm::GCNTTIImpl::getCFInstrCost(), llvm::HexagonTTIImpl::getCFInstrCost(), llvm::PPCTTIImpl::getCFInstrCost(), llvm::R600TTIImpl::getCFInstrCost(), llvm::RISCVTTIImpl::getCFInstrCost(), llvm::TargetTransformInfo::getCFInstrCost(), llvm::TargetTransformInfoImplBase::getCFInstrCost(), llvm::X86TTIImpl::getCFInstrCost(), llvm::AArch64TTIImpl::getCmpSelInstrCost(), llvm::ARMTTIImpl::getCmpSelInstrCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getCmpSelInstrCost(), llvm::BPFTTIImpl::getCmpSelInstrCost(), llvm::HexagonTTIImpl::getCmpSelInstrCost(), llvm::PPCTTIImpl::getCmpSelInstrCost(), llvm::RISCVTTIImpl::getCmpSelInstrCost(), llvm::SystemZTTIImpl::getCmpSelInstrCost(), llvm::TargetTransformInfo::getCmpSelInstrCost(), llvm::TargetTransformInfoImplBase::getCmpSelInstrCost(), llvm::X86TTIImpl::getCmpSelInstrCost(), getCost(), llvm::AArch64TTIImpl::getCostOfKeepingLiveOverCall(), llvm::RISCVTTIImpl::getCostOfKeepingLiveOverCall(), llvm::BasicTTIImplBase< BasicTTIImpl >::getExpandCompressMemoryOpCost(), llvm::RISCVTTIImpl::getExpandCompressMemoryOpCost(), llvm::TargetTransformInfo::getExpandCompressMemoryOpCost(), llvm::TargetTransformInfoImplBase::getExpandCompressMemoryOpCost(), llvm::AArch64TTIImpl::getExtendedReductionCost(), llvm::ARMTTIImpl::getExtendedReductionCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getExtendedReductionCost(), llvm::RISCVTTIImpl::getExtendedReductionCost(), llvm::TargetTransformInfo::getExtendedReductionCost(), llvm::TargetTransformInfoImplBase::getExtendedReductionCost(), getExtractWithExtendCost(), llvm::AArch64TTIImpl::getExtractWithExtendCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getExtractWithExtendCost(), llvm::TargetTransformInfo::getExtractWithExtendCost(), llvm::TargetTransformInfoImplBase::getExtractWithExtendCost(), llvm::AArch64TTIImpl::getFP16BF16PromoteCost(), llvm::AArch64TTIImpl::getGatherScatterOpCost(), llvm::ARMTTIImpl::getGatherScatterOpCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getGatherScatterOpCost(), llvm::HexagonTTIImpl::getGatherScatterOpCost(), llvm::RISCVTTIImpl::getGatherScatterOpCost(), llvm::TargetTransformInfo::getGatherScatterOpCost(), llvm::TargetTransformInfoImplBase::getGatherScatterOpCost(), llvm::X86TTIImpl::getGatherScatterOpCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getGEPCost(), llvm::TargetTransformInfo::getGEPCost(), llvm::TargetTransformInfoImplBase::getGEPCost(), llvm::TargetTransformInfoImplCRTPBase< T >::getGEPCost(), getGEPCosts(), llvm::AArch64TTIImpl::getIndexedVectorInstrCostFromEnd(), llvm::BasicTTIImplBase< BasicTTIImpl >::getIndexedVectorInstrCostFromEnd(), llvm::RISCVTTIImpl::getIndexedVectorInstrCostFromEnd(), llvm::TargetTransformInfo::getIndexedVectorInstrCostFromEnd(), llvm::TargetTransformInfoImplBase::getIndexedVectorInstrCostFromEnd(), llvm::TargetTransformInfo::getInsertExtractValueCost(), llvm::TargetTransformInfoImplBase::getInsertExtractValueCost(), llvm::HexagonTTIImpl::getInstructionCost(), llvm::NVPTXTTIImpl::getInstructionCost(), llvm::PPCTTIImpl::getInstructionCost(), llvm::TargetTransformInfo::getInstructionCost(), llvm::TargetTransformInfo::getInstructionCost(), llvm::TargetTransformInfoImplBase::getInstructionCost(), llvm::TargetTransformInfoImplCRTPBase< T >::getInstructionCost(), llvm::AArch64TTIImpl::getInterleavedMemoryOpCost(), llvm::ARMTTIImpl::getInterleavedMemoryOpCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getInterleavedMemoryOpCost(), llvm::HexagonTTIImpl::getInterleavedMemoryOpCost(), llvm::PPCTTIImpl::getInterleavedMemoryOpCost(), llvm::RISCVTTIImpl::getInterleavedMemoryOpCost(), llvm::SystemZTTIImpl::getInterleavedMemoryOpCost(), llvm::TargetTransformInfo::getInterleavedMemoryOpCost(), llvm::TargetTransformInfoImplBase::getInterleavedMemoryOpCost(), llvm::WebAssemblyTTIImpl::getInterleavedMemoryOpCost(), llvm::X86TTIImpl::getInterleavedMemoryOpCost(), llvm::X86TTIImpl::getInterleavedMemoryOpCostAVX512(), llvm::AArch64TTIImpl::getIntImmCost(), llvm::ARMTTIImpl::getIntImmCost(), llvm::BPFTTIImpl::getIntImmCost(), llvm::LanaiTTIImpl::getIntImmCost(), llvm::PPCTTIImpl::getIntImmCost(), llvm::RISCVTTIImpl::getIntImmCost(), llvm::SystemZTTIImpl::getIntImmCost(), llvm::TargetTransformInfo::getIntImmCost(), llvm::TargetTransformInfoImplBase::getIntImmCost(), llvm::X86TTIImpl::getIntImmCost(), getIntImmCostImpl(), llvm::AArch64TTIImpl::getIntImmCostInst(), llvm::ARMTTIImpl::getIntImmCostInst(), llvm::LanaiTTIImpl::getIntImmCostInst(), llvm::PPCTTIImpl::getIntImmCostInst(), llvm::RISCVTTIImpl::getIntImmCostInst(), llvm::SystemZTTIImpl::getIntImmCostInst(), llvm::TargetTransformInfo::getIntImmCostInst(), llvm::TargetTransformInfoImplBase::getIntImmCostInst(), llvm::X86TTIImpl::getIntImmCostInst(), llvm::AArch64TTIImpl::getIntImmCostIntrin(), llvm::LanaiTTIImpl::getIntImmCostIntrin(), llvm::PPCTTIImpl::getIntImmCostIntrin(), llvm::RISCVTTIImpl::getIntImmCostIntrin(), llvm::SystemZTTIImpl::getIntImmCostIntrin(), llvm::TargetTransformInfo::getIntImmCostIntrin(), llvm::TargetTransformInfoImplBase::getIntImmCostIntrin(), llvm::X86TTIImpl::getIntImmCostIntrin(), llvm::AArch64TTIImpl::getIntrinsicInstrCost(), llvm::ARMTTIImpl::getIntrinsicInstrCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getIntrinsicInstrCost(), llvm::GCNTTIImpl::getIntrinsicInstrCost(), llvm::HexagonTTIImpl::getIntrinsicInstrCost(), llvm::PPCTTIImpl::getIntrinsicInstrCost(), llvm::RISCVTTIImpl::getIntrinsicInstrCost(), llvm::SystemZTTIImpl::getIntrinsicInstrCost(), llvm::TargetTransformInfo::getIntrinsicInstrCost(), llvm::TargetTransformInfoImplBase::getIntrinsicInstrCost(), llvm::X86TTIImpl::getIntrinsicInstrCost(), llvm::AArch64TTIImpl::getMaskedMemoryOpCost(), llvm::ARMTTIImpl::getMaskedMemoryOpCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getMaskedMemoryOpCost(), llvm::HexagonTTIImpl::getMaskedMemoryOpCost(), llvm::RISCVTTIImpl::getMaskedMemoryOpCost(), llvm::TargetTransformInfo::getMaskedMemoryOpCost(), llvm::TargetTransformInfoImplBase::getMaskedMemoryOpCost(), llvm::X86TTIImpl::getMaskedMemoryOpCost(), llvm::AArch64TTIImpl::getMemoryOpCost(), llvm::ARMTTIImpl::getMemoryOpCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getMemoryOpCost(), llvm::GCNTTIImpl::getMemoryOpCost(), llvm::HexagonTTIImpl::getMemoryOpCost(), llvm::PPCTTIImpl::getMemoryOpCost(), llvm::RISCVTTIImpl::getMemoryOpCost(), llvm::SystemZTTIImpl::getMemoryOpCost(), llvm::TargetTransformInfo::getMemoryOpCost(), llvm::TargetTransformInfoImplBase::getMemoryOpCost(), llvm::WebAssemblyTTIImpl::getMemoryOpCost(), llvm::X86TTIImpl::getMemoryOpCost(), llvm::X86TTIImpl::getMinMaxCost(), llvm::AArch64TTIImpl::getMinMaxReductionCost(), llvm::ARMTTIImpl::getMinMaxReductionCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getMinMaxReductionCost(), llvm::GCNTTIImpl::getMinMaxReductionCost(), llvm::RISCVTTIImpl::getMinMaxReductionCost(), llvm::SystemZTTIImpl::getMinMaxReductionCost(), llvm::TargetTransformInfo::getMinMaxReductionCost(), llvm::X86TTIImpl::getMinMaxReductionCost(), llvm::AArch64TTIImpl::getMulAccReductionCost(), llvm::ARMTTIImpl::getMulAccReductionCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getMulAccReductionCost(), llvm::TargetTransformInfo::getMulAccReductionCost(), llvm::TargetTransformInfoImplBase::getMulAccReductionCost(), llvm::ARMSubtarget::getMVEVectorCostFactor(), llvm::BasicTTIImplBase< BasicTTIImpl >::getOperandsScalarizationOverhead(), llvm::TargetTransformInfo::getOperandsScalarizationOverhead(), llvm::TargetTransformInfoImplBase::getOperandsScalarizationOverhead(), llvm::BasicTTIImplBase< BasicTTIImpl >::getOrderedReductionCost(), llvm::AArch64TTIImpl::getPartialReductionCost(), llvm::RISCVTTIImpl::getPartialReductionCost(), llvm::TargetTransformInfo::getPartialReductionCost(), llvm::TargetTransformInfoImplBase::getPartialReductionCost(), llvm::WebAssemblyTTIImpl::getPartialReductionCost(), llvm::RISCVTTIImpl::getPointersChainCost(), llvm::TargetTransformInfo::getPointersChainCost(), llvm::TargetTransformInfoImplBase::getPointersChainCost(), llvm::TargetTransformInfoImplCRTPBase< T >::getPointersChainCost(), llvm::X86TTIImpl::getPointersChainCost(), llvm::getPredBlockCostDivisor(), llvm::BasicTTIImplBase< BasicTTIImpl >::getReplicationShuffleCost(), llvm::TargetTransformInfo::getReplicationShuffleCost(), llvm::TargetTransformInfoImplBase::getReplicationShuffleCost(), llvm::X86TTIImpl::getReplicationShuffleCost(), getScalarizationOverhead(), llvm::AArch64TTIImpl::getScalarizationOverhead(), llvm::BasicTTIImplBase< BasicTTIImpl >::getScalarizationOverhead(), llvm::BasicTTIImplBase< BasicTTIImpl >::getScalarizationOverhead(), llvm::BasicTTIImplBase< BasicTTIImpl >::getScalarizationOverhead(), llvm::NVPTXTTIImpl::getScalarizationOverhead(), llvm::RISCVTTIImpl::getScalarizationOverhead(), llvm::SystemZTTIImpl::getScalarizationOverhead(), llvm::TargetTransformInfo::getScalarizationOverhead(), llvm::TargetTransformInfoImplBase::getScalarizationOverhead(), llvm::X86TTIImpl::getScalarizationOverhead(), llvm::AArch64TTIImpl::getShuffleCost(), llvm::ARMTTIImpl::getShuffleCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getShuffleCost(), llvm::GCNTTIImpl::getShuffleCost(), llvm::HexagonTTIImpl::getShuffleCost(), llvm::PPCTTIImpl::getShuffleCost(), llvm::RISCVTTIImpl::getShuffleCost(), llvm::SystemZTTIImpl::getShuffleCost(), llvm::TargetTransformInfo::getShuffleCost(), llvm::TargetTransformInfoImplBase::getShuffleCost(), llvm::X86TTIImpl::getShuffleCost(), llvm::AArch64TTIImpl::getSpliceCost(), llvm::RISCVTTIImpl::getStoreImmCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getStridedMemoryOpCost(), llvm::RISCVTTIImpl::getStridedMemoryOpCost(), llvm::TargetTransformInfo::getStridedMemoryOpCost(), llvm::TargetTransformInfoImplBase::getStridedMemoryOpCost(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getTreeReductionCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getTypeBasedIntrinsicInstrCost(), getVectorInstrCost(), llvm::AArch64TTIImpl::getVectorInstrCost(), llvm::AArch64TTIImpl::getVectorInstrCost(), llvm::AArch64TTIImpl::getVectorInstrCost(), llvm::ARMTTIImpl::getVectorInstrCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getVectorInstrCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getVectorInstrCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getVectorInstrCost(), llvm::GCNTTIImpl::getVectorInstrCost(), llvm::HexagonTTIImpl::getVectorInstrCost(), llvm::PPCTTIImpl::getVectorInstrCost(), llvm::R600TTIImpl::getVectorInstrCost(), llvm::RISCVTTIImpl::getVectorInstrCost(), llvm::SystemZTTIImpl::getVectorInstrCost(), llvm::TargetTransformInfo::getVectorInstrCost(), llvm::TargetTransformInfo::getVectorInstrCost(), llvm::TargetTransformInfo::getVectorInstrCost(), llvm::TargetTransformInfoImplBase::getVectorInstrCost(), llvm::TargetTransformInfoImplBase::getVectorInstrCost(), llvm::TargetTransformInfoImplBase::getVectorInstrCost(), llvm::WebAssemblyTTIImpl::getVectorInstrCost(), llvm::X86TTIImpl::getVectorInstrCost(), llvm::TargetTransformInfo::getVPMemoryOpCost(), llvm::TargetTransformInfoImplBase::getVPMemoryOpCost(), isFreeConcat(), isMaskedLoadCompress(), OutputCostKindToTargetCostKind(), llvm::CostModelPrinterPass::run(), llvm::slpvectorizer::BoUpSLP::transformNodes(), tryToMatchAndCreateExtendedReduction(), tryToMatchAndCreateMulAccumulateReduction(), and validateAndCostRequiredSelects().

◆ IntrinsicCost

cl::opt< IntrinsicCostStrategy > IntrinsicCost("intrinsic-cost-strategy", cl::desc("Costing strategy for intrinsic instructions"), cl::init(IntrinsicCostStrategy::InstructionCost), cl::values( clEnumValN(IntrinsicCostStrategy::InstructionCost, "instruction-cost", "Use TargetTransformInfo::getInstructionCost"), clEnumValN(IntrinsicCostStrategy::IntrinsicCost, "intrinsic-cost", "Use TargetTransformInfo::getIntrinsicInstrCost"), clEnumValN( IntrinsicCostStrategy::TypeBasedIntrinsicCost, "type-based-intrinsic-cost", "Calculate the intrinsic cost based only on argument types"))) ( "intrinsic-cost-strategy" ,
cl::desc("Costing strategy for intrinsic instructions") ,
cl::init(IntrinsicCostStrategy::InstructionCost) ,
cl::values( clEnumValN(IntrinsicCostStrategy::InstructionCost, "instruction-cost", "Use TargetTransformInfo::getInstructionCost"), clEnumValN(IntrinsicCostStrategy::IntrinsicCost, "intrinsic-cost", "Use TargetTransformInfo::getIntrinsicInstrCost"), clEnumValN( IntrinsicCostStrategy::TypeBasedIntrinsicCost, "type-based-intrinsic-cost", "Calculate the intrinsic cost based only on argument types"))  )
static