|
LLVM
4.0.0
|
#include <AArch64TargetTransformInfo.h>
Additional Inherited Members | |
Protected Types inherited from llvm::TargetTransformInfoImplBase | |
| typedef TargetTransformInfo | TTI |
Protected Member Functions inherited from llvm::BasicTTIImplBase< AArch64TTIImpl > | |
| BasicTTIImplBase (const TargetMachine *TM, const DataLayout &DL) | |
Protected Member Functions inherited from llvm::TargetTransformInfoImplCRTPBase< AArch64TTIImpl > | |
| TargetTransformInfoImplCRTPBase (const DataLayout &DL) | |
Protected Member Functions inherited from llvm::TargetTransformInfoImplBase | |
| TargetTransformInfoImplBase (const DataLayout &DL) | |
| unsigned | minRequiredElementSize (const Value *Val, bool &isSigned) |
| bool | isStridedAccess (const SCEV *Ptr) |
| const SCEVConstant * | getConstantStrideStep (ScalarEvolution *SE, const SCEV *Ptr) |
| bool | isConstantStridedAccessLessThan (ScalarEvolution *SE, const SCEV *Ptr, int64_t MergeDistance) |
Protected Attributes inherited from llvm::TargetTransformInfoImplBase | |
| const DataLayout & | DL |
Definition at line 29 of file AArch64TargetTransformInfo.h.
|
inlineexplicit |
Definition at line 51 of file AArch64TargetTransformInfo.h.
|
inline |
Definition at line 71 of file AArch64TargetTransformInfo.h.
| int AArch64TTIImpl::getAddressComputationCost | ( | Type * | Ty, |
| ScalarEvolution * | SE, | ||
| const SCEV * | Ptr | ||
| ) |
Definition at line 420 of file AArch64TargetTransformInfo.cpp.
References llvm::TargetTransformInfoImplBase::isConstantStridedAccessLessThan(), and llvm::Type::isVectorTy().
| int AArch64TTIImpl::getArithmeticInstrCost | ( | unsigned | Opcode, |
| Type * | Ty, | ||
| TTI::OperandValueKind | Opd1Info = TTI::OK_AnyValue, |
||
| TTI::OperandValueKind | Opd2Info = TTI::OK_AnyValue, |
||
| TTI::OperandValueProperties | Opd1PropInfo = TTI::OP_None, |
||
| TTI::OperandValueProperties | Opd2PropInfo = TTI::OP_None, |
||
| ArrayRef< const Value * > | Args = ArrayRef<const Value *>() |
||
| ) |
Definition at line 374 of file AArch64TargetTransformInfo.cpp.
References llvm::MCID::Add, llvm::ISD::ADD, llvm::ISD::AND, llvm::TargetTransformInfoImplBase::DL, llvm::BasicTTIImplBase< AArch64TTIImpl >::getArithmeticInstrCost(), llvm::TargetLoweringBase::getTypeLegalizationCost(), llvm::TargetLoweringBase::InstructionOpcodeToISD(), llvm::AArch64CC::LT, llvm::ISD::MUL, llvm::TargetTransformInfo::OK_UniformConstantValue, llvm::TargetTransformInfo::OP_None, llvm::TargetTransformInfo::OP_PowerOf2, llvm::ISD::OR, llvm::ISD::SDIV, llvm::MCID::Select, and llvm::ISD::XOR.
| unsigned AArch64TTIImpl::getCacheLineSize | ( | ) |
Definition at line 631 of file AArch64TargetTransformInfo.cpp.
References llvm::AArch64Subtarget::getCacheLineSize().
Definition at line 179 of file AArch64TargetTransformInfo.cpp.
References assert(), llvm::ConvertCostTableLookup(), llvm::TargetTransformInfoImplBase::DL, llvm::ISD::FP_TO_SINT, llvm::ISD::FP_TO_UINT, llvm::BasicTTIImplBase< AArch64TTIImpl >::getCastInstrCost(), llvm::EVT::getSimpleVT(), llvm::TargetLoweringBase::getValueType(), llvm::TargetLoweringBase::InstructionOpcodeToISD(), llvm::EVT::isSimple(), llvm::ISD::SIGN_EXTEND, llvm::ISD::SINT_TO_FP, llvm::ISD::TRUNCATE, llvm::ISD::UINT_TO_FP, llvm::MVT::v16f32, llvm::MVT::v16i16, llvm::MVT::v16i32, llvm::MVT::v16i8, llvm::MVT::v2f32, llvm::MVT::v2f64, llvm::MVT::v2i16, llvm::MVT::v2i32, llvm::MVT::v2i64, llvm::MVT::v2i8, llvm::MVT::v4f32, llvm::MVT::v4i16, llvm::MVT::v4i32, llvm::MVT::v4i64, llvm::MVT::v4i8, llvm::MVT::v8f32, llvm::MVT::v8i16, llvm::MVT::v8i32, llvm::MVT::v8i64, llvm::MVT::v8i8, and llvm::ISD::ZERO_EXTEND.
Referenced by getExtractWithExtendCost().
Definition at line 438 of file AArch64TargetTransformInfo.cpp.
References llvm::ConvertCostTableLookup(), llvm::TargetTransformInfoImplBase::DL, llvm::BasicTTIImplBase< AArch64TTIImpl >::getCmpSelInstrCost(), llvm::EVT::getSimpleVT(), llvm::TargetLoweringBase::getValueType(), llvm::TargetLoweringBase::InstructionOpcodeToISD(), llvm::EVT::isSimple(), llvm::Type::isVectorTy(), llvm::ISD::SELECT, llvm::MVT::v16i1, llvm::MVT::v16i16, llvm::MVT::v16i32, llvm::MVT::v16i64, llvm::MVT::v4i1, llvm::MVT::v4i64, llvm::MVT::v8i1, llvm::MVT::v8i32, and llvm::MVT::v8i64.
Definition at line 520 of file AArch64TargetTransformInfo.cpp.
References getMemoryOpCost(), I, llvm::SPII::Load, and llvm::SPII::Store.
| int AArch64TTIImpl::getExtractWithExtendCost | ( | unsigned | Opcode, |
| Type * | Dst, | ||
| VectorType * | VecTy, | ||
| unsigned | Index | ||
| ) |
Definition at line 294 of file AArch64TargetTransformInfo.cpp.
References assert(), llvm::TargetTransformInfoImplBase::DL, getCastInstrCost(), llvm::SequentialType::getElementType(), llvm::TargetLoweringBase::getTypeLegalizationCost(), llvm::TargetLoweringBase::getValueType(), getVectorInstrCost(), llvm::TargetLoweringBase::isTypeLegal(), and llvm_unreachable.
| int AArch64TTIImpl::getInterleavedMemoryOpCost | ( | unsigned | Opcode, |
| Type * | VecTy, | ||
| unsigned | Factor, | ||
| ArrayRef< unsigned > | Indices, | ||
| unsigned | Alignment, | ||
| unsigned | AddressSpace | ||
| ) |
Definition at line 498 of file AArch64TargetTransformInfo.cpp.
References assert(), llvm::TargetTransformInfoImplBase::DL, llvm::VectorType::get(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getInterleavedMemoryOpCost(), llvm::Type::getScalarType(), llvm::DataLayout::getTypeSizeInBits(), and llvm::Type::getVectorNumElements().
| int AArch64TTIImpl::getIntImmCost | ( | int64_t | Val | ) |
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 26 of file AArch64TargetTransformInfo.cpp.
References llvm::countLeadingZeros(), and llvm::AArch64_AM::isLogicalImmediate().
Referenced by getIntImmCost().
Calculate the cost of materializing the given constant.
Definition at line 40 of file AArch64TargetTransformInfo.cpp.
References llvm::APInt::ashr(), assert(), getIntImmCost(), llvm::Type::getPrimitiveSizeInBits(), llvm::APInt::getSExtValue(), llvm::Type::isIntegerTy(), llvm::APInt::sext(), and llvm::APInt::sextOrTrunc().
Definition at line 64 of file AArch64TargetTransformInfo.cpp.
References llvm::MCID::Add, llvm::APIntOps::And(), assert(), llvm::Call, getIntImmCost(), llvm::Type::getPrimitiveSizeInBits(), llvm::Type::isIntegerTy(), llvm::SPII::Load, llvm::APIntOps::Or(), llvm::MipsISD::Ret, llvm::MCID::Select, llvm::SPII::Store, llvm::TargetTransformInfo::TCC_Basic, llvm::TargetTransformInfo::TCC_Free, and llvm::APIntOps::Xor().
| int AArch64TTIImpl::getIntImmCost | ( | Intrinsic::ID | IID, |
| unsigned | Idx, | ||
| const APInt & | Imm, | ||
| Type * | Ty | ||
| ) |
Definition at line 130 of file AArch64TargetTransformInfo.cpp.
References assert(), llvm::APInt::getBitWidth(), getIntImmCost(), llvm::Type::getPrimitiveSizeInBits(), llvm::APInt::getSExtValue(), llvm::Type::isIntegerTy(), llvm::TargetTransformInfo::TCC_Basic, and llvm::TargetTransformInfo::TCC_Free.
Definition at line 532 of file AArch64TargetTransformInfo.cpp.
References llvm::AArch64Subtarget::getMaxInterleaveFactor().
| unsigned AArch64TTIImpl::getMaxPrefetchIterationsAhead | ( | ) |
Definition at line 643 of file AArch64TargetTransformInfo.cpp.
References llvm::AArch64Subtarget::getMaxPrefetchIterationsAhead().
| int AArch64TTIImpl::getMemoryOpCost | ( | unsigned | Opcode, |
| Type * | Src, | ||
| unsigned | Alignment, | ||
| unsigned | AddressSpace | ||
| ) |
Definition at line 469 of file AArch64TargetTransformInfo.cpp.
References llvm::TargetTransformInfoImplBase::DL, llvm::TargetLoweringBase::getTypeLegalizationCost(), llvm::Type::getVectorElementType(), llvm::Type::getVectorNumElements(), llvm::Type::isIntegerTy(), llvm::AArch64Subtarget::isMisaligned128StoreSlow(), llvm::Type::isVectorTy(), llvm::AArch64CC::LT, and llvm::SPII::Store.
Referenced by getCostOfKeepingLiveOverCall().
| unsigned AArch64TTIImpl::getMinPrefetchStride | ( | ) |
Definition at line 639 of file AArch64TargetTransformInfo.cpp.
References llvm::AArch64Subtarget::getMinPrefetchStride().
Definition at line 73 of file AArch64TargetTransformInfo.h.
References llvm::AArch64Subtarget::hasNEON().
| Value * AArch64TTIImpl::getOrCreateResultFromMemIntrinsic | ( | IntrinsicInst * | Inst, |
| Type * | ExpectedType | ||
| ) |
Definition at line 551 of file AArch64TargetTransformInfo.cpp.
References llvm::IRBuilder< T, Inserter >::CreateInsertValue(), llvm::dyn_cast(), llvm::UndefValue::get(), llvm::CallInst::getArgOperand(), llvm::StructType::getElementType(), llvm::IntrinsicInst::getIntrinsicID(), llvm::CallInst::getNumArgOperands(), llvm::StructType::getNumElements(), llvm::Value::getType(), i, and L.
| TargetTransformInfo::PopcntSupportKind AArch64TTIImpl::getPopcntSupport | ( | unsigned | TyWidth | ) |
Definition at line 171 of file AArch64TargetTransformInfo.cpp.
References assert(), llvm::isPowerOf2_32(), llvm::TargetTransformInfo::PSK_FastHardware, and llvm::TargetTransformInfo::PSK_Software.
| unsigned AArch64TTIImpl::getPrefetchDistance | ( | ) |
Definition at line 635 of file AArch64TargetTransformInfo.cpp.
References llvm::AArch64Subtarget::getPrefetchDistance().
Definition at line 82 of file AArch64TargetTransformInfo.h.
References llvm::AArch64Subtarget::hasNEON().
| bool AArch64TTIImpl::getTgtMemIntrinsic | ( | IntrinsicInst * | Inst, |
| MemIntrinsicInfo & | Info | ||
| ) |
Definition at line 587 of file AArch64TargetTransformInfo.cpp.
References llvm::CallInst::getArgOperand(), llvm::IntrinsicInst::getIntrinsicID(), llvm::CallInst::getNumArgOperands(), llvm::MemIntrinsicInfo::IsSimple, llvm::MemIntrinsicInfo::MatchingId, llvm::MemIntrinsicInfo::NumMemRefs, llvm::MemIntrinsicInfo::PtrVal, llvm::MemIntrinsicInfo::ReadMem, and llvm::MemIntrinsicInfo::WriteMem.
| void AArch64TTIImpl::getUnrollingPreferences | ( | Loop * | L, |
| TTI::UnrollingPreferences & | UP | ||
| ) |
Definition at line 536 of file AArch64TargetTransformInfo.cpp.
References llvm::LoopBase< N, M >::getLoopDepth(), llvm::BasicTTIImplBase< AArch64TTIImpl >::getUnrollingPreferences(), llvm::TargetTransformInfo::UnrollingPreferences::PartialOptSizeThreshold, and llvm::TargetTransformInfo::UnrollingPreferences::PartialThreshold.
Definition at line 349 of file AArch64TargetTransformInfo.cpp.
References assert(), llvm::TargetTransformInfoImplBase::DL, llvm::TargetLoweringBase::getTypeLegalizationCost(), llvm::AArch64Subtarget::getVectorInsertExtractBaseCost(), llvm::Type::isVectorTy(), and llvm::AArch64CC::LT.
Referenced by getExtractWithExtendCost().
1.8.6