LLVM: llvm::TargetLowering::AsmOperandInfo Struct Reference (original) (raw)

This contains information for each constraint that we are lowering. More...

#include "[llvm/CodeGen/TargetLowering.h](TargetLowering%5F8h%5Fsource.html)"

Public Member Functions
AsmOperandInfo (InlineAsm::ConstraintInfo Info)
Copy constructor for copying from a ConstraintInfo.
LLVM_ABI bool isMatchingInputConstraint () const
Return true of this is an input operand that is a matching constraint like "4".
LLVM_ABI unsigned getMatchedOperand () const
If this is an input matching constraint, this method returns the output operand it matches.
Public Member Functions inherited from llvm::InlineAsm::ConstraintInfo
bool hasMatchingInput () const
hasMatchingInput - Return true if this is an output constraint that has a matching input constraint.
ConstraintInfo ()=default
Default constructor.
LLVM_ABI bool Parse (StringRef Str, ConstraintInfoVector &ConstraintsSoFar)
Parse - Analyze the specified string (e.g.
LLVM_ABI void selectAlternative (unsigned index)
selectAlternative - Point this constraint to the alternative constraint indicated by the index.
bool hasArg () const
Whether this constraint corresponds to an argument.
Public Attributes
std::string ConstraintCode
This contains the actual string for the code, like "m".
TargetLowering::ConstraintType ConstraintType = TargetLowering::C_Unknown
Information about the constraint code, e.g.
Value * CallOperandVal = nullptr
If this is the result output operand or a clobber, this is null, otherwise it is the incoming operand to the CallInst.
MVT ConstraintVT = MVT::Other
The ValueType for the operand value.
Public Attributes inherited from llvm::InlineAsm::ConstraintInfo
ConstraintPrefix Type = isInput
Type - The basic type of the constraint: input/output/clobber/label.
bool isEarlyClobber = false
isEarlyClobber - "&": output operand writes result before inputs are all read.
int MatchingInput = -1
MatchingInput - If this is not -1, this is an output constraint where an input constraint is required to match it (e.g.
bool isCommutative = false
isCommutative - This is set to true for a constraint that is commutative with the next operand.
bool isIndirect = false
isIndirect - True if this operand is an indirect operand.
ConstraintCodeVector Codes
Code - The constraint code, either the register name (in braces) or the constraint letter/number.
bool isMultipleAlternative = false
isMultipleAlternative - '|': has multiple-alternative constraints.
SubConstraintInfoVector multipleAlternatives
multipleAlternatives - If there are multiple alternative constraints, this array will contain them.
unsigned currentAlternativeIndex = 0
The currently selected alternative constraint index.

This contains information for each constraint that we are lowering.

Definition at line 5208 of file TargetLowering.h.

getMatchedOperand()

unsigned TargetLowering::AsmOperandInfo::getMatchedOperand ( ) const

isMatchingInputConstraint()

bool TargetLowering::AsmOperandInfo::isMatchingInputConstraint ( ) const

CallOperandVal

Value* llvm::TargetLowering::AsmOperandInfo::CallOperandVal = nullptr

If this is the result output operand or a clobber, this is null, otherwise it is the incoming operand to the CallInst.

This gets modified as the asm is processed.

Definition at line 5221 of file TargetLowering.h.

ConstraintCode

std::string llvm::TargetLowering::AsmOperandInfo::ConstraintCode

ConstraintType

ConstraintVT

MVT llvm::TargetLowering::AsmOperandInfo::ConstraintVT = MVT::Other


The documentation for this struct was generated from the following files: