|
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 564 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 539 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 6517 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 6491 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 5890 of file AArch64TargetTransformInfo.cpp.
References llvm::cast(), CostKind, getMemoryOpCost(), I, and llvm::TargetTransformInfo::TCK_RecipThroughput.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 7341 of file AArch64TargetTransformInfo.cpp.
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 6648 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 5799 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 5917 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_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 6465 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 556 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 6676 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 6296 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 6755 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 6291 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 7387 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 6945 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 6699 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 545 of file AArch64TargetTransformInfo.h.
References llvm::BasicTTIImplBase< AArch64TTIImpl >::getStoreMinimumVF(), llvm::Type::isIntegerTy(), and llvm::isPowerOf2_32().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 6339 of file AArch64TargetTransformInfo.cpp.
References llvm::CallBase::arg_size(), llvm::CallBase::getArgOperand(), and llvm::IntrinsicInst::getIntrinsicID().
|
overridevirtual |
Reimplemented from llvm::TargetTransformInfoImplBase.
Definition at line 6191 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 5904 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 6430 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 7428 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 7595 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 7335 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 7345 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 6403 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 7410 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().