LLVM
8.0.1
|
#include "Target/Hexagon/HexagonTargetTransformInfo.h"
Additional Inherited Members | |
Protected Types inherited from llvm::TargetTransformInfoImplBase | |
typedef TargetTransformInfo | TTI |
Protected Member Functions inherited from llvm::BasicTTIImplBase< HexagonTTIImpl > | |
BasicTTIImplBase (const TargetMachine *TM, const DataLayout &DL) | |
Protected Member Functions inherited from llvm::TargetTransformInfoImplCRTPBase< HexagonTTIImpl > | |
TargetTransformInfoImplCRTPBase (const DataLayout &DL) | |
Protected Member Functions inherited from llvm::TargetTransformInfoImplBase | |
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 inherited from llvm::TargetTransformInfoImplBase | |
const DataLayout & | DL |
Definition at line 34 of file HexagonTargetTransformInfo.h.
|
inlineexplicit |
Definition at line 55 of file HexagonTargetTransformInfo.h.
References getCacheLineSize(), getMaxInterleaveFactor(), getMinimumVF(), getMinVectorRegisterBitWidth(), getNumberOfRegisters(), getPopcntSupport(), getPrefetchDistance(), getRegisterBitWidth(), getUnrollingPreferences(), and shouldFavorPostInc().
Definition at line 95 of file HexagonTargetTransformInfo.h.
|
inline |
Definition at line 101 of file HexagonTargetTransformInfo.h.
References llvm::AMDGPU::HSAMD::Kernel::Key::Args, F(), getAddressComputationCost(), getArithmeticInstrCost(), getCallInstrCost(), getCastInstrCost(), getCmpSelInstrCost(), getGatherScatterOpCost(), getInterleavedMemoryOpCost(), getIntrinsicInstrCost(), getMaskedMemoryOpCost(), getMemoryOpCost(), getOperandsScalarizationOverhead(), getScalarizationOverhead(), getShuffleCost(), getVectorInstrCost(), I, Kind, llvm::TargetTransformInfo::OK_AnyValue, and llvm::TargetTransformInfo::OP_None.
unsigned HexagonTTIImpl::getAddressComputationCost | ( | Type * | Tp, |
ScalarEvolution * | SE, | ||
const SCEV * | S | ||
) |
Definition at line 148 of file HexagonTargetTransformInfo.cpp.
Referenced by enableInterleavedAccessVectorization().
unsigned HexagonTTIImpl::getArithmeticInstrCost | ( | unsigned | Opcode, |
Type * | Ty, | ||
TTI::OperandValueKind | Opd1Info = TTI::OK_AnyValue , |
||
TTI::OperandValueKind | Opd2Info = TTI::OK_AnyValue , |
||
TTI::OperandValueProperties | Opd1PropInfo = TTI::OP_None , |
||
TTI::OperandValueProperties | Opd2PropInfo = TTI::OP_None , |
||
ArrayRef< const Value *> | Args = ArrayRef<const Value *>() |
||
) |
Definition at line 228 of file HexagonTargetTransformInfo.cpp.
References llvm::TargetTransformInfoImplBase::DL, llvm::BasicTTIImplBase< HexagonTTIImpl >::getArithmeticInstrCost(), llvm::TargetLoweringBase::getTypeLegalizationCost(), llvm::Type::isVectorTy(), and llvm::AArch64CC::LT.
Referenced by enableInterleavedAccessVectorization().
unsigned HexagonTTIImpl::getCacheLineSize | ( | ) | const |
Definition at line 279 of file HexagonTargetTransformInfo.cpp.
References llvm::HexagonSubtarget::getL1CacheLineSize().
Referenced by HexagonTTIImpl().
Definition at line 127 of file HexagonTargetTransformInfo.cpp.
References llvm::BasicTTIImplBase< HexagonTTIImpl >::getCallInstrCost().
Referenced by enableInterleavedAccessVectorization().
unsigned HexagonTTIImpl::getCastInstrCost | ( | unsigned | Opcode, |
Type * | Dst, | ||
Type * | Src, | ||
const Instruction * | I = nullptr |
||
) |
Definition at line 241 of file HexagonTargetTransformInfo.cpp.
References llvm::TargetTransformInfoImplBase::DL, llvm::TargetLoweringBase::getTypeLegalizationCost(), llvm::Type::isFPOrFPVectorTy(), and llvm::max().
Referenced by enableInterleavedAccessVectorization().
Definition at line 140 of file HexagonTargetTransformInfo.h.
References getUserCost(), and shouldBuildLookupTables().
unsigned HexagonTTIImpl::getCmpSelInstrCost | ( | unsigned | Opcode, |
Type * | ValTy, | ||
Type * | CondTy, | ||
const Instruction * | I | ||
) |
Definition at line 218 of file HexagonTargetTransformInfo.cpp.
References llvm::TargetTransformInfoImplBase::DL, llvm::BasicTTIImplBase< HexagonTTIImpl >::getCmpSelInstrCost(), llvm::TargetLoweringBase::getTypeLegalizationCost(), llvm::Type::isVectorTy(), and llvm::AArch64CC::LT.
Referenced by enableInterleavedAccessVectorization().
unsigned HexagonTTIImpl::getGatherScatterOpCost | ( | unsigned | Opcode, |
Type * | DataTy, | ||
Value * | Ptr, | ||
bool | VariableMask, | ||
unsigned | Alignment | ||
) |
Definition at line 201 of file HexagonTargetTransformInfo.cpp.
References llvm::TargetTransformInfoImplBase::getGatherScatterOpCost().
Referenced by enableInterleavedAccessVectorization().
unsigned HexagonTTIImpl::getInterleavedMemoryOpCost | ( | unsigned | Opcode, |
Type * | VecTy, | ||
unsigned | Factor, | ||
ArrayRef< unsigned > | Indices, | ||
unsigned | Alignment, | ||
unsigned | AddressSpace, | ||
bool | UseMaskForCond = false , |
||
bool | UseMaskForGaps = false |
||
) |
Definition at line 207 of file HexagonTargetTransformInfo.cpp.
References llvm::BasicTTIImplBase< HexagonTTIImpl >::getInterleavedMemoryOpCost(), getMemoryOpCost(), and llvm::ArrayRef< T >::size().
Referenced by enableInterleavedAccessVectorization().
unsigned HexagonTTIImpl::getIntrinsicInstrCost | ( | Intrinsic::ID | ID, |
Type * | RetTy, | ||
ArrayRef< Value *> | Args, | ||
FastMathFlags | FMF, | ||
unsigned | VF | ||
) |
Definition at line 132 of file HexagonTargetTransformInfo.cpp.
References llvm::BasicTTIImplBase< HexagonTTIImpl >::getIntrinsicInstrCost().
Referenced by enableInterleavedAccessVectorization().
unsigned HexagonTTIImpl::getIntrinsicInstrCost | ( | Intrinsic::ID | ID, |
Type * | RetTy, | ||
ArrayRef< Type *> | Tys, | ||
FastMathFlags | FMF, | ||
unsigned | ScalarizationCostPassed = UINT_MAX |
||
) |
unsigned HexagonTTIImpl::getMaskedMemoryOpCost | ( | unsigned | Opcode, |
Type * | Src, | ||
unsigned | Alignment, | ||
unsigned | AddressSpace | ||
) |
Definition at line 191 of file HexagonTargetTransformInfo.cpp.
References llvm::TargetTransformInfoImplBase::getMaskedMemoryOpCost().
Referenced by enableInterleavedAccessVectorization().
Definition at line 101 of file HexagonTargetTransformInfo.cpp.
Referenced by HexagonTTIImpl().
unsigned HexagonTTIImpl::getMemoryOpCost | ( | unsigned | Opcode, |
Type * | Src, | ||
unsigned | Alignment, | ||
unsigned | AddressSpace, | ||
const Instruction * | I = nullptr |
||
) |
Definition at line 153 of file HexagonTargetTransformInfo.cpp.
References llvm::alignTo(), assert(), FloatFactor, llvm::VectorType::getBitWidth(), llvm::SequentialType::getElementType(), llvm::BasicTTIImplBase< HexagonTTIImpl >::getMemoryOpCost(), getRegisterBitWidth(), llvm::Type::isFloatingPointTy(), llvm::Type::isVectorTy(), llvm::SPII::Load, llvm::Log2_32(), llvm::max(), and llvm::SPII::Store.
Referenced by enableInterleavedAccessVectorization(), and getInterleavedMemoryOpCost().
Definition at line 113 of file HexagonTargetTransformInfo.cpp.
References llvm::HexagonSubtarget::getVectorLength().
Referenced by HexagonTTIImpl().
unsigned HexagonTTIImpl::getMinVectorRegisterBitWidth | ( | ) | const |
Definition at line 109 of file HexagonTargetTransformInfo.cpp.
References llvm::HexagonSubtarget::getVectorLength().
Referenced by getRegisterBitWidth(), and HexagonTTIImpl().
— Vector TTI begin —
Definition at line 95 of file HexagonTargetTransformInfo.cpp.
Referenced by HexagonTTIImpl().
unsigned HexagonTTIImpl::getOperandsScalarizationOverhead | ( | ArrayRef< const Value *> | Args, |
unsigned | VF | ||
) |
Definition at line 122 of file HexagonTargetTransformInfo.cpp.
References llvm::BasicTTIImplBase< HexagonTTIImpl >::getOperandsScalarizationOverhead().
Referenced by enableInterleavedAccessVectorization().
TargetTransformInfo::PopcntSupportKind HexagonTTIImpl::getPopcntSupport | ( | unsigned | IntTyWidthInBit | ) | const |
Definition at line 70 of file HexagonTargetTransformInfo.cpp.
References llvm::TargetTransformInfo::PSK_FastHardware.
Referenced by HexagonTTIImpl().
unsigned HexagonTTIImpl::getPrefetchDistance | ( | ) | const |
— Vector TTI end —
Definition at line 275 of file HexagonTargetTransformInfo.cpp.
References llvm::HexagonSubtarget::getL1PrefetchDistance().
Referenced by HexagonTTIImpl().
Definition at line 105 of file HexagonTargetTransformInfo.cpp.
References getMinVectorRegisterBitWidth().
Referenced by getMemoryOpCost(), and HexagonTTIImpl().
Definition at line 117 of file HexagonTargetTransformInfo.cpp.
References llvm::BasicTTIImplBase< HexagonTTIImpl >::getScalarizationOverhead().
Referenced by enableInterleavedAccessVectorization().
unsigned HexagonTTIImpl::getShuffleCost | ( | TTI::ShuffleKind | Kind, |
Type * | Tp, | ||
int | Index, | ||
Type * | SubTp | ||
) |
Definition at line 196 of file HexagonTargetTransformInfo.cpp.
Referenced by enableInterleavedAccessVectorization().
void HexagonTTIImpl::getUnrollingPreferences | ( | Loop * | L, |
ScalarEvolution & | SE, | ||
TTI::UnrollingPreferences & | UP | ||
) |
Definition at line 77 of file HexagonTargetTransformInfo.cpp.
References llvm::canPeel(), llvm::LoopBase< BlockT, LoopT >::empty(), llvm::ScalarEvolution::getSmallConstantMaxTripCount(), llvm::ScalarEvolution::getSmallConstantTripCount(), llvm::TargetTransformInfo::UnrollingPreferences::Partial, llvm::TargetTransformInfo::UnrollingPreferences::PeelCount, and llvm::TargetTransformInfo::UnrollingPreferences::Runtime.
Referenced by HexagonTTIImpl().
Definition at line 283 of file HexagonTargetTransformInfo.cpp.
References llvm::TargetTransformInfoImplBase::DL, llvm::dyn_cast(), llvm::TargetTransformInfoImplBase::getDataLayout(), llvm::DataLayout::getTypeSizeInBits(), llvm::TargetTransformInfoImplCRTPBase< HexagonTTIImpl >::getUserCost(), llvm::Value::hasOneUse(), and llvm::TargetTransformInfo::TCC_Free.
Referenced by getCFInstrCost().
Definition at line 254 of file HexagonTargetTransformInfo.cpp.
References llvm::Type::isIntegerTy(), and llvm::Type::isVectorTy().
Referenced by enableInterleavedAccessVectorization().
|
inline |
Definition at line 92 of file HexagonTargetTransformInfo.h.
|
inline |
Definition at line 98 of file HexagonTargetTransformInfo.h.
bool HexagonTTIImpl::shouldBuildLookupTables | ( | ) | const |
Definition at line 309 of file HexagonTargetTransformInfo.cpp.
References EmitLookupTables.
Referenced by getCFInstrCost().
bool HexagonTTIImpl::shouldFavorPostInc | ( | ) | const |
Bias LSR towards creating post-increment opportunities.
Definition at line 89 of file HexagonTargetTransformInfo.cpp.
Referenced by HexagonTTIImpl().
Definition at line 86 of file HexagonTargetTransformInfo.h.
|
inline |
Definition at line 89 of file HexagonTargetTransformInfo.h.