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

Methods

ConstraintInfo()

Description

Default constructor.

Declared at: llvm/include/llvm/IR/InlineAsm.h:164

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

Description

Whether this constraint corresponds to an argument.

Declared at: llvm/include/llvm/IR/InlineAsm.h:176

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)

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