LLVM
15.0.0git
|
#include "Target/SystemZ/SystemZTargetTransformInfo.h"
Definition at line 18 of file SystemZTargetTransformInfo.h.
|
inlineexplicit |
Definition at line 32 of file SystemZTargetTransformInfo.h.
Definition at line 52 of file SystemZTargetTransformInfo.cpp.
References Arg, Callee, llvm::dbgs(), llvm::CallBase::getCalledFunction(), isUsedAsMemCpySource(), and LLVM_DEBUG.
|
inline |
Definition at line 84 of file SystemZTargetTransformInfo.h.
|
inlineoverride |
Definition at line 78 of file SystemZTargetTransformInfo.h.
InstructionCost SystemZTTIImpl::getArithmeticInstrCost | ( | unsigned | Opcode, |
Type * | Ty, | ||
TTI::TargetCostKind | CostKind, | ||
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 *>() , |
||
const Instruction * | CxtI = nullptr |
||
) |
Definition at line 420 of file SystemZTargetTransformInfo.cpp.
References llvm::AMDGPU::HSAMD::Kernel::Key::Args, CostKind, llvm::BasicTTIImplBase< SystemZTTIImpl >::getArithmeticInstrCost(), getNumVectorRegs(), llvm::BasicTTIImplBase< SystemZTTIImpl >::getScalarizationOverhead(), llvm::Type::getScalarSizeInBits(), llvm::Type::getScalarType(), llvm::ConstantInt::getValue(), llvm::SystemZSubtarget::hasLoadStoreOnCond2(), llvm::SystemZSubtarget::hasMiscellaneousExtensions3(), llvm::SystemZSubtarget::hasVector(), llvm::SystemZSubtarget::hasVectorEnhancements1(), I, llvm::APInt::isNegatedPowerOf2(), llvm::APInt::isPowerOf2(), llvm::Type::isVectorTy(), and llvm::TargetTransformInfo::TCK_RecipThroughput.
unsigned SystemZTTIImpl::getBoolVecToIntConversionCost | ( | unsigned | Opcode, |
Type * | Dst, | ||
const Instruction * | I | ||
) |
Definition at line 742 of file SystemZTargetTransformInfo.cpp.
References getCmpOpsType(), getNumVectorRegs(), getVectorBitmaskConversionCost(), and I.
Referenced by getCastInstrCost().
|
inlineoverride |
Definition at line 72 of file SystemZTargetTransformInfo.h.
InstructionCost SystemZTTIImpl::getCastInstrCost | ( | unsigned | Opcode, |
Type * | Dst, | ||
Type * | Src, | ||
TTI::CastContextHint | CCH, | ||
TTI::TargetCostKind | CostKind, | ||
const Instruction * | I = nullptr |
||
) |
Definition at line 758 of file SystemZTargetTransformInfo.cpp.
References assert(), CostKind, getBoolVecToIntConversionCost(), llvm::BasicTTIImplBase< SystemZTTIImpl >::getCastInstrCost(), getCmpOpsType(), getElSizeLog2Diff(), getNumVectorRegs(), llvm::BasicTTIImplBase< SystemZTTIImpl >::getScalarizationOverhead(), getVectorTruncCost(), llvm::SystemZSubtarget::hasLoadStoreOnCond2(), llvm::SystemZSubtarget::hasVector(), llvm::SystemZSubtarget::hasVectorEnhancements2(), I, llvm::Type::isFloatingPointTy(), llvm::max(), llvm::TargetTransformInfo::TCK_CodeSize, and llvm::TargetTransformInfo::TCK_SizeAndLatency.
InstructionCost SystemZTTIImpl::getCmpSelInstrCost | ( | unsigned | Opcode, |
Type * | ValTy, | ||
Type * | CondTy, | ||
CmpInst::Predicate | VecPred, | ||
TTI::TargetCostKind | CostKind, | ||
const Instruction * | I = nullptr |
||
) |
Definition at line 910 of file SystemZTargetTransformInfo.cpp.
References assert(), CostKind, getCmpOpsType(), llvm::BasicTTIImplBase< SystemZTTIImpl >::getCmpSelInstrCost(), getNumVectorRegs(), getOperandsExtensionCost(), llvm::PPC::getPredicate(), llvm::Type::getScalarSizeInBits(), llvm::Type::getScalarType(), getVectorBitmaskConversionCost(), llvm::SystemZSubtarget::hasVector(), I, llvm::Type::isFloatingPointTy(), llvm::Type::isFloatTy(), llvm::Type::isIntegerTy(), llvm::Type::isVectorTy(), llvm::MCID::Select, and llvm::TargetTransformInfo::TCK_RecipThroughput.
|
inline |
Definition at line 39 of file SystemZTargetTransformInfo.h.
InstructionCost SystemZTTIImpl::getInterleavedMemoryOpCost | ( | unsigned | Opcode, |
Type * | VecTy, | ||
unsigned | Factor, | ||
ArrayRef< unsigned > | Indices, | ||
Align | Alignment, | ||
unsigned | AddressSpace, | ||
TTI::TargetCostKind | CostKind, | ||
bool | UseMaskForCond = false , |
||
bool | UseMaskForGaps = false |
||
) |
Definition at line 1175 of file SystemZTargetTransformInfo.cpp.
References assert(), CostKind, llvm::BitVector::count(), llvm::divideCeil(), llvm::BasicTTIImplBase< SystemZTTIImpl >::getInterleavedMemoryOpCost(), getNumVectorRegs(), getScalarSizeInBits(), llvm::SPII::Load, llvm::max(), llvm::min(), and llvm::BitVector::set().
InstructionCost SystemZTTIImpl::getIntImmCost | ( | const APInt & | Imm, |
Type * | Ty, | ||
TTI::TargetCostKind | CostKind | ||
) |
Definition at line 69 of file SystemZTargetTransformInfo.cpp.
References assert(), llvm::APInt::getBitWidth(), llvm::Type::getPrimitiveSizeInBits(), llvm::APInt::getSExtValue(), llvm::APInt::getZExtValue(), llvm::isInt< 32 >(), llvm::Type::isIntegerTy(), llvm::isUInt< 32 >(), llvm::TargetTransformInfo::TCC_Basic, and llvm::TargetTransformInfo::TCC_Free.
Referenced by getIntImmCostIntrin().
InstructionCost SystemZTTIImpl::getIntImmCostInst | ( | unsigned | Opcode, |
unsigned | Idx, | ||
const APInt & | Imm, | ||
Type * | Ty, | ||
TTI::TargetCostKind | CostKind, | ||
Instruction * | Inst = nullptr |
||
) |
Definition at line 102 of file SystemZTargetTransformInfo.cpp.
References llvm::MCID::Add, assert(), llvm::APInt::getBitWidth(), llvm::SystemZSubtarget::getInstrInfo(), llvm::Type::getPrimitiveSizeInBits(), llvm::APInt::getSExtValue(), llvm::APInt::getZExtValue(), llvm::isInt< 16 >(), llvm::isInt< 32 >(), llvm::Type::isIntegerTy(), llvm::isUInt< 32 >(), Mul, llvm::SPII::Store, llvm::TargetTransformInfo::TCC_Basic, llvm::TargetTransformInfo::TCC_Free, and TII.
InstructionCost SystemZTTIImpl::getIntImmCostIntrin | ( | Intrinsic::ID | IID, |
unsigned | Idx, | ||
const APInt & | Imm, | ||
Type * | Ty, | ||
TTI::TargetCostKind | CostKind | ||
) |
Definition at line 223 of file SystemZTargetTransformInfo.cpp.
References assert(), CostKind, llvm::APInt::getBitWidth(), getIntImmCost(), llvm::Type::getPrimitiveSizeInBits(), llvm::APInt::getSExtValue(), llvm::APInt::getZExtValue(), llvm::isInt< 32 >(), llvm::Type::isIntegerTy(), llvm::isUInt< 32 >(), and llvm::TargetTransformInfo::TCC_Free.
InstructionCost SystemZTTIImpl::getIntrinsicInstrCost | ( | const IntrinsicCostAttributes & | ICA, |
TTI::TargetCostKind | CostKind | ||
) |
InstructionCost SystemZTTIImpl::getMemoryOpCost | ( | unsigned | Opcode, |
Type * | Src, | ||
MaybeAlign | Alignment, | ||
unsigned | AddressSpace, | ||
TTI::TargetCostKind | CostKind, | ||
const Instruction * | I = nullptr |
||
) |
Definition at line 1104 of file SystemZTargetTransformInfo.cpp.
References assert(), CostKind, llvm::BasicTTIImplBase< SystemZTTIImpl >::getNumberOfParts(), llvm::User::getNumOperands(), getNumVectorRegs(), llvm::User::getOperand(), llvm::Value::hasOneUse(), llvm::SystemZSubtarget::hasVectorEnhancements2(), i, I, isBswapIntrinsicCall(), isFoldableLoad(), llvm::SPII::Load, SI, llvm::TargetTransformInfo::TCK_RecipThroughput, and llvm::Value::user_begin().
Referenced by getUnrollingPreferences().
|
overridevirtual |
Reimplemented from llvm::BasicTTIImplBase< SystemZTTIImpl >.
Definition at line 379 of file SystemZTargetTransformInfo.cpp.
References llvm::SystemZSubtarget::hasMiscellaneousExtensions3().
unsigned SystemZTTIImpl::getNumberOfRegisters | ( | unsigned | ClassID | ) | const |
Definition at line 354 of file SystemZTargetTransformInfo.cpp.
References llvm::SystemZSubtarget::hasVector(), and Vector.
void SystemZTTIImpl::getPeelingPreferences | ( | Loop * | L, |
ScalarEvolution & | SE, | ||
TTI::PeelingPreferences & | PP | ||
) |
Definition at line 337 of file SystemZTargetTransformInfo.cpp.
References llvm::BasicTTIImplBase< SystemZTTIImpl >::getPeelingPreferences().
TargetTransformInfo::PopcntSupportKind SystemZTTIImpl::getPopcntSupport | ( | unsigned | TyWidth | ) |
Definition at line 274 of file SystemZTargetTransformInfo.cpp.
References assert(), llvm::SystemZSubtarget::hasPopulationCount(), llvm::isPowerOf2_32(), llvm::TargetTransformInfo::PSK_FastHardware, and llvm::TargetTransformInfo::PSK_Software.
|
inlineoverride |
Definition at line 73 of file SystemZTargetTransformInfo.h.
TypeSize SystemZTTIImpl::getRegisterBitWidth | ( | TargetTransformInfo::RegisterKind | K | ) | const |
Definition at line 366 of file SystemZTargetTransformInfo.cpp.
References llvm::LinearPolySize< TypeSize >::getFixed(), llvm::LinearPolySize< TypeSize >::getScalable(), llvm::SystemZSubtarget::hasVector(), llvm_unreachable, llvm::TargetTransformInfo::RGK_FixedWidthVector, llvm::TargetTransformInfo::RGK_ScalableVector, and llvm::TargetTransformInfo::RGK_Scalar.
InstructionCost SystemZTTIImpl::getShuffleCost | ( | TTI::ShuffleKind | Kind, |
VectorType * | Tp, | ||
ArrayRef< int > | Mask, | ||
int | Index, | ||
VectorType * | SubTp, | ||
ArrayRef< const Value * > | Args = None |
||
) |
Definition at line 595 of file SystemZTargetTransformInfo.cpp.
References getNumVectorRegs(), llvm::Type::getScalarType(), llvm::BasicTTIImplBase< SystemZTTIImpl >::getShuffleCost(), llvm::SystemZSubtarget::hasVector(), llvm::BasicTTIImplBase< SystemZTTIImpl >::improveShuffleKindFromMask(), llvm::Type::isFP128Ty(), llvm::BitmaskEnumDetail::Mask(), llvm::TargetTransformInfo::SK_Broadcast, and llvm::TargetTransformInfo::SK_ExtractSubvector.
void SystemZTTIImpl::getUnrollingPreferences | ( | Loop * | L, |
ScalarEvolution & | SE, | ||
TTI::UnrollingPreferences & | UP, | ||
OptimizationRemarkEmitter * | ORE | ||
) |
Definition at line 281 of file SystemZTargetTransformInfo.cpp.
References llvm::TargetTransformInfo::UnrollingPreferences::AllowExpensiveTripCount, BB, llvm::LoopBase< BlockT, LoopT >::blocks(), llvm::TargetTransformInfo::UnrollingPreferences::DefaultUnrollRuntimeCount, F, llvm::TargetTransformInfo::UnrollingPreferences::Force, llvm::TargetTransformInfo::UnrollingPreferences::FullUnrollMaxCount, getCalledFunction(), getMemoryOpCost(), llvm::InstructionCost::getValue(), I, llvm::TargetTransformInfoImplBase::isLoweredToCall(), llvm::TargetTransformInfo::UnrollingPreferences::MaxCount, memcpy(), llvm::None, llvm::TargetTransformInfo::UnrollingPreferences::Partial, llvm::TargetTransformInfo::UnrollingPreferences::PartialThreshold, llvm::TargetTransformInfo::UnrollingPreferences::Runtime, llvm::SPII::Store, and llvm::TargetTransformInfo::TCK_RecipThroughput.
Definition at line 691 of file SystemZTargetTransformInfo.cpp.
References assert(), getElSizeLog2Diff(), getNumVectorRegs(), llvm::Type::getScalarSizeInBits(), getVectorTruncCost(), and llvm::Type::isVectorTy().
Referenced by getBoolVecToIntConversionCost(), and getCmpSelInstrCost().
InstructionCost SystemZTTIImpl::getVectorInstrCost | ( | unsigned | Opcode, |
Type * | Val, | ||
unsigned | Index | ||
) |
Definition at line 995 of file SystemZTargetTransformInfo.cpp.
References getScalarSizeInBits(), llvm::BasicTTIImplBase< SystemZTTIImpl >::getVectorInstrCost(), and llvm::Type::isIntOrIntVectorTy().
Definition at line 649 of file SystemZTargetTransformInfo.cpp.
References assert(), getElSizeLog2Diff(), llvm::TypeSize::getFixedSize(), getNumVectorRegs(), llvm::Type::getPrimitiveSizeInBits(), llvm::Type::getScalarSizeInBits(), llvm::Type::isVectorTy(), and P.
Referenced by getCastInstrCost(), and getVectorBitmaskConversionCost().
bool SystemZTTIImpl::hasDivRemOp | ( | Type * | DataType, |
bool | IsSigned | ||
) |
Definition at line 396 of file SystemZTargetTransformInfo.cpp.
References llvm::BasicTTIImplBase< SystemZTTIImpl >::DL, llvm::TargetLoweringBase::getValueType(), llvm::EVT::isScalarInteger(), and llvm::TargetLoweringBase::isTypeLegal().
bool SystemZTTIImpl::isFoldableLoad | ( | const LoadInst * | Ld, |
const Instruction *& | FoldedValue | ||
) |
Definition at line 1017 of file SystemZTargetTransformInfo.cpp.
References llvm::MCID::Add, llvm::Instruction::getOpcode(), llvm::User::getOperand(), llvm::Type::getScalarSizeInBits(), getScalarSizeInBits(), llvm::Value::getType(), llvm::SystemZSubtarget::hasMiscellaneousExtensions2(), llvm::Value::hasOneUse(), LLVM_FALLTHROUGH, Mul, and llvm::Value::user_begin().
Referenced by getMemoryOpCost().
bool SystemZTTIImpl::isLSRCostLess | ( | TargetTransformInfo::LSRCost & | C1, |
TargetTransformInfo::LSRCost & | C2 | ||
) |
Definition at line 342 of file SystemZTargetTransformInfo.cpp.
References llvm::TargetTransformInfo::LSRCost::AddRecCost, C1, llvm::TargetTransformInfo::LSRCost::Insns, llvm::TargetTransformInfo::LSRCost::NumBaseAdds, llvm::TargetTransformInfo::LSRCost::NumIVMuls, llvm::TargetTransformInfo::LSRCost::NumRegs, llvm::TargetTransformInfo::LSRCost::ScaleCost, and llvm::TargetTransformInfo::LSRCost::SetupCost.
|
inline |
Definition at line 82 of file SystemZTargetTransformInfo.h.
|
inline |
Definition at line 81 of file SystemZTargetTransformInfo.h.
|
inline |
Definition at line 83 of file SystemZTargetTransformInfo.h.