Go to the documentation of this file.
13 #ifndef LLVM_CODEGEN_ANALYSIS_H
14 #define LLVM_CODEGEN_ANALYSIS_H
22 template <
typename T>
class SmallVectorImpl;
25 class MachineBasicBlock;
26 class MachineFunction;
27 class TargetLoweringBase;
48 const unsigned *Indices,
49 const unsigned *IndicesEnd,
50 unsigned CurIndex = 0);
54 unsigned CurIndex = 0) {
66 SmallVectorImpl<EVT> &ValueVTs,
67 SmallVectorImpl<uint64_t> *
Offsets =
nullptr,
72 SmallVectorImpl<EVT> &ValueVTs,
73 SmallVectorImpl<EVT> *MemVTs,
74 SmallVectorImpl<uint64_t> *
Offsets =
nullptr,
85 SmallVectorImpl<LLT> &ValueTys,
86 SmallVectorImpl<uint64_t> *
Offsets =
nullptr,
125 const ReturnInst *
Ret,
126 const TargetLoweringBase &TLI,
127 bool *AllowDifferingSizes =
nullptr);
133 const ReturnInst *
Ret,
134 const TargetLoweringBase &TLI);
136 DenseMap<const MachineBasicBlock *, int>
This is an optimization pass for GlobalISel generic memory operations.
ISD::CondCode getFCmpCondCode(FCmpInst::Predicate Pred)
getFCmpCondCode - Return the ISD condition code corresponding to the given LLVM IR floating-point con...
Predicate
This enumeration lists the possible predicates for CmpInst subclasses.
The instances of the Type class are immutable: once they are created, they are never changed.
unsigned ComputeLinearIndex(Type *Ty, const unsigned *Indices, const unsigned *IndicesEnd, unsigned CurIndex=0)
Compute the linearized index of a member in a nested aggregate/struct/array.
void ComputeValueVTs(const TargetLowering &TLI, const DataLayout &DL, Type *Ty, SmallVectorImpl< EVT > &ValueVTs, SmallVectorImpl< uint64_t > *Offsets=nullptr, uint64_t StartingOffset=0)
ComputeValueVTs - Given an LLVM IR type, compute a sequence of EVTs that represent all the individual...
ISD::CondCode getICmpCondCode(ICmpInst::Predicate Pred)
getICmpCondCode - Return the ISD condition code corresponding to the given LLVM IR integer condition ...
GlobalValue * ExtractTypeInfo(Value *V)
ExtractTypeInfo - Returns the type info, possibly bitcast, encoded in V.
bool returnTypeIsEligibleForTailCall(const Function *F, const Instruction *I, const ReturnInst *Ret, const TargetLoweringBase &TLI)
Test if given that the input instruction is in the tail call position if the return type or any attri...
CondCode
ISD::CondCode enum - These are ordered carefully to make the bitfields below work out,...
bool attributesPermitTailCall(const Function *F, const Instruction *I, const ReturnInst *Ret, const TargetLoweringBase &TLI, bool *AllowDifferingSizes=nullptr)
Test if given that the input instruction is in the tail call position, if there is an attribute misma...
MachineBasicBlock MachineBasicBlock::iterator DebugLoc DL
void computeValueLLTs(const DataLayout &DL, Type &Ty, SmallVectorImpl< LLT > &ValueTys, SmallVectorImpl< uint64_t > *Offsets=nullptr, uint64_t StartingOffset=0)
computeValueLLTs - Given an LLVM IR type, compute a sequence of LLTs that represent all the individua...
bool isInTailCallPosition(const CallBase &Call, const TargetMachine &TM)
Test if the given instruction is in a position to be optimized with a tail-call.
const char LLVMTargetMachineRef TM
DenseMap< const MachineBasicBlock *, int > getEHScopeMembership(const MachineFunction &MF)
ISD::CondCode getFCmpCodeWithoutNaN(ISD::CondCode CC)
getFCmpCodeWithoutNaN - Given an ISD condition code comparing floats, return the equivalent code if w...