LLVM
8.0.1
|
#include "Target/PowerPC/PPCTargetTransformInfo.h"
Additional Inherited Members | |
Protected Types inherited from llvm::TargetTransformInfoImplBase | |
typedef TargetTransformInfo | TTI |
Protected Member Functions inherited from llvm::BasicTTIImplBase< PPCTTIImpl > | |
BasicTTIImplBase (const TargetMachine *TM, const DataLayout &DL) | |
Protected Member Functions inherited from llvm::TargetTransformInfoImplCRTPBase< PPCTTIImpl > | |
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 28 of file PPCTargetTransformInfo.h.
|
inlineexplicit |
Definition at line 40 of file PPCTargetTransformInfo.h.
References llvm::AMDGPU::HSAMD::Kernel::Key::Args, enableAggressiveInterleaving(), enableInterleavedAccessVectorization(), enableMemCmpExpansion(), F(), getArithmeticInstrCost(), getCacheLineSize(), getCastInstrCost(), getCmpSelInstrCost(), getInterleavedMemoryOpCost(), getIntImmCost(), llvm::TargetTransformInfoImplBase::getIntImmCost(), getMaxInterleaveFactor(), getMemoryOpCost(), getNumberOfRegisters(), getPopcntSupport(), getPrefetchDistance(), getRegisterBitWidth(), getShuffleCost(), getUnrollingPreferences(), getUserCost(), getVectorInstrCost(), I, Kind, llvm::TargetTransformInfo::OK_AnyValue, llvm::TargetTransformInfo::OP_None, and useColdCCForColdCall().
Definition at line 231 of file PPCTargetTransformInfo.cpp.
References llvm::PPC::DIR_A2, and llvm::PPCSubtarget::getDarwinDirective().
Referenced by PPCTTIImpl().
bool PPCTTIImpl::enableInterleavedAccessVectorization | ( | ) |
Definition at line 255 of file PPCTargetTransformInfo.cpp.
Referenced by PPCTTIImpl().
const PPCTTIImpl::TTI::MemCmpExpansionOptions * PPCTTIImpl::enableMemCmpExpansion | ( | bool | IsZeroCmp | ) | const |
Definition at line 243 of file PPCTargetTransformInfo.cpp.
References llvm::TargetTransformInfo::MemCmpExpansionOptions::LoadSizes, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by PPCTTIImpl().
int PPCTTIImpl::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 327 of file PPCTargetTransformInfo.cpp.
References assert(), llvm::BasicTTIImplBase< PPCTTIImpl >::getArithmeticInstrCost(), and llvm::TargetLoweringBase::InstructionOpcodeToISD().
Referenced by PPCTTIImpl().
unsigned PPCTTIImpl::getCacheLineSize | ( | ) |
Definition at line 278 of file PPCTargetTransformInfo.cpp.
References CacheLineSize, llvm::PPC::DIR_PWR7, llvm::PPC::DIR_PWR8, llvm::PPC::DIR_PWR9, and llvm::PPCSubtarget::getDarwinDirective().
Referenced by PPCTTIImpl().
int PPCTTIImpl::getCastInstrCost | ( | unsigned | Opcode, |
Type * | Dst, | ||
Type * | Src, | ||
const Instruction * | I = nullptr |
||
) |
Definition at line 351 of file PPCTargetTransformInfo.cpp.
References assert(), llvm::BasicTTIImplBase< PPCTTIImpl >::getCastInstrCost(), and llvm::TargetLoweringBase::InstructionOpcodeToISD().
Referenced by PPCTTIImpl().
int PPCTTIImpl::getCmpSelInstrCost | ( | unsigned | Opcode, |
Type * | ValTy, | ||
Type * | CondTy, | ||
const Instruction * | I = nullptr |
||
) |
Definition at line 358 of file PPCTargetTransformInfo.cpp.
References llvm::BasicTTIImplBase< PPCTTIImpl >::getCmpSelInstrCost().
Referenced by PPCTTIImpl().
int PPCTTIImpl::getInterleavedMemoryOpCost | ( | unsigned | Opcode, |
Type * | VecTy, | ||
unsigned | Factor, | ||
ArrayRef< unsigned > | Indices, | ||
unsigned | Alignment, | ||
unsigned | AddressSpace, | ||
bool | UseMaskForCond = false , |
||
bool | UseMaskForGaps = false |
||
) |
Definition at line 472 of file PPCTargetTransformInfo.cpp.
References assert(), llvm::TargetTransformInfoImplBase::DL, llvm::BasicTTIImplBase< PPCTTIImpl >::getInterleavedMemoryOpCost(), getMemoryOpCost(), llvm::TargetLoweringBase::getTypeLegalizationCost(), and llvm::AArch64CC::LT.
Referenced by PPCTTIImpl().
Definition at line 50 of file PPCTargetTransformInfo.cpp.
References assert(), DisablePPCConstHoist, llvm::APInt::getBitWidth(), llvm::TargetTransformInfoImplBase::getIntImmCost(), llvm::Type::getPrimitiveSizeInBits(), llvm::APInt::getSExtValue(), llvm::APInt::getZExtValue(), llvm::isInt< 16 >(), llvm::isInt< 32 >(), llvm::Type::isIntegerTy(), llvm::TargetTransformInfo::TCC_Basic, and llvm::TargetTransformInfo::TCC_Free.
Referenced by getIntImmCost(), and PPCTTIImpl().
Definition at line 113 of file PPCTargetTransformInfo.cpp.
References llvm::MCID::Add, assert(), llvm::MCID::Call, DisablePPCConstHoist, llvm::APInt::getBitWidth(), getIntImmCost(), llvm::TargetTransformInfoImplBase::getIntImmCost(), llvm::Type::getPrimitiveSizeInBits(), llvm::APInt::getSExtValue(), llvm::APInt::getZExtValue(), llvm::isInt< 16 >(), llvm::Type::isIntegerTy(), llvm::PPCSubtarget::isPPC64(), llvm::isShiftedMask_32(), llvm::isShiftedMask_64(), llvm::isUInt< 16 >(), LLVM_FALLTHROUGH, llvm::SPII::Load, llvm::MipsISD::Ret, llvm::MCID::Select, llvm::SPII::Store, llvm::TargetTransformInfo::TCC_Basic, and llvm::TargetTransformInfo::TCC_Free.
int PPCTTIImpl::getIntImmCost | ( | Intrinsic::ID | IID, |
unsigned | Idx, | ||
const APInt & | Imm, | ||
Type * | Ty | ||
) |
Definition at line 79 of file PPCTargetTransformInfo.cpp.
References assert(), DisablePPCConstHoist, llvm::Intrinsic::experimental_patchpoint_i64, llvm::Intrinsic::experimental_patchpoint_void, llvm::Intrinsic::experimental_stackmap, llvm::APInt::getBitWidth(), getIntImmCost(), llvm::TargetTransformInfoImplBase::getIntImmCost(), llvm::Type::getPrimitiveSizeInBits(), llvm::APInt::getSExtValue(), llvm::isInt< 16 >(), llvm::Type::isIntegerTy(), llvm::Intrinsic::sadd_with_overflow, llvm::Intrinsic::ssub_with_overflow, llvm::TargetTransformInfo::TCC_Free, llvm::Intrinsic::uadd_with_overflow, and llvm::Intrinsic::usub_with_overflow.
Definition at line 299 of file PPCTargetTransformInfo.cpp.
References llvm::PPC::DIR_440, llvm::PPC::DIR_A2, llvm::PPC::DIR_E500mc, llvm::PPC::DIR_E5500, llvm::PPC::DIR_PWR7, llvm::PPC::DIR_PWR8, llvm::PPC::DIR_PWR9, and llvm::PPCSubtarget::getDarwinDirective().
Referenced by PPCTTIImpl().
int PPCTTIImpl::getMemoryOpCost | ( | unsigned | Opcode, |
Type * | Src, | ||
unsigned | Alignment, | ||
unsigned | AddressSpace, | ||
const Instruction * | I = nullptr |
||
) |
Definition at line 402 of file PPCTargetTransformInfo.cpp.
References llvm::PPCTargetLowering::allowsMisalignedMemoryAccesses(), assert(), llvm::TargetTransformInfoImplBase::DL, llvm::BasicTTIImplBase< PPCTTIImpl >::getMemoryOpCost(), llvm::Type::getPrimitiveSizeInBits(), llvm::TargetLoweringBase::getTypeLegalizationCost(), getVectorInstrCost(), llvm::Type::getVectorNumElements(), llvm::PPCSubtarget::hasAltivec(), llvm::PPCSubtarget::hasP8Vector(), llvm::PPCSubtarget::hasQPX(), llvm::PPCSubtarget::hasVSX(), if(), llvm::Type::isVectorTy(), llvm::SPII::Load, llvm::AArch64CC::LT, llvm::SPII::Store, llvm::MVT::v16i8, llvm::MVT::v2f64, llvm::MVT::v2i64, llvm::MVT::v4f32, llvm::MVT::v4f64, llvm::MVT::v4i32, and llvm::MVT::v8i16.
Referenced by getInterleavedMemoryOpCost(), and PPCTTIImpl().
Definition at line 259 of file PPCTargetTransformInfo.cpp.
References llvm::PPCSubtarget::hasAltivec(), llvm::PPCSubtarget::hasQPX(), and llvm::PPCSubtarget::hasVSX().
Referenced by PPCTTIImpl().
TargetTransformInfo::PopcntSupportKind PPCTTIImpl::getPopcntSupport | ( | unsigned | TyWidth | ) |
Definition at line 42 of file PPCTargetTransformInfo.cpp.
References assert(), llvm::PPCSubtarget::hasPOPCNTD(), llvm::isPowerOf2_32(), llvm::PPCSubtarget::POPCNTD_Slow, llvm::PPCSubtarget::POPCNTD_Unavailable, llvm::TargetTransformInfo::PSK_FastHardware, llvm::TargetTransformInfo::PSK_SlowHardware, and llvm::TargetTransformInfo::PSK_Software.
Referenced by PPCTTIImpl().
unsigned PPCTTIImpl::getPrefetchDistance | ( | ) |
Definition at line 293 of file PPCTargetTransformInfo.cpp.
Referenced by PPCTTIImpl().
Definition at line 265 of file PPCTargetTransformInfo.cpp.
References llvm::PPCSubtarget::hasAltivec(), llvm::PPCSubtarget::hasQPX(), and llvm::PPCSubtarget::isPPC64().
Referenced by PPCTTIImpl().
int PPCTTIImpl::getShuffleCost | ( | TTI::ShuffleKind | Kind, |
Type * | Tp, | ||
int | Index, | ||
Type * | SubTp | ||
) |
Definition at line 338 of file PPCTargetTransformInfo.cpp.
References llvm::TargetTransformInfoImplBase::DL, llvm::TargetLoweringBase::getTypeLegalizationCost(), and llvm::AArch64CC::LT.
Referenced by PPCTTIImpl().
void PPCTTIImpl::getUnrollingPreferences | ( | Loop * | L, |
ScalarEvolution & | SE, | ||
TTI::UnrollingPreferences & | UP | ||
) |
Definition at line 208 of file PPCTargetTransformInfo.cpp.
References llvm::TargetTransformInfo::UnrollingPreferences::AllowExpensiveTripCount, llvm::PPC::DIR_A2, llvm::PPCSubtarget::getDarwinDirective(), llvm::BasicTTIImplBase< PPCTTIImpl >::getUnrollingPreferences(), llvm::TargetTransformInfo::UnrollingPreferences::Partial, and llvm::TargetTransformInfo::UnrollingPreferences::Runtime.
Referenced by PPCTTIImpl().
Definition at line 197 of file PPCTargetTransformInfo.cpp.
References llvm::TargetTransformInfoImplBase::DL, llvm::Value::getType(), llvm::TargetLoweringBase::getTypeLegalizationCost(), llvm::TargetTransformInfoImplCRTPBase< PPCTTIImpl >::getUserCost(), llvm::Type::isVectorTy(), and llvm::AArch64CC::LT.
Referenced by PPCTTIImpl().
Definition at line 363 of file PPCTargetTransformInfo.cpp.
References assert(), llvm::ISD::EXTRACT_VECTOR_ELT, llvm::Type::getScalarType(), llvm::BasicTTIImplBase< PPCTTIImpl >::getVectorInstrCost(), llvm::PPCSubtarget::hasQPX(), llvm::PPCSubtarget::hasVSX(), llvm::ISD::INSERT_VECTOR_ELT, llvm::TargetLoweringBase::InstructionOpcodeToISD(), llvm::Type::isDoubleTy(), llvm::Type::isFloatingPointTy(), and llvm::Type::isVectorTy().
Referenced by getMemoryOpCost(), and PPCTTIImpl().
Definition at line 227 of file PPCTargetTransformInfo.cpp.
References EnablePPCColdCC.
Referenced by PPCTTIImpl().