14 #ifndef LLVM_CODEGEN_ANALYSIS_H
15 #define LLVM_CODEGEN_ANALYSIS_H
29 class MachineBasicBlock;
30 class MachineFunction;
31 class TargetLoweringBase;
55 const unsigned *Indices,
56 const unsigned *IndicesEnd,
57 unsigned CurIndex = 0);
61 unsigned CurIndex = 0) {
73 SmallVectorImpl<EVT> &ValueVTs,
74 SmallVectorImpl<uint64_t> *
Offsets =
nullptr,
75 uint64_t StartingOffset = 0);
83 const TargetLowering &TLI);
115 const ReturnInst *
Ret,
116 const TargetLoweringBase &TLI,
117 bool *AllowDifferingSizes =
nullptr);
123 const ReturnInst *
Ret,
124 const TargetLoweringBase &TLI);
133 DenseMap<const MachineBasicBlock *, int>
ISD::CondCode getICmpCondCode(ICmpInst::Predicate Pred)
getICmpCondCode - Return the ISD condition code corresponding to the given LLVM IR integer condition ...
bool canBeOmittedFromSymbolTable(const GlobalValue *GV)
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...
ISD::CondCode getFCmpCondCode(FCmpInst::Predicate Pred)
getFCmpCondCode - Return the ISD condition code corresponding to the given LLVM IR floating-point con...
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...
bool hasInlineAsmMemConstraint(InlineAsm::ConstraintInfoVector &CInfos, const TargetLowering &TLI)
hasInlineAsmMemConstraint - Return true if the inline asm instruction being processed uses a memory '...
The instances of the Type class are immutable: once they are created, they are never changed...
Predicate
This enumeration lists the possible predicates for CmpInst subclasses.
bool isInTailCallPosition(ImmutableCallSite CS, const TargetMachine &TM)
Test if the given instruction is in a position to be optimized with a tail-call.
DenseMap< const MachineBasicBlock *, int > getFuncletMembership(const MachineFunction &MF)
ISD::CondCode getFCmpCodeWithoutNaN(ISD::CondCode CC)
getFCmpCodeWithoutNaN - Given an ISD condition code comparing floats, return the equivalent code if w...
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...
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.
std::vector< ConstraintInfo > ConstraintInfoVector