LLVM 20.0.0git
|
This contains information for each constraint that we are lowering. More...
#include "llvm/CodeGen/TargetLowering.h"
Public Member Functions | |
AsmOperandInfo (InlineAsm::ConstraintInfo Info) | |
Copy constructor for copying from a ConstraintInfo. | |
bool | isMatchingInputConstraint () const |
Return true of this is an input operand that is a matching constraint like "4". | |
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. | |
bool | Parse (StringRef Str, ConstraintInfoVector &ConstraintsSoFar) |
Parse - Analyze the specified string (e.g. | |
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 4968 of file TargetLowering.h.
|
inline |
Copy constructor for copying from a ConstraintInfo.
Definition at line 4987 of file TargetLowering.h.
unsigned TargetLowering::AsmOperandInfo::getMatchedOperand | ( | ) | const |
If this is an input matching constraint, this method returns the output operand it matches.
Definition at line 5681 of file TargetLowering.cpp.
References assert().
Referenced by llvm::InlineAsmLowering::lowerInlineAsm().
bool TargetLowering::AsmOperandInfo::isMatchingInputConstraint | ( | ) | const |
Return true of this is an input operand that is a matching constraint like "4".
Definition at line 5674 of file TargetLowering.cpp.
References assert().
Referenced by llvm::InlineAsmLowering::lowerInlineAsm().
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 4981 of file TargetLowering.h.
Referenced by llvm::TargetLowering::ComputeConstraintToUse(), computeConstraintToUse(), llvm::InlineAsmLowering::lowerInlineAsm(), and llvm::TargetLowering::ParseConstraints().
std::string llvm::TargetLowering::AsmOperandInfo::ConstraintCode |
This contains the actual string for the code, like "m".
TargetLowering picks the 'best' code from ConstraintInfo::Codes that most closely matches the operand.
Definition at line 4972 of file TargetLowering.h.
Referenced by llvm::TargetLowering::ComputeConstraintToUse(), computeConstraintToUse(), llvm::X86TargetLowering::LowerAsmOutputForConstraint(), llvm::InlineAsmLowering::lowerInlineAsm(), and llvm::TargetLowering::ParseConstraints().
TargetLowering::ConstraintType llvm::TargetLowering::AsmOperandInfo::ConstraintType = TargetLowering::C_Unknown |
Information about the constraint code, e.g.
Register, RegisterClass, Memory, Other, Unknown.
Definition at line 4976 of file TargetLowering.h.
Referenced by llvm::TargetLowering::ComputeConstraintToUse(), computeConstraintToUse(), and llvm::InlineAsmLowering::lowerInlineAsm().
MVT llvm::TargetLowering::AsmOperandInfo::ConstraintVT = MVT::Other |
The ValueType for the operand value.
Definition at line 4984 of file TargetLowering.h.
Referenced by llvm::TargetLowering::ComputeConstraintToUse(), computeConstraintToUse(), llvm::X86TargetLowering::LowerAsmOutputForConstraint(), and llvm::TargetLowering::ParseConstraints().