clang 22.0.0git
clang::TargetInfo::ConstraintInfo Struct Reference

#include "clang/Basic/TargetInfo.h"

Public Types

enum  {
  CI_None = 0x00 , CI_AllowsMemory = 0x01 , CI_AllowsRegister = 0x02 , CI_ReadWrite = 0x04 ,
  CI_HasMatchingInput = 0x08 , CI_ImmediateConstant = 0x10 , CI_EarlyClobber = 0x20
}

Public Member Functions

 ConstraintInfo (StringRef ConstraintStr, StringRef Name)
const std::string & getConstraintStr () const
const std::string & getName () const
bool isReadWrite () const
bool earlyClobber ()
bool allowsRegister () const
bool allowsMemory () const
bool hasMatchingInput () const
 Return true if this output operand has a matching (tied) input operand.
bool hasTiedOperand () const
 Return true if this input operand is a matching constraint that ties it to an output operand.
unsigned getTiedOperand () const
bool requiresImmediateConstant () const
bool isValidAsmImmediate (const llvm::APInt &Value) const
void setIsReadWrite ()
void setEarlyClobber ()
void setAllowsMemory ()
void setAllowsRegister ()
void setHasMatchingInput ()
void setRequiresImmediate (int Min, int Max)
void setRequiresImmediate (llvm::ArrayRef< int > Exacts)
void setRequiresImmediate (int Exact)
void setRequiresImmediate ()
void setTiedOperand (unsigned N, ConstraintInfo &Output)
 Indicate that this is an input operand that is tied to the specified output operand.

Public Attributes

