LLVM
8.0.1
|
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. More... | |
bool | isMatchingInputConstraint () const |
Return true of this is an input operand that is a matching constraint like "4". More... | |
unsigned | getMatchedOperand () const |
If this is an input matching constraint, this method returns the output operand it matches. More... | |
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. More... | |
ConstraintInfo ()=default | |
Default constructor. More... | |
bool | Parse (StringRef Str, ConstraintInfoVector &ConstraintsSoFar) |
Parse - Analyze the specified string (e.g. More... | |
void | selectAlternative (unsigned index) |
selectAlternative - Point this constraint to the alternative constraint indicated by the index. More... | |
Public Attributes | |
std::string | ConstraintCode |
This contains the actual string for the code, like "m". More... | |
TargetLowering::ConstraintType | ConstraintType = TargetLowering::C_Unknown |
Information about the constraint code, e.g. More... | |
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. More... | |
MVT | ConstraintVT = MVT::Other |
The ValueType for the operand value. More... | |
Public Attributes inherited from llvm::InlineAsm::ConstraintInfo | |
ConstraintPrefix | Type = isInput |
Type - The basic type of the constraint: input/output/clobber. More... | |
bool | isEarlyClobber = false |
isEarlyClobber - "&": output operand writes result before inputs are all read. More... | |
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. More... | |
bool | isCommutative = false |
isCommutative - This is set to true for a constraint that is commutative with the next operand. More... | |
bool | isIndirect = false |
isIndirect - True if this operand is an indirect operand. More... | |
ConstraintCodeVector | Codes |
Code - The constraint code, either the register name (in braces) or the constraint letter/number. More... | |
bool | isMultipleAlternative = false |
isMultipleAlternative - '|': has multiple-alternative constraints. More... | |
SubConstraintInfoVector | multipleAlternatives |
multipleAlternatives - If there are multiple alternative constraints, this array will contain them. More... | |
unsigned | currentAlternativeIndex = 0 |
The currently selected alternative constraint index. More... | |
This contains information for each constraint that we are lowering.
Definition at line 3547 of file TargetLowering.h.
|
inline |
Copy constructor for copying from a ConstraintInfo.
Definition at line 3566 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 3303 of file TargetLowering.cpp.
References assert().
bool TargetLowering::AsmOperandInfo::isMatchingInputConstraint | ( | ) | const |
Return true of this is an input operand that is a matching constraint like "4".
Definition at line 3296 of file TargetLowering.cpp.
References assert().
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 3560 of file TargetLowering.h.
Referenced by llvm::TargetLowering::ComputeConstraintToUse(), llvm::SparcTargetLowering::getSingleConstraintMatchWeight(), llvm::LanaiTargetLowering::getSingleConstraintMatchWeight(), llvm::AVRTargetLowering::getSingleConstraintMatchWeight(), llvm::ARMTargetLowering::getSingleConstraintMatchWeight(), llvm::SystemZTargetLowering::getSingleConstraintMatchWeight(), llvm::PPCTargetLowering::getSingleConstraintMatchWeight(), llvm::X86TargetLowering::getSingleConstraintMatchWeight(), llvm::TargetLowering::getSingleConstraintMatchWeight(), IsOperandAMemoryOperand(), 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 3551 of file TargetLowering.h.
Referenced by ChooseConstraint(), llvm::TargetLowering::ComputeConstraintToUse(), 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 3555 of file TargetLowering.h.
Referenced by ChooseConstraint(), llvm::TargetLowering::ComputeConstraintToUse(), findMatchingInlineAsmOperand(), IsNonLocalValue(), and IsOperandAMemoryOperand().
MVT llvm::TargetLowering::AsmOperandInfo::ConstraintVT = MVT::Other |
The ValueType for the operand value.
Definition at line 3563 of file TargetLowering.h.
Referenced by llvm::TargetLowering::ComputeConstraintToUse(), and llvm::TargetLowering::ParseConstraints().