LLVM
8.0.1
|
Base class for use as a mix-in that aids implementing a TargetTransformInfo-compatible class. More...
#include "llvm/Analysis/TargetTransformInfoImpl.h"
Protected Types | |
typedef TargetTransformInfo | TTI |
Protected Member Functions | |
TargetTransformInfoImplBase (const DataLayout &DL) | |
unsigned | minRequiredElementSize (const Value *Val, bool &isSigned) |
bool | isStridedAccess (const SCEV *Ptr) |
const SCEVConstant * | getConstantStrideStep (ScalarEvolution *SE, const SCEV *Ptr) |
bool | isConstantStridedAccessLessThan (ScalarEvolution *SE, const SCEV *Ptr, int64_t MergeDistance) |
Protected Attributes | |
const DataLayout & | DL |
Base class for use as a mix-in that aids implementing a TargetTransformInfo-compatible class.
Definition at line 32 of file TargetTransformInfoImpl.h.
|
protected |
Definition at line 34 of file TargetTransformInfoImpl.h.
|
inlineexplicitprotected |
Definition at line 38 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 42 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 44 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 321 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 529 of file TargetTransformInfoImpl.h.
References llvm::Function::getFnAttribute().
|
inline |
Definition at line 521 of file TargetTransformInfoImpl.h.
References llvm::Function::getFnAttribute().
Referenced by llvm::GCNTTIImpl::getVectorSplitCost().
|
inline |
Definition at line 253 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 308 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 315 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 317 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 310 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 478 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 404 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 483 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 493 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 384 of file TargetTransformInfoImpl.h.
References llvm::TargetTransformInfo::L1D, llvm::TargetTransformInfo::L2D, LLVM_FALLTHROUGH, and llvm_unreachable.
|
inline |
Definition at line 371 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 373 of file TargetTransformInfoImpl.h.
References llvm::TargetTransformInfo::L1D, llvm::TargetTransformInfo::L2D, LLVM_FALLTHROUGH, and llvm_unreachable.
|
inline |
Definition at line 127 of file TargetTransformInfoImpl.h.
References assert(), llvm::FunctionType::getNumParams(), and llvm::TargetTransformInfo::TCC_Basic.
Referenced by llvm::TargetTransformInfoImplCRTPBase< AMDGPUTTIImpl >::getCallCost(), and llvm::TargetTransformInfoImplCRTPBase< AMDGPUTTIImpl >::getUserCost().
|
inline |
Definition at line 472 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 418 of file TargetTransformInfoImpl.h.
Definition at line 426 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 428 of file TargetTransformInfoImpl.h.
|
inlineprotected |
Definition at line 648 of file TargetTransformInfoImpl.h.
References llvm::dyn_cast(), llvm::SCEVAddRecExpr::getStepRecurrence(), and isStridedAccess().
Referenced by llvm::X86TTIImpl::getAddressComputationCost(), and isConstantStridedAccessLessThan().
|
inline |
Definition at line 487 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 46 of file TargetTransformInfoImpl.h.
References DL.
Referenced by llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getEstimatedNumberOfCaseClusters(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getInterleavedMemoryOpCost(), and llvm::HexagonTTIImpl::getUserCost().
|
inline |
Definition at line 117 of file TargetTransformInfoImpl.h.
References llvm::SwitchInst::getNumCases().
|
inline |
Definition at line 123 of file TargetTransformInfoImpl.h.
References llvm::TargetTransformInfo::TCC_Basic.
|
inline |
Definition at line 421 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 191 of file TargetTransformInfoImpl.h.
Definition at line 335 of file TargetTransformInfoImpl.h.
References llvm::TargetTransformInfo::TCC_Basic.
|
inline |
Definition at line 447 of file TargetTransformInfoImpl.h.
Referenced by llvm::HexagonTTIImpl::getGatherScatterOpCost().
|
inline |
Definition at line 106 of file TargetTransformInfoImpl.h.
References Size, llvm::ArrayRef< T >::size(), llvm::TargetTransformInfo::TCC_Basic, and llvm::TargetTransformInfo::TCC_Free.
Referenced by llvm::TargetTransformInfoImplCRTPBase< AMDGPUTTIImpl >::getUserCost().
|
inline |
Definition at line 142 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 453 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 337 of file TargetTransformInfoImpl.h.
Definition at line 342 of file TargetTransformInfoImpl.h.
References llvm::TargetTransformInfo::TCC_Basic.
Referenced by llvm::AArch64TTIImpl::AArch64TTIImpl(), llvm::PPCTTIImpl::getIntImmCost(), llvm::ARMTTIImpl::isFPVectorizationPotentiallyUnsafe(), and llvm::PPCTTIImpl::PPCTTIImpl().
|
inline |
Definition at line 344 of file TargetTransformInfoImpl.h.
References llvm::TargetTransformInfo::TCC_Free.
|
inline |
Definition at line 349 of file TargetTransformInfoImpl.h.
References llvm::TargetTransformInfo::TCC_Free.
|
inline |
Definition at line 144 of file TargetTransformInfoImpl.h.
References llvm::Intrinsic::annotation, llvm::Intrinsic::assume, llvm::Intrinsic::coro_alloc, llvm::Intrinsic::coro_begin, llvm::Intrinsic::coro_end, llvm::Intrinsic::coro_frame, llvm::Intrinsic::coro_free, llvm::Intrinsic::coro_param, llvm::Intrinsic::coro_size, llvm::Intrinsic::coro_subfn_addr, llvm::Intrinsic::coro_suspend, llvm::Intrinsic::dbg_declare, llvm::Intrinsic::dbg_label, llvm::Intrinsic::dbg_value, llvm::Intrinsic::experimental_gc_relocate, llvm::Intrinsic::experimental_gc_result, llvm::Intrinsic::invariant_end, llvm::Intrinsic::invariant_start, llvm::Intrinsic::is_constant, llvm::Intrinsic::launder_invariant_group, llvm::Intrinsic::lifetime_end, llvm::Intrinsic::lifetime_start, llvm::Intrinsic::objectsize, llvm::Intrinsic::ptr_annotation, llvm::Intrinsic::sideeffect, llvm::Intrinsic::strip_invariant_group, llvm::TargetTransformInfo::TCC_Basic, llvm::TargetTransformInfo::TCC_Free, and llvm::Intrinsic::var_annotation.
Referenced by llvm::TargetTransformInfoImplCRTPBase< AMDGPUTTIImpl >::getCallCost(), and llvm::TargetTransformInfoImplCRTPBase< AMDGPUTTIImpl >::getIntrinsicCost().
|
inline |
Definition at line 462 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 467 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 290 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 292 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 547 of file TargetTransformInfoImpl.h.
Referenced by llvm::GCNTTIImpl::getPopcntSupport(), and llvm::R600TTIImpl::getTLI().
|
inline |
Definition at line 565 of file TargetTransformInfoImpl.h.
Referenced by llvm::GCNTTIImpl::getPopcntSupport().
|
inline |
Definition at line 442 of file TargetTransformInfoImpl.h.
Referenced by llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getInterleavedMemoryOpCost(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getIntrinsicInstrCost(), and llvm::HexagonTTIImpl::getMaskedMemoryOpCost().
Definition at line 402 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 400 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 507 of file TargetTransformInfoImpl.h.
References llvm::Type::getInt8Ty().
|
inline |
Definition at line 512 of file TargetTransformInfoImpl.h.
References llvm::Type::getInt8Ty(), and llvm::SmallVectorTemplateBase< T >::push_back().
|
inline |
Definition at line 437 of file TargetTransformInfoImpl.h.
Definition at line 362 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 485 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 398 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 358 of file TargetTransformInfoImpl.h.
Referenced by llvm::GCNTTIImpl::getPopcntSupport(), and llvm::R600TTIImpl::getTLI().
Definition at line 476 of file TargetTransformInfoImpl.h.
Definition at line 354 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 303 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 48 of file TargetTransformInfoImpl.h.
References assert(), llvm::DataLayout::getPointerTypeSizeInBits(), llvm::Type::getScalarSizeInBits(), llvm::DataLayout::getTypeSizeInBits(), llvm::DataLayout::isLegalInteger(), llvm::Type::isPointerTy(), llvm_unreachable, llvm::TargetTransformInfo::TCC_Basic, llvm::TargetTransformInfo::TCC_Expensive, and llvm::TargetTransformInfo::TCC_Free.
Referenced by llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getOperationCost(), and llvm::TargetTransformInfoImplCRTPBase< AMDGPUTTIImpl >::getUserCost().
|
inline |
Definition at line 502 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 327 of file TargetTransformInfoImpl.h.
References llvm::TargetTransformInfo::PSK_Software.
|
inline |
Definition at line 396 of file TargetTransformInfoImpl.h.
Definition at line 356 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 299 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 271 of file TargetTransformInfoImpl.h.
References isLegalAddressingMode().
|
inline |
Definition at line 413 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 571 of file TargetTransformInfoImpl.h.
Referenced by llvm::GCNTTIImpl::getPopcntSupport().
|
inline |
Definition at line 489 of file TargetTransformInfoImpl.h.
Referenced by llvm::GCNTTIImpl::getPopcntSupport().
|
inline |
Definition at line 231 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 433 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 185 of file TargetTransformInfoImpl.h.
Definition at line 265 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 267 of file TargetTransformInfoImpl.h.
Definition at line 331 of file TargetTransformInfoImpl.h.
Definition at line 189 of file TargetTransformInfoImpl.h.
|
inlineprotected |
Definition at line 656 of file TargetTransformInfoImpl.h.
References llvm::SCEVConstant::getAPInt(), llvm::APInt::getBitWidth(), getConstantStrideStep(), and llvm::APInt::getSExtValue().
Referenced by llvm::AArch64TTIImpl::getAddressComputationCost(), and llvm::ARMTTIImpl::getAddressComputationCost().
Definition at line 333 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 319 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 537 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 542 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 234 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 238 of file TargetTransformInfoImpl.h.
Referenced by getScalingFactorCost().
|
inline |
Definition at line 236 of file TargetTransformInfoImpl.h.
Definition at line 263 of file TargetTransformInfoImpl.h.
Definition at line 259 of file TargetTransformInfoImpl.h.
Definition at line 261 of file TargetTransformInfoImpl.h.
Definition at line 257 of file TargetTransformInfoImpl.h.
Definition at line 549 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 553 of file TargetTransformInfoImpl.h.
Referenced by llvm::GCNTTIImpl::getPopcntSupport(), and llvm::R600TTIImpl::getTLI().
Definition at line 551 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 559 of file TargetTransformInfoImpl.h.
Referenced by llvm::GCNTTIImpl::getPopcntSupport(), and llvm::R600TTIImpl::getTLI().
Definition at line 195 of file TargetTransformInfoImpl.h.
References assert(), llvm::Value::getName(), llvm::GlobalValue::hasLocalLinkage(), llvm::Value::hasName(), llvm::Function::isIntrinsic(), and Name.
Referenced by llvm::TargetTransformInfoImplCRTPBase< AMDGPUTTIImpl >::getInstructionLatency(), llvm::SystemZTTIImpl::getUnrollingPreferences(), and llvm::ARMTTIImpl::getUnrollingPreferences().
|
inline |
Definition at line 246 of file TargetTransformInfoImpl.h.
References llvm::TargetTransformInfo::LSRCost::AddRecCost, llvm::TargetTransformInfo::LSRCost::ImmCost, llvm::TargetTransformInfo::LSRCost::NumBaseAdds, llvm::TargetTransformInfo::LSRCost::NumIVMuls, llvm::TargetTransformInfo::LSRCost::NumRegs, llvm::TargetTransformInfo::LSRCost::ScaleCost, and llvm::TargetTransformInfo::LSRCost::SetupCost.
Referenced by llvm::BasicTTIImplBase< AMDGPUTTIImpl >::isLSRCostLess().
|
inline |
Definition at line 284 of file TargetTransformInfoImpl.h.
Definition at line 187 of file TargetTransformInfoImpl.h.
Definition at line 644 of file TargetTransformInfoImpl.h.
Referenced by llvm::X86TTIImpl::getAddressComputationCost(), and getConstantStrideStep().
Definition at line 282 of file TargetTransformInfoImpl.h.
Definition at line 288 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 280 of file TargetTransformInfoImpl.h.
|
inlineprotected |
Definition at line 589 of file TargetTransformInfoImpl.h.
References llvm::Type::getScalarSizeInBits(), llvm::Value::getType(), and llvm::max().
Referenced by llvm::X86TTIImpl::getArithmeticInstrCost().
|
inline |
Definition at line 269 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 294 of file TargetTransformInfoImpl.h.
Definition at line 295 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 365 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 582 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 255 of file TargetTransformInfoImpl.h.
Definition at line 360 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 306 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 286 of file TargetTransformInfoImpl.h.
Definition at line 297 of file TargetTransformInfoImpl.h.
|
inline |
Definition at line 577 of file TargetTransformInfoImpl.h.
|
protected |
Definition at line 36 of file TargetTransformInfoImpl.h.
Referenced by llvm::BasicTTIImplBase< AMDGPUTTIImpl >::BasicTTIImplBase(), llvm::X86TTIImpl::getArithmeticInstrCost(), llvm::NVPTXTTIImpl::getArithmeticInstrCost(), llvm::AArch64TTIImpl::getArithmeticInstrCost(), llvm::HexagonTTIImpl::getArithmeticInstrCost(), llvm::ARMTTIImpl::getArithmeticInstrCost(), llvm::GCNTTIImpl::getArithmeticInstrCost(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getArithmeticInstrCost(), llvm::X86TTIImpl::getArithmeticReductionCost(), llvm::AArch64TTIImpl::getArithmeticReductionCost(), llvm::GCNTTIImpl::getArithmeticReductionCost(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getArithmeticReductionCost(), llvm::X86TTIImpl::getCastInstrCost(), llvm::AArch64TTIImpl::getCastInstrCost(), llvm::HexagonTTIImpl::getCastInstrCost(), llvm::ARMTTIImpl::getCastInstrCost(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getCastInstrCost(), llvm::X86TTIImpl::getCmpSelInstrCost(), llvm::HexagonTTIImpl::getCmpSelInstrCost(), llvm::AArch64TTIImpl::getCmpSelInstrCost(), llvm::ARMTTIImpl::getCmpSelInstrCost(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getCmpSelInstrCost(), getDataLayout(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getEstimatedNumberOfCaseClusters(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getExtCost(), llvm::AArch64TTIImpl::getExtractWithExtendCost(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getFPOpCost(), llvm::TargetTransformInfoImplCRTPBase< AMDGPUTTIImpl >::getGEPCost(), llvm::PPCTTIImpl::getInterleavedMemoryOpCost(), llvm::AArch64TTIImpl::getInterleavedMemoryOpCost(), llvm::ARMTTIImpl::getInterleavedMemoryOpCost(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getInterleavedMemoryOpCost(), llvm::X86TTIImpl::getInterleavedMemoryOpCostAVX2(), llvm::X86TTIImpl::getInterleavedMemoryOpCostAVX512(), llvm::X86TTIImpl::getIntrinsicInstrCost(), llvm::HexagonTTIImpl::getIntrinsicInstrCost(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getIntrinsicInstrCost(), llvm::X86TTIImpl::getMaskedMemoryOpCost(), llvm::X86TTIImpl::getMemoryOpCost(), llvm::PPCTTIImpl::getMemoryOpCost(), llvm::AArch64TTIImpl::getMemoryOpCost(), llvm::ARMTTIImpl::getMemoryOpCost(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getMemoryOpCost(), llvm::X86TTIImpl::getMinMaxReductionCost(), llvm::GCNTTIImpl::getMinMaxReductionCost(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getMinMaxReductionCost(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getNumberOfParts(), llvm::AArch64TTIImpl::getPopcntSupport(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getScalingFactorCost(), llvm::X86TTIImpl::getShuffleCost(), llvm::PPCTTIImpl::getShuffleCost(), llvm::ARMTTIImpl::getShuffleCost(), llvm::AArch64TTIImpl::getShuffleCost(), llvm::GCNTTIImpl::getShuffleCost(), llvm::AMDGPUTTIImpl::getUnrollingPreferences(), llvm::PPCTTIImpl::getUserCost(), llvm::X86TTIImpl::getUserCost(), llvm::HexagonTTIImpl::getUserCost(), llvm::X86TTIImpl::getVectorInstrCost(), llvm::AArch64TTIImpl::getVectorInstrCost(), llvm::GCNTTIImpl::getVectorInstrCost(), llvm::R600TTIImpl::getVectorInstrCost(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getVectorInstrCost(), llvm::SystemZTTIImpl::hasDivRemOp(), llvm::X86TTIImpl::hasDivRemOp(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::haveFastSqrt(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::isLegalAddressingMode(), llvm::X86TTIImpl::isLegalMaskedGather(), llvm::X86TTIImpl::isLegalMaskedLoad(), and llvm::BasicTTIImplBase< AMDGPUTTIImpl >::isTypeLegal().