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) {
75 uint64_t StartingOffset = 0);
117 bool *AllowDifferingSizes =
nullptr);
Return a value (possibly void), from a function.
A parsed version of the target data layout string in and methods for querying it. ...
ISD::CondCode getICmpCondCode(ICmpInst::Predicate Pred)
getICmpCondCode - Return the ISD condition code corresponding to the given LLVM IR integer condition ...
Type
MessagePack types as defined in the standard, with the exception of Integer being divided into a sign...
This class represents lattice values for constants.
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...
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
This class defines information used to lower LLVM code to legal SelectionDAG operators that the targe...
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.
std::vector< ConstraintInfo > ConstraintInfoVector
This base class for TargetLowering contains the SelectionDAG-independent parts that can be used from ...
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...
Establish a view to a call site for examination.
LLVM Value Representation.
Primary interface to the complete machine description for the target machine.
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.