struct InlineAsm::ConstraintInfo
Declaration
struct InlineAsm::ConstraintInfo { /* full declaration omitted */ };
Declared at: llvm/include/llvm/IR/InlineAsm.h:120
Member Variables
- public llvm::InlineAsm::ConstraintPrefix Type = isInput
- Type - The basic type of the constraint: input/output/clobber/label
- public bool isEarlyClobber = false
- isEarlyClobber - "&": output operand writes result before inputs are all read. This is only ever set for an output operand.
- public 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. "0"). The value is the constraint number that matches this one (for example, if this is constraint #0 and constraint #4 has the value "0", this will be 4).
- public bool isCommutative = false
- isCommutative - This is set to true for a constraint that is commutative with the next operand.
- public bool isIndirect = false
- isIndirect - True if this operand is an indirect operand. This means that the address of the source or destination is present in the call instruction, instead of it being returned or passed in explicitly. This is represented with a '*' in the asm string.
- public llvm::InlineAsm::ConstraintCodeVector Codes
- Code - The constraint code, either the register name (in braces) or the constraint letter/number.
- public bool isMultipleAlternative = false
- isMultipleAlternative - '|': has multiple-alternative constraints.
- public llvm::InlineAsm::SubConstraintInfoVector multipleAlternatives
- multipleAlternatives - If there are multiple alternative constraints, this array will contain them. Otherwise it will be empty.
- public unsigned int currentAlternativeIndex = 0
- The currently selected alternative constraint index.
Method Overview
- public ConstraintInfo()
- public bool Parse(llvm::StringRef Str, llvm::InlineAsm::ConstraintInfoVector & ConstraintsSoFar)
- public bool hasArg() const
- public bool hasMatchingInput() const
- public void selectAlternative(unsigned int index)
Methods
¶ConstraintInfo()
ConstraintInfo()
Description
Default constructor.
Declared at: llvm/include/llvm/IR/InlineAsm.h:164
¶bool Parse(llvm::StringRef Str,
llvm::InlineAsm::ConstraintInfoVector&
ConstraintsSoFar)
bool Parse(llvm::StringRef Str,
llvm::InlineAsm::ConstraintInfoVector&
ConstraintsSoFar)
Description
Parse - Analyze the specified string (e.g. "=*&{eax}") and fill in the fields in this structure. If the constraint string is not understood, return true, otherwise return false.
Declared at: llvm/include/llvm/IR/InlineAsm.h:169
Parameters
- llvm::StringRef Str
- llvm::InlineAsm::ConstraintInfoVector& ConstraintsSoFar
¶bool hasArg() const
bool hasArg() const
Description
Whether this constraint corresponds to an argument.
Declared at: llvm/include/llvm/IR/InlineAsm.h:176
¶bool hasMatchingInput() const
bool hasMatchingInput() const
Description
hasMatchingInput - Return true if this is an output constraint that has a matching input constraint.
Declared at: llvm/include/llvm/IR/InlineAsm.h:137
¶void selectAlternative(unsigned int index)
void selectAlternative(unsigned int index)
Description
selectAlternative - Point this constraint to the alternative constraint indicated by the index.
Declared at: llvm/include/llvm/IR/InlineAsm.h:173
Parameters
- unsigned int index