|
LLVM 24.0.0git
|
#include "Target/AArch64/AArch64TargetTransformInfo.h"
Definition at line 43 of file AArch64TargetTransformInfo.h.
|
inlineexplicit |
Definition at line 81 of file AArch64TargetTransformInfo.h.
References F, and llvm::TargetTransformInfoImplBase::getDataLayout().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 280 of file AArch64TargetTransformInfo.cpp.
References llvm::BasicTTIImplBase< AArch64TTIImpl >::areInlineCompatible(), CallAttrs, hasPossibleIncompatibleOps(), llvm::SMEAttrs::SM_Compatible, and llvm::SMEAttrs::SM_Enabled.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 311 of file AArch64TargetTransformInfo.cpp.
References llvm::any_of(), and llvm::TargetTransformInfoImplBase::areTypesABICompatible().
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 566 of file AArch64TargetTransformInfo.h.
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 120 of file AArch64TargetTransformInfo.h.
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 122 of file AArch64TargetTransformInfo.h.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 5472 of file AArch64TargetTransformInfo.cpp.
References Options.
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 449 of file AArch64TargetTransformInfo.h.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 3665 of file AArch64TargetTransformInfo.cpp.
References EnableScalableAutovecInStreamingMode.
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 541 of file AArch64TargetTransformInfo.h.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 5291 of file AArch64TargetTransformInfo.cpp.
References CostKind, llvm::TargetTransformInfoImplBase::isConstantStridedAccessLessThan(), llvm::Type::isVectorTy(), and NeonNonConstStrideOverhead.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 4899 of file AArch64TargetTransformInfo.cpp.
References llvm::ISD::ADD, llvm::ISD::AND, llvm::cast(), CostKind, llvm::CostTableLookup(), llvm::BasicTTIImplBase< AArch64TTIImpl >::DL, llvm::dyn_cast(), llvm::ISD::FADD, llvm::ISD::FDIV, llvm::ISD::FMUL, llvm::ISD::FNEG, llvm::ISD::FREM, llvm::ISD::FSUB, getArithmeticInstrCost(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getArithmeticInstrCost(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getCallInstrCost(), getCastInstrCost(), getFP16BF16PromoteCost(), llvm::InstructionCost::getInvalid(), llvm::TargetTransformInfo::OperandValueInfo::getNoProps(), llvm::User::getOperand(), llvm::ElementCount::getScalable(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), getVectorInstrCost(), llvm::Value::hasOneUse(), llvm::isa(), llvm::TargetTransformInfo::OperandValueInfo::isConstant(), llvm::TargetTransformInfo::OperandValueInfo::isNegatedPowerOf2(), llvm::TargetTransformInfo::OperandValueInfo::isPowerOf2(), llvm::TargetTransformInfo::OperandValueInfo::isUniform(), llvm::PatternMatch::m_FMul(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::match(), llvm::ISD::MUL, llvm::TargetTransformInfo::None, llvm::ISD::OR, llvm::popcount(), llvm::ISD::SDIV, llvm::ISD::SHL, llvm::ISD::SRA, llvm::ISD::SREM, llvm::ISD::SRL, llvm::ISD::SUB, llvm::TargetTransformInfo::TCK_CodeSize, llvm::TargetTransformInfo::TCK_RecipThroughput, llvm::ISD::UDIV, llvm::ISD::UREM, llvm::Instruction::user_begin(), and llvm::ISD::XOR.
Referenced by getArithmeticInstrCost(), getArithmeticReductionCost(), getArithmeticReductionCostSVE(), getIntrinsicInstrCost(), and getPartialReductionCost().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 6524 of file AArch64TargetTransformInfo.cpp.
References llvm::ISD::ADD, llvm::ISD::AND, assert(), llvm::cast(), CostKind, llvm::CostTableLookup(), llvm::dyn_cast(), llvm::ISD::FADD, llvm::FixedVectorType::get(), getArithmeticInstrCost(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getArithmeticReductionCost(), getArithmeticReductionCostSVE(), llvm::VectorType::getElementCount(), llvm::VectorType::getElementType(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getFixedValue(), llvm::InstructionCost::getInvalid(), getMaxNumElements(), llvm::ElementCount::getScalable(), llvm::Type::getScalarType(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), llvm::MVT::getVectorNumElements(), llvm::isa(), llvm::Type::isBFloatTy(), llvm::isPowerOf2_32(), llvm::MVT::isVector(), llvm::Log2_32(), llvm::ISD::OR, llvm::TargetTransformInfo::requiresOrderedReduction(), and llvm::ISD::XOR.
| InstructionCost AArch64TTIImpl::getArithmeticReductionCostSVE | ( | unsigned | Opcode, |
| VectorType * | ValTy, | ||
| TTI::TargetCostKind | CostKind ) const |
Definition at line 6498 of file AArch64TargetTransformInfo.cpp.
References llvm::ISD::ADD, llvm::ISD::AND, assert(), CostKind, llvm::ISD::FADD, getArithmeticInstrCost(), llvm::Type::getContext(), llvm::InstructionCost::getInvalid(), llvm::EVT::getTypeForEVT(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), llvm::ISD::OR, and llvm::ISD::XOR.
Referenced by getArithmeticReductionCost().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 556 of file AArch64TargetTransformInfo.cpp.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 3882 of file AArch64TargetTransformInfo.cpp.
References assert(), llvm::ISD::BITCAST, llvm::EVT::bitsGT(), llvm::cast(), llvm::ConvertCostTableLookup(), CostKind, llvm::BasicTTIImplBase< AArch64TTIImpl >::DL, llvm::ISD::FP_EXTEND, llvm::ISD::FP_ROUND, llvm::ISD::FP_TO_SINT, llvm::ISD::FP_TO_UINT, llvm::ScalableVectorType::get(), getCastInstrCost(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getCastInstrCost(), llvm::InstructionCost::getInvalid(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getScalarizationOverhead(), llvm::EVT::getScalarSizeInBits(), llvm::Type::getScalarSizeInBits(), llvm::EVT::getScalarType(), llvm::EVT::getSimpleVT(), llvm::EVT::getTypeForEVT(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), getVectorInstrCost(), llvm::EVT::getVectorNumElements(), llvm::Type::getWithNewBitWidth(), I, llvm::isa(), isExtPartOfAvgExpr(), llvm::EVT::isFixedLengthVector(), llvm::EVT::isSimple(), llvm::TargetTransformInfo::Masked, llvm::TargetTransformInfo::None, llvm::TargetTransformInfo::Normal, Operands, llvm::ISD::SIGN_EXTEND, llvm::ISD::SINT_TO_FP, llvm::AArch64::SVEBitsPerBlock, llvm::ISD::TRUNCATE, llvm::TargetLoweringBase::TypePromoteInteger, llvm::TargetLoweringBase::TypeSplitVector, llvm::ISD::UINT_TO_FP, and llvm::ISD::ZERO_EXTEND.
Referenced by getArithmeticInstrCost(), getCastInstrCost(), getCmpSelInstrCost(), getExtractWithExtendCost(), getFP16BF16PromoteCost(), getIntrinsicInstrCost(), and getSpliceCost().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 4609 of file AArch64TargetTransformInfo.cpp.
References assert(), CostKind, I, and llvm::TargetTransformInfo::TCK_RecipThroughput.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 5336 of file AArch64TargetTransformInfo.cpp.
References llvm::any_of(), llvm::CmpInst::BAD_ICMP_PREDICATE, llvm::cast(), llvm::ConvertCostTableLookup(), CostKind, llvm::BasicTTIImplBase< AArch64TTIImpl >::DL, llvm::equal_to(), llvm::CmpInst::FCMP_OEQ, llvm::CmpInst::FCMP_OGE, llvm::CmpInst::FCMP_OGT, llvm::CmpInst::FCMP_OLE, llvm::CmpInst::FCMP_OLT, llvm::CmpInst::FCMP_ONE, llvm::CmpInst::FCMP_ORD, llvm::CmpInst::FCMP_UEQ, llvm::CmpInst::FCMP_UNE, llvm::CmpInst::FCMP_UNO, llvm::BasicTTIImplBase< AArch64TTIImpl >::getCallInstrCost(), getCastInstrCost(), getCmpSelInstrCost(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getCmpSelInstrCost(), getFP16BF16PromoteCost(), llvm::VectorType::getInteger(), llvm::EVT::getSimpleVT(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), hasKnownLowerThroughputFromSchedulingModel(), I, llvm::CmpInst::ICMP_SGE, llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_SLE, llvm::CmpInst::ICMP_SLT, llvm::isa(), llvm::Type::isIntegerTy(), llvm::CmpInst::isIntPredicate(), llvm::EVT::isSimple(), llvm::CmpInst::isUnsigned(), llvm::MIPatternMatch::m_AllOnes(), llvm::PatternMatch::m_And(), llvm::PatternMatch::m_Cmp(), llvm::PatternMatch::m_One(), llvm::PatternMatch::m_Select(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::m_Zero(), llvm::PatternMatch::match(), llvm::TargetTransformInfo::None, llvm::TargetTransformInfo::TCK_Latency, and llvm::TargetTransformInfo::TCK_RecipThroughput.
Referenced by getCmpSelInstrCost(), getIntrinsicInstrCost(), and getSpliceCost().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 5897 of file AArch64TargetTransformInfo.cpp.
References llvm::cast(), CostKind, getMemoryOpCost(), I, and llvm::TargetTransformInfo::TCK_RecipThroughput.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 7347 of file AArch64TargetTransformInfo.cpp.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 6655 of file AArch64TargetTransformInfo.cpp.
References CostKind, llvm::BasicTTIImplBase< AArch64TTIImpl >::DL, llvm::BasicTTIImplBase< AArch64TTIImpl >::getExtendedReductionCost(), llvm::EVT::getSizeInBits(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), and llvm::EVT::isSimple().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 4550 of file AArch64TargetTransformInfo.cpp.
References assert(), CostKind, llvm::BasicTTIImplBase< AArch64TTIImpl >::DL, getCastInstrCost(), llvm::VectorType::getElementType(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), getVectorInstrCost(), llvm::isa(), llvm_unreachable, and llvm::TargetTransformInfo::None.
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 264 of file AArch64TargetTransformInfo.cpp.
References extractAttrFeatures(), F, and llvm::AArch64::getCpuSupportsMask().
| std::optional< InstructionCost > AArch64TTIImpl::getFP16BF16PromoteCost | ( | Type * | Ty, |
| TTI::TargetCostKind | CostKind, | ||
| TTI::OperandValueInfo | Op1Info, | ||
| TTI::OperandValueInfo | Op2Info, | ||
| bool | IncludeTrunc, | ||
| bool | CanUseSVE, | ||
| std::function< InstructionCost(Type *)> | InstCost ) const |
FP16 and BF16 operations are lowered to fptrunc(op(fpext, fpext) if the architecture features are not present.
Definition at line 4875 of file AArch64TargetTransformInfo.cpp.
References CostKind, getCastInstrCost(), llvm::Type::getFloatTy(), llvm::Type::getWithNewType(), llvm::TargetTransformInfo::OperandValueInfo::isConstant(), and llvm::TargetTransformInfo::None.
Referenced by getArithmeticInstrCost(), and getCmpSelInstrCost().
| InstructionCost AArch64TTIImpl::getGatherScatterOpCost | ( | const MemIntrinsicCostAttributes & | MICA, |
| TTI::TargetCostKind | CostKind ) const |
Definition at line 5592 of file AArch64TargetTransformInfo.cpp.
References llvm::cast(), CostKind, llvm::MemIntrinsicCostAttributes::getAlignment(), llvm::MemIntrinsicCostAttributes::getDataType(), llvm::MemIntrinsicCostAttributes::getID(), llvm::MemIntrinsicCostAttributes::getInst(), llvm::InstructionCost::getInvalid(), getMaxNumElements(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getMemIntrinsicInstrCost(), getMemoryOpCost(), llvm::ElementCount::getScalable(), getSVEGatherScatterOverhead(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), I, isElementTypeLegalForScalableVector(), isLegalMaskedGatherScatter(), and useNeonVector().
Referenced by getMemIntrinsicInstrCost().
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 464 of file AArch64TargetTransformInfo.h.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 4845 of file AArch64TargetTransformInfo.cpp.
References CostKind, llvm::BasicTTIImplBase< AArch64TTIImpl >::getIndexedVectorInstrCostFromEnd(), llvm::isa(), and llvm::TargetTransformInfo::TCK_CodeSize.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 336 of file AArch64TargetTransformInfo.cpp.
References Call, CallAttrs, CallPenaltyChangeSM, F, InlineCallPenaltyChangeSM, and llvm::SMECallAttrs::requiresSMChange().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 5806 of file AArch64TargetTransformInfo.cpp.
References assert(), llvm::cast(), CostKind, llvm::BasicTTIImplBase< AArch64TTIImpl >::DL, llvm::VectorType::get(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getInterleavedMemoryOpCost(), llvm::InstructionCost::getInvalid(), getMemIntrinsicInstrCost(), getMemoryOpCost(), llvm::ElementCount::getScalable(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), llvm::Type::isScalableTy(), and llvm::Log2_64().
|
overridevirtual |
Calculate the cost of materializing the given constant.
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 402 of file AArch64TargetTransformInfo.cpp.
References llvm::APInt::ashr(), assert(), CostKind, getIntImmCost(), llvm::APInt::getSExtValue(), Imm, and llvm::APInt::sextOrTrunc().
| InstructionCost AArch64TTIImpl::getIntImmCost | ( | int64_t | Val | ) | const |
Calculate the cost of materializing a 64-bit value.
This helper method might only calculate a fraction of a larger immediate. Therefore it is valid to return a cost of ZERO.
Definition at line 386 of file AArch64TargetTransformInfo.cpp.
References llvm::AArch64_IMM::expandMOVImm(), llvm::AArch64_AM::isLogicalImmediate(), and llvm::SmallVectorTemplateCommon< T, typename >::size().
Referenced by getIntImmCost(), getIntImmCostInst(), and getIntImmCostIntrin().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 427 of file AArch64TargetTransformInfo.cpp.
References assert(), CostKind, getIntImmCost(), Imm, llvm::TargetTransformInfo::TCC_Basic, and llvm::TargetTransformInfo::TCC_Free.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 496 of file AArch64TargetTransformInfo.cpp.
References assert(), CostKind, getIntImmCost(), Imm, llvm::isInt(), llvm::TargetTransformInfo::TCC_Basic, and llvm::TargetTransformInfo::TCC_Free.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 610 of file AArch64TargetTransformInfo.cpp.
References _, llvm::any_of(), llvm::FastMathFlags::approxFunc(), C(), llvm::cast(), CostKind, llvm::CostTableLookup(), llvm::ISD::CTPOP, llvm::ISD::CTTZ_ELTS, llvm::divideCeil(), llvm::BasicTTIImplBase< AArch64TTIImpl >::DL, llvm::dyn_cast(), llvm::dyn_cast_or_null(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::equal_to(), llvm::CmpInst::FCMP_UNO, llvm::FMul, llvm::FixedVectorType::get(), llvm::VectorType::get(), llvm::IntrinsicCostAttributes::getArgs(), llvm::IntrinsicCostAttributes::getArgTypes(), getArithmeticInstrCost(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getCallInstrCost(), getCastInstrCost(), getCmpSelInstrCost(), llvm::TargetTransformInfoImplBase::getDataLayout(), llvm::Instruction::getFastMathFlags(), llvm::Type::getFloatTy(), getHistogramCost(), llvm::IntrinsicCostAttributes::getID(), llvm::IntrinsicCostAttributes::getInst(), llvm::Type::getInt64Ty(), llvm::Type::getInt8Ty(), llvm::Type::getIntNTy(), getIntrinsicInstrCost(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getIntrinsicInstrCost(), llvm::InstructionCost::getInvalid(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), llvm::TargetTransformInfo::getOperandInfo(), llvm::IntrinsicCostAttributes::getReturnType(), llvm::ElementCount::getScalable(), llvm::MVT::getScalableVectorVT(), llvm::EVT::getScalarSizeInBits(), llvm::MVT::getScalarSizeInBits(), llvm::Type::getScalarType(), llvm::EVT::getSimpleVT(), llvm::Constant::getSplatValue(), llvm::Value::getType(), llvm::EVT::getTypeForEVT(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), llvm::DataLayout::getTypeSizeInBits(), llvm::MVT::getVectorElementType(), getVectorInstrCost(), llvm::EVT::getVectorMinNumElements(), llvm::EVT::getVectorNumElements(), llvm::Type::getWithNewBitWidth(), llvm::CmpInst::ICMP_UGT, llvm::is_contained(), llvm::isa(), llvm::TargetTransformInfo::OperandValueInfo::isConstant(), llvm::Type::isDoubleTy(), llvm::EVT::isFixedLengthVector(), llvm::MVT::isFixedLengthVector(), llvm::Type::isFloatTy(), llvm::Type::isHalfTy(), llvm::Type::isIntegerTy(), llvm::isPowerOf2_64(), llvm::EVT::isSimple(), llvm::BasicTTIImplBase< AArch64TTIImpl >::isTypeLegal(), llvm::TargetTransformInfo::OperandValueInfo::isUniform(), isUnpackedVectorVT(), llvm::InstructionCost::isValid(), llvm::MVT::isVector(), llvm::ConstantInt::isZero(), llvm::FastMathFlags::noInfs(), llvm::TargetTransformInfo::None, llvm::FastMathFlags::noSignedZeros(), llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::AArch64::SVEBitsPerBlock, llvm::TargetTransformInfo::TCC_Free, llvm::TargetLoweringBase::TypeLegal, and llvm::TargetLoweringBase::TypeSplitVector.
Referenced by getIntrinsicInstrCost(), and getMinMaxReductionCost().
| InstructionCost AArch64TTIImpl::getMaskedMemoryOpCost | ( | const MemIntrinsicCostAttributes & | MICA, |
| TTI::TargetCostKind | CostKind ) const |
Definition at line 5511 of file AArch64TargetTransformInfo.cpp.
References llvm::cast(), CostKind, llvm::MemIntrinsicCostAttributes::getAlignment(), llvm::MemIntrinsicCostAttributes::getDataType(), llvm::MemIntrinsicCostAttributes::getID(), llvm::InstructionCost::getInvalid(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getMemIntrinsicInstrCost(), llvm::ElementCount::getScalable(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), isLegalMaskedCompressStore(), isLegalMaskedExpandLoad(), and useNeonVector().
Referenced by getMemIntrinsicInstrCost().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 5924 of file AArch64TargetTransformInfo.cpp.
References llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), and llvm::ElementCount::isScalar().
|
inline |
Try to return an estimate cost factor that can be used as a multiplier when scalarizing an operation for a vector with ElementCount VF.
For scalable vectors this currently takes the most pessimistic view based upon the maximum possible value for vscale.
Definition at line 167 of file AArch64TargetTransformInfo.h.
References llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getFixedValue(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), and llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isScalable().
Referenced by getArithmeticReductionCost(), and getGatherScatterOpCost().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 5495 of file AArch64TargetTransformInfo.cpp.
References CostKind, getGatherScatterOpCost(), llvm::MemIntrinsicCostAttributes::getID(), getMaskedMemoryOpCost(), and llvm::BasicTTIImplBase< AArch64TTIImpl >::getMemIntrinsicInstrCost().
Referenced by getInterleavedMemoryOpCost().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 5637 of file AArch64TargetTransformInfo.cpp.
References llvm::cast(), CostKind, llvm::BasicTTIImplBase< AArch64TTIImpl >::DL, llvm::dyn_cast(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::InstructionCost::getInvalid(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getMemoryOpCost(), llvm::ElementCount::getScalable(), llvm::EVT::getScalarSizeInBits(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), getValue(), llvm::EVT::getVectorElementType(), llvm::EVT::getVectorNumElements(), I, llvm::isPowerOf2_32(), llvm::MCSchedClassDesc::isValid(), llvm::MCSchedClassDesc::isVariant(), llvm_unreachable, llvm::NextPowerOf2(), llvm::Offset, llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::TargetTransformInfo::TCK_CodeSize, llvm::TargetTransformInfo::TCK_Latency, llvm::TargetTransformInfo::TCK_SizeAndLatency, TII, and useNeonVector().
Referenced by getCostOfKeepingLiveOverCall(), getGatherScatterOpCost(), and getInterleavedMemoryOpCost().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 6472 of file AArch64TargetTransformInfo.cpp.
References CostKind, llvm::dyn_cast(), getIntrinsicInstrCost(), llvm::InstructionCost::getInvalid(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getMinMaxReductionCost(), llvm::ElementCount::getScalable(), llvm::EVT::getTypeForEVT(), and llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost().
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 558 of file AArch64TargetTransformInfo.h.
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 468 of file AArch64TargetTransformInfo.h.
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 152 of file AArch64TargetTransformInfo.h.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 6683 of file AArch64TargetTransformInfo.cpp.
References CostKind, llvm::BasicTTIImplBase< AArch64TTIImpl >::DL, llvm::BasicTTIImplBase< AArch64TTIImpl >::getMulAccReductionCost(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), and llvm::EVT::isSimple().
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 126 of file AArch64TargetTransformInfo.h.
References llvm::Vector.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 6303 of file AArch64TargetTransformInfo.cpp.
References llvm::CallBase::arg_size(), llvm::dyn_cast(), llvm::PoisonValue::get(), llvm::CallBase::getArgOperand(), llvm::IntrinsicInst::getIntrinsicID(), and llvm::Value::getType().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 6762 of file AArch64TargetTransformInfo.cpp.
References assert(), CostKind, llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::divideCoefficientBy(), llvm::VectorType::get(), getArithmeticInstrCost(), llvm::Type::getContext(), llvm::EVT::getEVT(), llvm::InstructionCost::getInvalid(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getPartialReductionCost(), llvm::Type::getScalarSizeInBits(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), llvm::Invalid, llvm::is_contained(), llvm::Type::isFloatingPointTy(), llvm::TargetTransformInfo::PR_None, llvm::MVT::SimpleTy, llvm::TargetTransformInfo::TCC_Basic, llvm::TargetTransformInfo::TCK_RecipThroughput, llvm::TargetLoweringBase::TypeLegal, llvm::TargetLoweringBase::TypePromoteInteger, and llvm::TargetLoweringBase::TypeSplitVector.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 6298 of file AArch64TargetTransformInfo.cpp.
References llvm::BasicTTIImplBase< AArch64TTIImpl >::getPeelingPreferences().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 548 of file AArch64TargetTransformInfo.cpp.
References assert(), llvm::isPowerOf2_32(), llvm::TargetTransformInfo::PSK_FastHardware, and llvm::TargetTransformInfo::PSK_Software.
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 472 of file AArch64TargetTransformInfo.h.
References llvm::DataAndControlFlow, and llvm::DataWithoutLaneMask.
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 270 of file AArch64TargetTransformInfo.cpp.
References extractAttrFeatures(), F, and llvm::AArch64::getFMVPriority().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 3671 of file AArch64TargetTransformInfo.cpp.
References EnableFixedwidthAutovecInStreamingMode, EnableScalableAutovecInStreamingMode, llvm::TypeSize::getFixed(), llvm::TypeSize::getScalable(), llvm_unreachable, llvm::TargetTransformInfo::RGK_FixedWidthVector, llvm::TargetTransformInfo::RGK_ScalableVector, and llvm::TargetTransformInfo::RGK_Scalar.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 4861 of file AArch64TargetTransformInfo.cpp.
References CostKind, llvm::InstructionCost::getInvalid(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getScalarizationOverhead(), llvm::isa(), llvm::APInt::popcount(), and llvm::TargetTransformInfo::TCK_CodeSize.
|
overridevirtual |
Return the cost of the scaling factor used in the addressing mode represented by AM for this target, for a load/store of the specified type.
If the AM is supported, the return value must be >= 0. If the AM is not supported, it returns an invalid cost.
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 7393 of file AArch64TargetTransformInfo.cpp.
References llvm::TargetLoweringBase::AddrMode::BaseGV, llvm::TargetLoweringBase::AddrMode::BaseOffs, llvm::BasicTTIImplBase< AArch64TTIImpl >::DL, llvm::StackOffset::getFixed(), llvm::InstructionCost::getInvalid(), llvm::StackOffset::getScalable(), llvm::TargetLoweringBase::AddrMode::HasBaseReg, llvm::BasicTTIImplBase< AArch64TTIImpl >::isLegalAddressingMode(), llvm::TargetLoweringBase::AddrMode::ScalableOffset, and llvm::TargetLoweringBase::AddrMode::Scale.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 6951 of file AArch64TargetTransformInfo.cpp.
References llvm::all_of(), assert(), llvm::cast(), CostKind, llvm::CostTableLookup(), llvm::drop_begin(), llvm::enumerate(), llvm::VectorType::get(), llvm::VectorType::getElementCount(), llvm::ElementCount::getFixed(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), llvm::FixedVectorType::getNumElements(), llvm::getPerfectShuffleCost(), llvm::Type::getPrimitiveSizeInBits(), llvm::Type::getScalarType(), getShuffleCost(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getShuffleCost(), getSpliceCost(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), llvm::Value::hasOneUse(), llvm::BasicTTIImplBase< AArch64TTIImpl >::improveShuffleKindFromMask(), llvm::isa(), llvm::ShuffleVectorInst::isDeInterleaveMaskOfFactor(), llvm::isDUPFirstSegmentMask(), llvm::isDUPQMask(), llvm::ShuffleVectorInst::isInterleaveMask(), isLegalBroadcastLoad(), llvm::isREVMask(), llvm::Type::isScalableTy(), llvm::isTRNMask(), llvm::isUZPMask(), llvm::isZIPMask(), N, llvm::PoisonMaskElem, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::TargetTransformInfo::SK_Broadcast, llvm::TargetTransformInfo::SK_ExtractSubvector, llvm::TargetTransformInfo::SK_InsertSubvector, llvm::TargetTransformInfo::SK_PermuteSingleSrc, llvm::TargetTransformInfo::SK_PermuteTwoSrc, llvm::TargetTransformInfo::SK_Reverse, llvm::TargetTransformInfo::SK_Select, llvm::TargetTransformInfo::SK_Splice, llvm::TargetTransformInfo::SK_Transpose, llvm::AArch64::SVEBitsPerBlock, llvm::TargetTransformInfo::TCK_CodeSize, and llvm::Instruction::user_begin().
Referenced by getShuffleCost().
| InstructionCost AArch64TTIImpl::getSpliceCost | ( | VectorType * | Tp, |
| int | Index, | ||
| TTI::TargetCostKind | CostKind ) const |
Definition at line 6706 of file AArch64TargetTransformInfo.cpp.
References assert(), llvm::CmpInst::BAD_ICMP_PREDICATE, CostKind, llvm::CostTableLookup(), getCastInstrCost(), getCmpSelInstrCost(), llvm::Type::getContext(), llvm::VectorType::getElementCount(), llvm::InstructionCost::getInvalid(), llvm::ElementCount::getScalable(), llvm::EVT::getSimpleVT(), llvm::EVT::getTypeForEVT(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getTypeLegalizationCost(), llvm::TargetTransformInfo::None, and llvm::TargetTransformInfo::SK_Splice.
Referenced by getShuffleCost().
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 547 of file AArch64TargetTransformInfo.h.
References llvm::BasicTTIImplBase< AArch64TTIImpl >::getStoreMinimumVF(), llvm::Type::isIntegerTy(), and llvm::isPowerOf2_32().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 6346 of file AArch64TargetTransformInfo.cpp.
References llvm::CallBase::arg_size(), llvm::CallBase::getArgOperand(), and llvm::IntrinsicInst::getIntrinsicID().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 6198 of file AArch64TargetTransformInfo.cpp.
References Aarch64ForceUnrollThreshold, llvm::cast(), llvm::TargetTransformInfo::UnrollingPreferences::DefaultUnrollRuntimeCount, EnableFalkorHWPFUnrollFix, F, llvm::TargetTransformInfo::UnrollingPreferences::Force, llvm::AArch64Subtarget::Generic, getAppleRuntimeUnrollPreferences(), llvm::ScalarEvolution::getBackedgeTakenCount(), llvm::getBooleanLoopAttribute(), getCalledFunction(), getFalkorUnrollingPreferences(), llvm::TargetTransformInfoImplCRTPBase< T >::getInstructionCost(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getUnrollingPreferences(), I, llvm::isa(), llvm::ScalarEvolution::isBackedgeTakenCountMaxOrZero(), llvm::TargetTransformInfoImplBase::isLoweredToCall(), llvm::TargetTransformInfo::UnrollingPreferences::MaxUpperBound, Operands, llvm::TargetTransformInfo::UnrollingPreferences::Partial, llvm::TargetTransformInfo::UnrollingPreferences::PartialOptSizeThreshold, llvm::TargetTransformInfo::UnrollingPreferences::PartialThreshold, llvm::TargetTransformInfo::UnrollingPreferences::Runtime, llvm::TargetTransformInfo::UnrollingPreferences::RuntimeUnrollMultiExit, llvm::TargetTransformInfo::UnrollingPreferences::SCEVExpansionBudget, shouldUnrollMultiExitLoop(), llvm::TargetTransformInfo::TCK_SizeAndLatency, llvm::TargetTransformInfo::UnrollingPreferences::UnrollAndJam, llvm::TargetTransformInfo::UnrollingPreferences::UnrollAndJamInnerLoopThreshold, llvm::TargetTransformInfo::UnrollingPreferences::UnrollRemainder, and llvm::TargetTransformInfo::UnrollingPreferences::UpperBound.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 4837 of file AArch64TargetTransformInfo.cpp.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 4815 of file AArch64TargetTransformInfo.cpp.
References CostKind, and llvm::isa().
Referenced by getArithmeticInstrCost(), getCastInstrCost(), getExtractWithExtendCost(), and getIntrinsicInstrCost().
|
overridevirtual |
| 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::TargetTransformInfoImplBase.
Definition at line 4828 of file AArch64TargetTransformInfo.cpp.
References CostKind.
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 156 of file AArch64TargetTransformInfo.h.
| bool AArch64TTIImpl::hasKnownLowerThroughputFromSchedulingModel | ( | unsigned | Opcode1, |
| unsigned | Opcode2 ) const |
Check whether Opcode1 has less throughput according to the scheduling model than Opcode2.
Definition at line 5312 of file AArch64TargetTransformInfo.cpp.
References assert(), llvm::MCSchedModel::getReciprocalThroughput(), llvm::MCSchedClassDesc::isValid(), llvm::MCSchedClassDesc::isVariant(), and TII.
Referenced by getCmpSelInstrCost().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 3510 of file AArch64TargetTransformInfo.cpp.
References constructSVEIntrinsicInfo(), llvm::BasicTTIImplBase< AArch64TTIImpl >::DL, I, II, instCombineConvertFromSVBool(), instCombineDMB(), instCombineInStreamingMode(), instCombineLD1GatherIndex(), instCombineMaxMinNM(), instCombinePTrue(), instCombineRDFFR(), instCombineSMECntsd(), instCombineST1ScatterIndex(), instCombineSVEAnd(), instCombineSVECmpNE(), instCombineSVECntElts(), instCombineSVECondLast(), instCombineSVEDup(), instCombineSVEDupqLane(), instCombineSVEDupX(), instCombineSVEInsr(), instCombineSVELast(), instCombineSVELD1(), instCombineSVEOrr(), instCombineSVEPairwiseAddLong(), instCombineSVEPTest(), instCombineSVESDIV(), instCombineSVESel(), instCombineSVESrshl(), instCombineSVEST1(), instCombineSVETBL(), instCombineSVEUMin(), instCombineSVEUnpack(), instCombineSVEUxt(), instCombineSVEUzp1(), instCombineSVEVectorAdd(), instCombineSVEVectorBinOp(), instCombineSVEVectorFAdd(), instCombineSVEVectorFAddU(), instCombineSVEVectorFSub(), instCombineSVEVectorFSubU(), instCombineSVEVectorFuseMulAddSub(), instCombineSVEVectorMlaU(), instCombineSVEVectorSub(), instCombineSVEZip(), instCombineWhilelo(), instCombineXorSVECmpCC(), and simplifySVEIntrinsic().
Definition at line 336 of file AArch64TargetTransformInfo.h.
References assert(), and llvm::is_contained().
Referenced by isLegalMaskedCompressStore().
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 296 of file AArch64TargetTransformInfo.h.
Referenced by getGatherScatterOpCost(), isLegalMaskedGatherScatter(), isLegalMaskedLoadStore(), and isLegalToVectorizeReduction().
| bool AArch64TTIImpl::isExtPartOfAvgExpr | ( | const Instruction * | ExtUser, |
| Type * | Dst, | ||
| Type * | Src ) const |
Definition at line 3840 of file AArch64TargetTransformInfo.cpp.
References llvm::Add, llvm::cast(), llvm::BasicTTIImplBase< AArch64TTIImpl >::DL, llvm::dyn_cast_or_null(), llvm::Instruction::getOpcode(), llvm::Value::hasOneUse(), llvm::PatternMatch::m_c_Add(), llvm::PatternMatch::m_Instruction(), llvm::PatternMatch::m_One(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::m_ZExtOrSExt(), and llvm::PatternMatch::match().
Referenced by getCastInstrCost().
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 383 of file AArch64TargetTransformInfo.h.
References llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getFixedValue(), llvm::Type::getScalarSizeInBits(), and llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isScalable().
Referenced by getShuffleCost().
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 349 of file AArch64TargetTransformInfo.h.
References llvm::isa(), and isElementTypeLegalForCompressStore().
Referenced by getMaskedMemoryOpCost().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 5911 of file AArch64TargetTransformInfo.cpp.
References useNeonVector().
Referenced by getMaskedMemoryOpCost().
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 375 of file AArch64TargetTransformInfo.h.
References isLegalMaskedGatherScatter().
Definition at line 362 of file AArch64TargetTransformInfo.h.
References llvm::dyn_cast(), and isElementTypeLegalForScalableVector().
Referenced by getGatherScatterOpCost(), isLegalMaskedGather(), and isLegalMaskedScatter().
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 324 of file AArch64TargetTransformInfo.h.
References isLegalMaskedLoadStore().
Definition at line 311 of file AArch64TargetTransformInfo.h.
References llvm::isa(), and isElementTypeLegalForScalableVector().
Referenced by isLegalMaskedLoad(), and isLegalMaskedStore().
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 379 of file AArch64TargetTransformInfo.h.
References isLegalMaskedGatherScatter().
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 330 of file AArch64TargetTransformInfo.h.
References isLegalMaskedLoadStore().
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 435 of file AArch64TargetTransformInfo.h.
References llvm::TargetTransformInfoImplBase::isLegalNTLoad(), and isLegalNTStoreLoad().
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 428 of file AArch64TargetTransformInfo.h.
References llvm::TargetTransformInfoImplBase::isLegalNTStore(), and isLegalNTStoreLoad().
|
inline |
Definition at line 401 of file AArch64TargetTransformInfo.h.
References llvm::dyn_cast(), and llvm::isPowerOf2_64().
Referenced by isLegalNTLoad(), and isLegalNTStore().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 6437 of file AArch64TargetTransformInfo.cpp.
References llvm::Add, llvm::AddChainWithSubs, llvm::And, llvm::AnyOf, llvm::FAdd, llvm::FAddChainWithSubs, llvm::FindLast, llvm::FMax, llvm::FMin, llvm::FMulAdd, llvm::FSub, llvm::RecurrenceDescriptor::getRecurrenceKind(), llvm::RecurrenceDescriptor::getRecurrenceType(), isElementTypeLegalForScalableVector(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isScalable(), llvm::Or, llvm::SMax, llvm::SMin, llvm::Sub, llvm::UMax, llvm::UMin, and llvm::Xor.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 7434 of file AArch64TargetTransformInfo.cpp.
References llvm::TargetTransformInfo::LSRCost::AddRecCost, EnableLSRCostOpt, llvm::TargetTransformInfo::LSRCost::ImmCost, llvm::TargetTransformInfo::LSRCost::Insns, llvm::TargetTransformInfoImplBase::isLSRCostLess(), llvm::TargetTransformInfo::LSRCost::NumBaseAdds, llvm::TargetTransformInfo::LSRCost::NumIVMuls, llvm::TargetTransformInfo::LSRCost::NumRegs, llvm::TargetTransformInfo::LSRCost::ScaleCost, and llvm::TargetTransformInfo::LSRCost::SetupCost.
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 276 of file AArch64TargetTransformInfo.cpp.
References F.
|
overridevirtual |
Check if sinking I's operands to I's basic block is profitable, because the operands can be folded into a target instruction, e.g.
shufflevectors extracts and/or sext/zext can be folded into (u,s)subl(2).
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 7601 of file AArch64TargetTransformInfo.cpp.
References AbstractManglingParser< Derived, Alloc >::Ops, llvm::any_of(), areExtractExts(), areExtractShuffleVectors(), areOperandsOfVmullHighP64(), llvm::cast(), Cond, llvm::BasicTTIImplBase< AArch64TTIImpl >::DL, llvm::dyn_cast(), getCondition(), llvm::APInt::getHighBitsSet(), llvm::Instruction::getOpcode(), llvm::User::getOperand(), llvm::User::getOperandUse(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), I, II, llvm::isa(), isFNeg(), isSplatShuffle(), llvm::ConstantInt::isZero(), llvm::PatternMatch::m_And(), llvm::PatternMatch::m_c_And(), llvm::PatternMatch::m_c_BinOp(), llvm::PatternMatch::m_c_Or(), llvm::PatternMatch::m_ConstantInt(), llvm::PatternMatch::m_InsertElt(), llvm::PatternMatch::m_Instruction(), llvm::PatternMatch::m_Load(), llvm::MIPatternMatch::m_Not(), llvm::MIPatternMatch::m_OneUse(), llvm::PatternMatch::m_SExt(), llvm::PatternMatch::m_Shift(), llvm::PatternMatch::m_Shuffle(), llvm::PatternMatch::m_Specific(), llvm::PatternMatch::m_Value(), llvm::MIPatternMatch::m_ZeroInt(), llvm::PatternMatch::m_ZExtOrSExt(), llvm::MaskedValueIsZero(), llvm::PatternMatch::match(), shouldSinkVectorOfPtrs(), and shouldSinkVScale().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 7341 of file AArch64TargetTransformInfo.cpp.
References SVEPreferFixedOverScalableIfEqualCost.
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 492 of file AArch64TargetTransformInfo.h.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 5490 of file AArch64TargetTransformInfo.cpp.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 7351 of file AArch64TargetTransformInfo.cpp.
References llvm::LoopBase< BlockT, LoopT >::blocks(), containsDecreasingPointers(), llvm::Disabled, llvm::LoopVectorizationLegality::getDominatorTree(), llvm::LoopVectorizationLegality::getFixedOrderRecurrences(), llvm::LoopVectorizationLegality::getLoop(), llvm::LoopVectorizationLegality::getPredicatedScalarEvolution(), llvm::LoopVectorizationLegality::getReductionVars(), llvm::InterleavedAccessInfo::hasGroups(), llvm::TailFoldingInfo::IAI, llvm::TailFoldingInfo::LVL, llvm::Recurrences, llvm::Reductions, llvm::Reverse, llvm::Simple, llvm::MapVector< KeyT, ValueT, MapType, VectorType, N >::size(), llvm::SmallPtrSetImplBase::size(), SVETailFoldInsnThreshold, and TailFoldingOptionLoc.
|
overridevirtual |
See if I should be considered for address type promotion.
We check if I is a sext with right type and used in memory accesses. If it used in a "complex" getelementptr, we allow it to be promoted without finding other sext instructions that sign extended the same initial value. A getelementptr is considered as "complex" if it has more than 2 operands.
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 6410 of file AArch64TargetTransformInfo.cpp.
References llvm::dyn_cast(), llvm::Type::getInt64Ty(), I, and llvm::isa().
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 460 of file AArch64TargetTransformInfo.h.
References II.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 371 of file AArch64TargetTransformInfo.cpp.
References assert(), llvm::TargetTransformInfo::RGK_FixedWidthVector, llvm::TargetTransformInfo::RGK_ScalableVector, and llvm::TargetTransformInfo::RGK_Scalar.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 7416 of file AArch64TargetTransformInfo.cpp.
References EnableOrLikeSelectOpt, I, llvm::isa(), and llvm::TargetTransformInfoImplBase::shouldTreatInstructionLikeSelect().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 3639 of file AArch64TargetTransformInfo.cpp.
References II.
|
inlineoverridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 483 of file AArch64TargetTransformInfo.h.
Definition at line 5633 of file AArch64TargetTransformInfo.cpp.
References llvm::isa().
Referenced by getGatherScatterOpCost(), getMaskedMemoryOpCost(), getMemoryOpCost(), and isLegalMaskedExpandLoad().