17 #ifndef LLVM_LIB_TARGET_AARCH64_AARCH64TARGETTRANSFORMINFO_H
18 #define LLVM_LIB_TARGET_AARCH64_AARCH64TARGETTRANSFORMINFO_H
39 unsigned getScalarizationOverhead(
Type *Ty,
bool Insert,
bool Extract);
44 enum MemIntrinsicType {
45 VECTOR_LDST_TWO_ELEMENTS,
46 VECTOR_LDST_THREE_ELEMENTS,
47 VECTOR_LDST_FOUR_ELEMENTS
53 TLI(ST->getTargetLowering()) {}
59 :
BaseT(std::move(static_cast<
BaseT &>(Arg))), ST(std::move(Arg.ST)),
60 TLI(std::move(Arg.TLI)) {}
104 unsigned Opcode,
Type *Ty,
AArch64TTIImpl(AArch64TTIImpl &&Arg)
AArch64TTIImpl(const AArch64TTIImpl &Arg)
unsigned getInterleavedMemoryOpCost(unsigned Opcode, Type *VecTy, unsigned Factor, ArrayRef< unsigned > Indices, unsigned Alignment, unsigned AddressSpace)
TTI::PopcntSupportKind getPopcntSupport(unsigned TyWidth)
Base class which can be used to help build a TTI implementation.
unsigned getMaxInterleaveFactor(unsigned VF)
unsigned getCmpSelInstrCost(unsigned Opcode, Type *ValTy, Type *CondTy)
unsigned getAddressComputationCost(Type *Ty, bool IsComplex)
unsigned getCastInstrCost(unsigned Opcode, Type *Dst, Type *Src)
unsigned getMemoryOpCost(unsigned Opcode, Type *Src, unsigned Alignment, unsigned AddressSpace)
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory)...
bool getTgtMemIntrinsic(IntrinsicInst *Inst, MemIntrinsicInfo &Info)
Value * getOrCreateResultFromMemIntrinsic(IntrinsicInst *Inst, Type *ExpectedType)
unsigned getRegisterBitWidth(bool Vector)
The instances of the Type class are immutable: once they are created, they are never changed...
This file provides a helper that implements much of the TTI interface in terms of the target-independ...
AArch64TTIImpl(const AArch64TargetMachine *TM, Function &F)
unsigned getCostOfKeepingLiveOverCall(ArrayRef< Type * > Tys)
Class for arbitrary precision integers.
unsigned getNumberOfRegisters(bool Vector)
unsigned getVectorInstrCost(unsigned Opcode, Type *Val, unsigned Index)
void getUnrollingPreferences(Loop *L, TTI::UnrollingPreferences &UP)
LLVM Value Representation.
static const Function * getParent(const Value *V)
unsigned getIntImmCost(int64_t Val)
Calculate the cost of materializing a 64-bit value.
unsigned 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)
Information about a load/store intrinsic defined by the target.
IntrinsicInst - A useful wrapper class for inspecting calls to intrinsic functions.
This file describes how to lower LLVM code to machine code.