unsigned Flags
int TiedOperand
struct { 
   int   Min 
   int   Max 
   bool   isConstrained 
ImmRange
llvm::SmallSet< int, 4 > ImmSet
std::string ConstraintStr
std::string Name

Detailed Description

Definition at line 1120 of file TargetInfo.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
CI_None 
CI_AllowsMemory 
CI_AllowsRegister 
CI_ReadWrite 
CI_HasMatchingInput 
CI_ImmediateConstant 
CI_EarlyClobber 

Definition at line 1121 of file TargetInfo.h.

Constructor & Destructor Documentation

◆ ConstraintInfo()

clang::TargetInfo::ConstraintInfo::ConstraintInfo ( StringRef ConstraintStr,
StringRef Name )
inline

Definition at line 1142 of file TargetInfo.h.

References ConstraintStr, Flags, ImmRange, Name, and TiedOperand.

Referenced by setTiedOperand().

Member Function Documentation

◆ allowsMemory()

bool clang::TargetInfo::ConstraintInfo::allowsMemory ( ) const
inline

◆ allowsRegister()

bool clang::TargetInfo::ConstraintInfo::allowsRegister ( ) const
inline

◆ earlyClobber()

bool clang::TargetInfo::ConstraintInfo::earlyClobber ( )
inline

◆ getConstraintStr()

const std::string & clang::TargetInfo::ConstraintInfo::getConstraintStr ( ) const
inline

◆ getName()

const std::string & clang::TargetInfo::ConstraintInfo::getName ( ) const
inline

Definition at line 1150 of file TargetInfo.h.

References Name.

◆ getTiedOperand()

unsigned clang::TargetInfo::ConstraintInfo::getTiedOperand ( ) const
inline

◆ hasMatchingInput()

bool clang::TargetInfo::ConstraintInfo::hasMatchingInput ( ) const
inline

Return true if this output operand has a matching (tied) input operand.

Definition at line 1158 of file TargetInfo.h.

References CI_HasMatchingInput, and Flags.

Referenced by clang::CodeGen::CodeGenFunction::EmitAsmStmt().

◆ hasTiedOperand()

bool clang::TargetInfo::ConstraintInfo::hasTiedOperand ( ) const
inline

Return true if this input operand is a matching constraint that ties it to an output operand.

If this returns true then getTiedOperand will indicate which output operand this is tied to.

Definition at line 1165 of file TargetInfo.h.

References TiedOperand.

Referenced by clang::Sema::ActOnGCCAsmStmt(), clang::CodeGen::CodeGenFunction::EmitAsmStmt(), getTiedOperand(), and clang::TargetInfo::validateInputConstraint().

◆ isReadWrite()

bool clang::TargetInfo::ConstraintInfo::isReadWrite ( ) const
inline

◆ isValidAsmImmediate()

bool clang::TargetInfo::ConstraintInfo::isValidAsmImmediate ( const llvm::APInt & Value) const
inline

Definition at line 1174 of file TargetInfo.h.

References ImmRange, and ImmSet.

Referenced by clang::Sema::ActOnGCCAsmStmt().

◆ requiresImmediateConstant()

bool clang::TargetInfo::ConstraintInfo::requiresImmediateConstant ( ) const
inline

Definition at line 1171 of file TargetInfo.h.

References CI_ImmediateConstant, and Flags.

Referenced by clang::Sema::ActOnGCCAsmStmt().

◆ setAllowsMemory()

◆ setAllowsRegister()

◆ setEarlyClobber()

void clang::TargetInfo::ConstraintInfo::setEarlyClobber ( )
inline

Definition at line 1182 of file TargetInfo.h.

References CI_EarlyClobber, and Flags.

Referenced by clang::TargetInfo::validateOutputConstraint().

◆ setHasMatchingInput()

void clang::TargetInfo::ConstraintInfo::setHasMatchingInput ( )
inline

Definition at line 1185 of file TargetInfo.h.

References CI_HasMatchingInput, and Flags.

Referenced by setTiedOperand().

◆ setIsReadWrite()

void clang::TargetInfo::ConstraintInfo::setIsReadWrite ( )
inline

Definition at line 1181 of file TargetInfo.h.

References CI_ReadWrite, and Flags.

Referenced by clang::TargetInfo::validateOutputConstraint().

◆ setRequiresImmediate() [1/4]

void clang::TargetInfo::ConstraintInfo::setRequiresImmediate ( )
inline

Definition at line 1200 of file TargetInfo.h.

References CI_ImmediateConstant, and Flags.

◆ setRequiresImmediate() [2/4]

void clang::TargetInfo::ConstraintInfo::setRequiresImmediate ( int Exact)
inline

Definition at line 1196 of file TargetInfo.h.

References CI_ImmediateConstant, Flags, and ImmSet.

◆ setRequiresImmediate() [3/4]

◆ setRequiresImmediate() [4/4]

void clang::TargetInfo::ConstraintInfo::setRequiresImmediate ( llvm::ArrayRef< int > Exacts)
inline

Definition at line 1192 of file TargetInfo.h.

References CI_ImmediateConstant, Flags, and ImmSet.

◆ setTiedOperand()

void clang::TargetInfo::ConstraintInfo::setTiedOperand ( unsigned N,
ConstraintInfo & Output )
inline

Indicate that this is an input operand that is tied to the specified output operand.

Copy over the various constraint information from the output.

Definition at line 1208 of file TargetInfo.h.

References ConstraintInfo(), Flags, setHasMatchingInput(), and TiedOperand.

Referenced by clang::TargetInfo::validateInputConstraint().

Member Data Documentation

◆ ConstraintStr

std::string clang::TargetInfo::ConstraintInfo::ConstraintStr

◆ Flags

◆ [struct]

struct { ... } clang::TargetInfo::ConstraintInfo::ImmRange

◆ ImmSet

llvm::SmallSet<int, 4> clang::TargetInfo::ConstraintInfo::ImmSet

Definition at line 1137 of file TargetInfo.h.

Referenced by isValidAsmImmediate(), setRequiresImmediate(), and setRequiresImmediate().

◆ isConstrained

bool clang::TargetInfo::ConstraintInfo::isConstrained

Definition at line 1135 of file TargetInfo.h.

◆ Max

int clang::TargetInfo::ConstraintInfo::Max

Definition at line 1134 of file TargetInfo.h.

Referenced by setRequiresImmediate().

◆ Min

int clang::TargetInfo::ConstraintInfo::Min

Definition at line 1133 of file TargetInfo.h.

Referenced by setRequiresImmediate().

◆ Name

std::string clang::TargetInfo::ConstraintInfo::Name

Definition at line 1140 of file TargetInfo.h.

Referenced by ConstraintInfo(), and getName().

◆ TiedOperand

int clang::TargetInfo::ConstraintInfo::TiedOperand

Definition at line 1131 of file TargetInfo.h.

Referenced by ConstraintInfo(), getTiedOperand(), hasTiedOperand(), and setTiedOperand().


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