LLVM 22.0.0git
llvm::TargetLowering::AsmOperandInfo Struct Reference

This contains information for each constraint that we are lowering. More...

#include "llvm/CodeGen/TargetLowering.h"

Inheritance diagram for llvm::TargetLowering::AsmOperandInfo:
[legend]

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.
ValueCallOperandVal = 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.

Detailed Description

This contains information for each constraint that we are lowering.

Definition at line 5169 of file TargetLowering.h.

Constructor & Destructor Documentation

◆ AsmOperandInfo()

llvm::TargetLowering::AsmOperandInfo::AsmOperandInfo ( InlineAsm::ConstraintInfo Info)
inline

Copy constructor for copying from a ConstraintInfo.

Definition at line 5188 of file TargetLowering.h.

References llvm::InlineAsm::ConstraintInfo::ConstraintInfo(), Info, and llvm::move().

Member Function Documentation

◆ getMatchedOperand()

unsigned TargetLowering::AsmOperandInfo::getMatchedOperand ( ) const

If this is an input matching constraint, this method returns the output operand it matches.

Definition at line 5918 of file TargetLowering.cpp.

References assert(), and ConstraintCode.

◆ isMatchingInputConstraint()

bool TargetLowering::AsmOperandInfo::isMatchingInputConstraint ( ) const

Return true of this is an input operand that is a matching constraint like "4".

Definition at line 5911 of file TargetLowering.cpp.

References assert(), and ConstraintCode.

Member Data Documentation

◆ CallOperandVal

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 5182 of file TargetLowering.h.

◆ ConstraintCode

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 5173 of file TargetLowering.h.

Referenced by getMatchedOperand(), and isMatchingInputConstraint().

◆ ConstraintType

TargetLowering::ConstraintType llvm::TargetLowering::AsmOperandInfo::ConstraintType = TargetLowering::C_Unknown

Information about the constraint code, e.g.

Register, RegisterClass, Memory, Other, Unknown.

Definition at line 5177 of file TargetLowering.h.

◆ ConstraintVT

MVT llvm::TargetLowering::AsmOperandInfo::ConstraintVT = MVT::Other

The ValueType for the operand value.

Definition at line 5185 of file TargetLowering.h.


The documentation for this struct was generated from the following files: