17 #ifndef LLVM_LIB_TARGET_NVPTX_NVPTXTARGETTRANSFORMINFO_H 18 #define LLVM_LIB_TARGET_NVPTX_NVPTXTARGETTRANSFORMINFO_H 42 TLI(ST->getTargetLowering()) {}
56 unsigned AddrSpace)
const {
57 return Alignment >= ChainSizeInBytes;
61 unsigned AddrSpace)
const {
90 unsigned Opcode,
Type *Ty,
bool isLegalToVectorizeLoadChain(unsigned ChainSizeInBytes, unsigned Alignment, unsigned AddrSpace) const
This class represents lattice values for constants.
unsigned getFlatAddressSpace() const
NVPTXTTIImpl(const NVPTXTargetMachine *TM, const Function &F)
The main scalar evolution driver.
Base class which can be used to help build a TTI implementation.
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory)...
unsigned getOpcode() const
Returns a member of one of the enums like Instruction::Add.
bool hasBranchDivergence()
int 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 *>())
The instances of the Type class are immutable: once they are created, they are never changed...
bool isSourceOfDivergence(const Value *V)
unsigned getMinVectorRegisterBitWidth() const
This file provides a helper that implements much of the TTI interface in terms of the target-independ...
bool hasVolatileVariant(Instruction *I, unsigned AddrSpace)
bool areInlineCompatible(const Function *Caller, const Function *Callee) const
unsigned getInliningThresholdMultiplier()
unsigned getRegisterBitWidth(bool Vector) const
Represents a single loop in the control flow graph.
unsigned getNumberOfRegisters(bool Vector) const
void getUnrollingPreferences(Loop *L, ScalarEvolution &SE, TTI::UnrollingPreferences &UP)
bool isLegalToVectorizeStoreChain(unsigned ChainSizeInBytes, unsigned Alignment, unsigned AddrSpace) const
LLVM Value Representation.
static const Function * getParent(const Value *V)
constexpr char Args[]
Key for Kernel::Metadata::mArgs.
This file describes how to lower LLVM code to machine code.