LLVM 22.0.0git
|
#include "Target/SystemZ/SystemZTargetTransformInfo.h"
Definition at line 18 of file SystemZTargetTransformInfo.h.
|
inlineexplicit |
Definition at line 36 of file SystemZTargetTransformInfo.h.
References F, and llvm::TargetTransformInfoImplBase::getDataLayout().
Reimplemented from llvm::BasicTTIImplBase< SystemZTTIImpl >.
Definition at line 78 of file SystemZTargetTransformInfo.cpp.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::clear(), countNumMemAccesses(), llvm::dbgs(), llvm::dyn_cast(), GEP, llvm::CallBase::getArgOperand(), llvm::CallBase::getCalledFunction(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), I, InstrCount, instructions, llvm::isa(), isUsedAsMemCpySource(), LLVM_DEBUG, OpIdx, and Ptr.
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 93 of file SystemZTargetTransformInfo.h.
|
inlineoverridevirtual |
Reimplemented from llvm::BasicTTIImplBase< SystemZTTIImpl >.
Definition at line 83 of file SystemZTargetTransformInfo.h.
|
overridevirtual |
Reimplemented from llvm::BasicTTIImplBase< SystemZTTIImpl >.
Definition at line 542 of file SystemZTargetTransformInfo.cpp.
References A(), llvm::CallingConv::C, llvm::cast(), CostKind, llvm::dyn_cast(), llvm::dyn_cast_or_null(), llvm::BasicTTIImplBase< SystemZTTIImpl >::getArithmeticInstrCost(), getArithmeticInstrCost(), getNumVectorRegs(), llvm::BasicTTIImplBase< SystemZTTIImpl >::getScalarizationOverhead(), llvm::ConstantInt::getValue(), I, llvm::APInt::isNegatedPowerOf2(), llvm::APInt::isPowerOf2(), and llvm::TargetTransformInfo::TCK_RecipThroughput.
Referenced by getArithmeticInstrCost().
|
overridevirtual |
Reimplemented from llvm::BasicTTIImplBase< SystemZTTIImpl >.
Definition at line 1461 of file SystemZTargetTransformInfo.cpp.
References CostKind, customCostReductions(), llvm::BasicTTIImplBase< SystemZTTIImpl >::getArithmeticReductionCost(), getFastReductionCost(), getIntAddReductionCost(), getNumVectorRegs(), llvm::TargetTransformInfo::requiresOrderedReduction(), and llvm::SystemZ::VectorBits.
unsigned SystemZTTIImpl::getBoolVecToIntConversionCost | ( | unsigned | Opcode, |
Type * | Dst, | ||
const Instruction * | I ) const |
Definition at line 875 of file SystemZTargetTransformInfo.cpp.
References llvm::cast(), getCmpOpsType(), getNumVectorRegs(), getVectorBitmaskConversionCost(), and I.
Referenced by getCastInstrCost().
|
inlineoverridevirtual |
Reimplemented from llvm::BasicTTIImplBase< SystemZTTIImpl >.
Definition at line 77 of file SystemZTargetTransformInfo.h.
|
overridevirtual |
Reimplemented from llvm::BasicTTIImplBase< SystemZTTIImpl >.
Definition at line 891 of file SystemZTargetTransformInfo.cpp.
References llvm::cast(), CostKind, llvm::dyn_cast(), getBoolVecToIntConversionCost(), llvm::BasicTTIImplBase< SystemZTTIImpl >::getCastInstrCost(), getCastInstrCost(), getCmpOpsType(), getElSizeLog2Diff(), getNumVectorRegs(), llvm::BasicTTIImplBase< SystemZTTIImpl >::getScalarizationOverhead(), getVectorTruncCost(), I, llvm::isa(), llvm::Type::isFloatingPointTy(), llvm::TargetTransformInfo::TCK_CodeSize, and llvm::TargetTransformInfo::TCK_SizeAndLatency.
Referenced by getCastInstrCost().
|
overridevirtual |
Reimplemented from llvm::BasicTTIImplBase< SystemZTTIImpl >.
Definition at line 1089 of file SystemZTargetTransformInfo.cpp.
References assert(), llvm::CallingConv::C, llvm::cast(), CostKind, llvm::dyn_cast(), llvm::CmpInst::FCMP_ONE, llvm::CmpInst::FCMP_ORD, llvm::CmpInst::FCMP_UEQ, llvm::CmpInst::FCMP_UNO, getCmpOpsType(), llvm::BasicTTIImplBase< SystemZTTIImpl >::getCmpSelInstrCost(), getNumVectorRegs(), getOperandsExtensionCost(), getVectorBitmaskConversionCost(), I, llvm::CmpInst::ICMP_NE, llvm::CmpInst::ICMP_SGE, llvm::CmpInst::ICMP_SLE, llvm::CmpInst::ICMP_UGE, llvm::CmpInst::ICMP_ULE, and llvm::TargetTransformInfo::TCK_RecipThroughput.
|
overridevirtual |
Reimplemented from llvm::BasicTTIImplBase< SystemZTTIImpl >.
Definition at line 1380 of file SystemZTargetTransformInfo.cpp.
References assert(), llvm::cast(), CostKind, llvm::BitVector::count(), llvm::divideCeil(), llvm::BasicTTIImplBase< SystemZTTIImpl >::getInterleavedMemoryOpCost(), getNumVectorRegs(), getScalarSizeInBits(), llvm::isa(), and llvm::BitVector::set().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 152 of file SystemZTargetTransformInfo.cpp.
References assert(), CostKind, llvm::isInt(), llvm::isUInt(), llvm::TargetTransformInfo::TCC_Basic, and llvm::TargetTransformInfo::TCC_Free.
Referenced by getIntImmCostInst(), and getIntImmCostIntrin().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 186 of file SystemZTargetTransformInfo.cpp.
References assert(), CostKind, getIntImmCost(), llvm::isInt(), llvm::isUInt(), llvm::TargetTransformInfo::TCC_Basic, llvm::TargetTransformInfo::TCC_Free, and TII.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 307 of file SystemZTargetTransformInfo.cpp.
References assert(), CostKind, getIntImmCost(), llvm::isInt(), llvm::isUInt(), and llvm::TargetTransformInfo::TCC_Free.
|
overridevirtual |
Get intrinsic cost based on arguments.
Reimplemented from llvm::BasicTTIImplBase< SystemZTTIImpl >.
Definition at line 1518 of file SystemZTargetTransformInfo.cpp.
References CostKind, llvm::IntrinsicCostAttributes::getArgTypes(), llvm::IntrinsicCostAttributes::getID(), llvm::BasicTTIImplBase< SystemZTTIImpl >::getIntrinsicInstrCost(), llvm::IntrinsicCostAttributes::getReturnType(), and getVectorIntrinsicInstrCost().
|
overridevirtual |
Reimplemented from llvm::BasicTTIImplBase< SystemZTTIImpl >.
Definition at line 1303 of file SystemZTargetTransformInfo.cpp.
References AbstractManglingParser< Derived, Alloc >::NumOps, assert(), llvm::cast(), CostKind, llvm::BasicTTIImplBase< SystemZTTIImpl >::DL, llvm::dyn_cast(), llvm::BasicTTIImplBase< SystemZTTIImpl >::getMemoryOpCost(), llvm::BasicTTIImplBase< SystemZTTIImpl >::getNumberOfParts(), llvm::User::getNumOperands(), getNumVectorRegs(), llvm::User::getOperand(), llvm::Value::hasOneUse(), I, llvm::isa(), isBswapIntrinsicCall(), isFoldableLoad(), llvm::TargetTransformInfo::TCK_RecipThroughput, and llvm::Value::user_begin().
Referenced by getUnrollingPreferences().
|
overridevirtual |
Try to calculate op costs for min/max reduction operations.
CondTy | Conditional type for the Select instruction. |
Reimplemented from llvm::BasicTTIImplBase< SystemZTTIImpl >.
Definition at line 1488 of file SystemZTargetTransformInfo.cpp.
References CostKind, llvm::BasicTTIImplBase< SystemZTTIImpl >::getMinMaxReductionCost(), getNumVectorRegs(), and llvm::SystemZ::VectorBits.
|
overridevirtual |
Reimplemented from llvm::BasicTTIImplBase< SystemZTTIImpl >.
Definition at line 464 of file SystemZTargetTransformInfo.cpp.
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 439 of file SystemZTargetTransformInfo.cpp.
References llvm::Vector.
|
overridevirtual |
Reimplemented from llvm::BasicTTIImplBase< SystemZTTIImpl >.
Definition at line 421 of file SystemZTargetTransformInfo.cpp.
References llvm::BasicTTIImplBase< SystemZTTIImpl >::getPeelingPreferences().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 358 of file SystemZTargetTransformInfo.cpp.
References assert(), llvm::isPowerOf2_32(), llvm::TargetTransformInfo::PSK_FastHardware, and llvm::TargetTransformInfo::PSK_Software.
|
inlineoverridevirtual |
Reimplemented from llvm::BasicTTIImplBase< SystemZTTIImpl >.
Definition at line 78 of file SystemZTargetTransformInfo.h.
|
overridevirtual |
Reimplemented from llvm::BasicTTIImplBase< SystemZTTIImpl >.
Definition at line 451 of file SystemZTargetTransformInfo.cpp.
References llvm::TypeSize::getFixed(), llvm::TypeSize::getScalable(), llvm_unreachable, llvm::TargetTransformInfo::RGK_FixedWidthVector, llvm::TargetTransformInfo::RGK_ScalableVector, and llvm::TargetTransformInfo::RGK_Scalar.
|
overridevirtual |
Estimate the overhead of scalarizing an instruction.
Insert and Extract are set if the demanded result elements need to be inserted and/or extracted from vectors.
FIXME: a bitfield is not a reasonable abstraction for talking about which elements are needed from a scalable vector
Reimplemented from llvm::BasicTTIImplBase< SystemZTTIImpl >.
Definition at line 494 of file SystemZTargetTransformInfo.cpp.
References assert(), llvm::cast(), CostKind, llvm::ArrayRef< T >::empty(), llvm::BasicTTIImplBase< SystemZTTIImpl >::getScalarizationOverhead(), InstructionCost, isFreeEltLoad(), and llvm::ArrayRef< T >::size().
|
overridevirtual |
Reimplemented from llvm::BasicTTIImplBase< SystemZTTIImpl >.
Definition at line 728 of file SystemZTargetTransformInfo.cpp.
References CostKind, getNumVectorRegs(), llvm::BasicTTIImplBase< SystemZTTIImpl >::getShuffleCost(), llvm::BasicTTIImplBase< SystemZTTIImpl >::improveShuffleKindFromMask(), llvm::TargetTransformInfo::SK_Broadcast, and llvm::TargetTransformInfo::SK_ExtractSubvector.
|
overridevirtual |
Reimplemented from llvm::BasicTTIImplBase< SystemZTTIImpl >.
Definition at line 365 of file SystemZTargetTransformInfo.cpp.
References llvm::TargetTransformInfo::UnrollingPreferences::AllowExpensiveTripCount, llvm::cast(), llvm::TargetTransformInfo::UnrollingPreferences::DefaultUnrollRuntimeCount, F, llvm::TargetTransformInfo::UnrollingPreferences::Force, llvm::TargetTransformInfo::UnrollingPreferences::FullUnrollMaxCount, getCalledFunction(), getMemoryOpCost(), llvm::InstructionCost::getValue(), I, llvm::isa(), llvm::TargetTransformInfoImplBase::isLoweredToCall(), llvm::TargetTransformInfo::UnrollingPreferences::MaxCount, llvm::TargetTransformInfo::UnrollingPreferences::Partial, llvm::TargetTransformInfo::UnrollingPreferences::PartialThreshold, llvm::TargetTransformInfo::UnrollingPreferences::Runtime, and llvm::TargetTransformInfo::TCK_RecipThroughput.
Definition at line 823 of file SystemZTargetTransformInfo.cpp.
References assert(), getElSizeLog2Diff(), getNumVectorRegs(), llvm::Type::getScalarSizeInBits(), getVectorTruncCost(), and llvm::Type::isVectorTy().
Referenced by getBoolVecToIntConversionCost(), and getCmpSelInstrCost().
|
inlineoverridevirtual |
Reimplemented from llvm::BasicTTIImplBase< SystemZTTIImpl >.
Definition at line 1443 of file BasicTTIImpl.h.
|
overridevirtual |
Reimplemented from llvm::BasicTTIImplBase< SystemZTTIImpl >.
Definition at line 1184 of file SystemZTargetTransformInfo.cpp.
References CostKind, getScalarSizeInBits(), llvm::BasicTTIImplBase< SystemZTTIImpl >::getVectorInstrCost(), isFreeEltLoad(), and llvm::Type::isIntOrIntVectorTy().
|
inlineoverridevirtual |
ScalarUserAndIdx | encodes the information about extracts from a vector with 'Scalar' being the value being extracted,'User' being the user of the extract(nullptr if user is not known before vectorization) and 'Idx' being the extract lane. |
Reimplemented from llvm::BasicTTIImplBase< SystemZTTIImpl >.
Definition at line 1434 of file BasicTTIImpl.h.
Definition at line 782 of file SystemZTargetTransformInfo.cpp.
References assert(), llvm::cast(), getElSizeLog2Diff(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getFixedValue(), getNumElements(), getNumVectorRegs(), llvm::Type::getPrimitiveSizeInBits(), llvm::Type::getScalarSizeInBits(), llvm::Type::isVectorTy(), and P.
Referenced by getCastInstrCost(), and getVectorBitmaskConversionCost().
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 481 of file SystemZTargetTransformInfo.cpp.
References llvm::BasicTTIImplBase< SystemZTTIImpl >::DL, and llvm::EVT::isScalarInteger().
bool SystemZTTIImpl::isFoldableLoad | ( | const LoadInst * | Ld, |
const Instruction *& | FoldedValue ) const |
Definition at line 1215 of file SystemZTargetTransformInfo.cpp.
References llvm::cast(), llvm::dyn_cast(), llvm::Instruction::getOpcode(), llvm::User::getOperand(), getScalarSizeInBits(), llvm::Type::getScalarSizeInBits(), llvm::Value::getType(), llvm::Value::hasOneUse(), llvm::isa(), and llvm::Value::user_begin().
Referenced by getMemoryOpCost().
|
overridevirtual |
Reimplemented from llvm::BasicTTIImplBase< SystemZTTIImpl >.
Definition at line 426 of file SystemZTargetTransformInfo.cpp.
References llvm::TargetTransformInfo::LSRCost::AddRecCost, 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.
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 87 of file SystemZTargetTransformInfo.h.
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 86 of file SystemZTargetTransformInfo.h.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 1527 of file SystemZTargetTransformInfo.cpp.
References llvm::cast(), II, and llvm::SystemZ::VectorBits.
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 92 of file SystemZTargetTransformInfo.h.