|
LLVM 22.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. | |
| 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 5178 of file TargetLowering.h.
|
inline |
Copy constructor for copying from a ConstraintInfo.
Definition at line 5197 of file TargetLowering.h.
References llvm::InlineAsm::ConstraintInfo::ConstraintInfo(), Info, and llvm::move().
| unsigned TargetLowering::AsmOperandInfo::getMatchedOperand | ( | ) | const |
If this is an input matching constraint, this method returns the output operand it matches.
Definition at line 5915 of file TargetLowering.cpp.
References assert(), and ConstraintCode.
| bool TargetLowering::AsmOperandInfo::isMatchingInputConstraint | ( | ) | const |
Return true of this is an input operand that is a matching constraint like "4".
Definition at line 5908 of file TargetLowering.cpp.
References assert(), and ConstraintCode.
| 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 5191 of file TargetLowering.h.
| 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 5182 of file TargetLowering.h.
Referenced by getMatchedOperand(), and isMatchingInputConstraint().
| TargetLowering::ConstraintType llvm::TargetLowering::AsmOperandInfo::ConstraintType = TargetLowering::C_Unknown |
Information about the constraint code, e.g.
Register, RegisterClass, Memory, Other, Unknown.
Definition at line 5186 of file TargetLowering.h.
| MVT llvm::TargetLowering::AsmOperandInfo::ConstraintVT = MVT::Other |
The ValueType for the operand value.
Definition at line 5194 of file TargetLowering.h.