clang 17.0.0git
|
#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 |
Definition at line 1028 of file TargetInfo.h.
anonymous enum |
Enumerator | |
---|---|
CI_None | |
CI_AllowsMemory | |
CI_AllowsRegister | |
CI_ReadWrite | |
CI_HasMatchingInput | |
CI_ImmediateConstant | |
CI_EarlyClobber |
Definition at line 1029 of file TargetInfo.h.
|
inline |
Definition at line 1050 of file TargetInfo.h.
References ImmRange.
|
inline |
Definition at line 1062 of file TargetInfo.h.
References CI_AllowsMemory, and Flags.
Referenced by clang::Sema::ActOnGCCAsmStmt(), and clang::TargetInfo::validateOutputConstraint().
|
inline |
Definition at line 1061 of file TargetInfo.h.
References CI_AllowsRegister, and Flags.
Referenced by clang::Sema::ActOnGCCAsmStmt(), AddVariableConstraints(), and clang::TargetInfo::validateOutputConstraint().
|
inline |
Definition at line 1060 of file TargetInfo.h.
References CI_EarlyClobber, and Flags.
Referenced by clang::TargetInfo::validateOutputConstraint().
|
inline |
Definition at line 1057 of file TargetInfo.h.
References ConstraintStr.
Referenced by clang::Sema::ActOnGCCAsmStmt(), checkExprMemoryConstraintCompat(), and clang::TargetInfo::validateOutputConstraint().
|
inline |
Definition at line 1058 of file TargetInfo.h.
References Name.
|
inline |
Definition at line 1074 of file TargetInfo.h.
References hasTiedOperand(), and TiedOperand.
Referenced by clang::Sema::ActOnGCCAsmStmt(), and clang::TargetInfo::validateInputConstraint().
|
inline |
Return true if this output operand has a matching (tied) input operand.
Definition at line 1066 of file TargetInfo.h.
References CI_HasMatchingInput, and Flags.
|
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 1073 of file TargetInfo.h.
References TiedOperand.
Referenced by clang::Sema::ActOnGCCAsmStmt(), getTiedOperand(), and clang::TargetInfo::validateInputConstraint().
|
inline |
Definition at line 1059 of file TargetInfo.h.
References CI_ReadWrite, and Flags.
Referenced by clang::TargetInfo::validateOutputConstraint().
|
inline |
Definition at line 1082 of file TargetInfo.h.
References ImmRange, and ImmSet.
Referenced by clang::Sema::ActOnGCCAsmStmt().
|
inline |
Definition at line 1079 of file TargetInfo.h.
References CI_ImmediateConstant, and Flags.
Referenced by clang::Sema::ActOnGCCAsmStmt().
|
inline |
Definition at line 1091 of file TargetInfo.h.
References CI_AllowsMemory, and Flags.
Referenced by clang::targets::AArch64TargetInfo::validateAsmConstraint(), clang::targets::ARMTargetInfo::validateAsmConstraint(), clang::targets::LoongArchTargetInfo::validateAsmConstraint(), clang::targets::M68kTargetInfo::validateAsmConstraint(), clang::targets::MipsTargetInfo::validateAsmConstraint(), clang::targets::PPCTargetInfo::validateAsmConstraint(), clang::targets::RISCVTargetInfo::validateAsmConstraint(), clang::targets::SystemZTargetInfo::validateAsmConstraint(), clang::TargetInfo::validateInputConstraint(), and clang::TargetInfo::validateOutputConstraint().
|
inline |
Definition at line 1092 of file TargetInfo.h.
References CI_AllowsRegister, and Flags.
Referenced by clang::targets::AArch64TargetInfo::validateAsmConstraint(), clang::targets::AMDGPUTargetInfo::validateAsmConstraint(), clang::targets::ARMTargetInfo::validateAsmConstraint(), clang::targets::AVRTargetInfo::validateAsmConstraint(), clang::targets::BPFTargetInfo::validateAsmConstraint(), clang::targets::CSKYTargetInfo::validateAsmConstraint(), clang::targets::HexagonTargetInfo::validateAsmConstraint(), clang::targets::LoongArchTargetInfo::validateAsmConstraint(), clang::targets::M68kTargetInfo::validateAsmConstraint(), clang::targets::MipsTargetInfo::validateAsmConstraint(), clang::targets::NVPTXTargetInfo::validateAsmConstraint(), clang::targets::PPCTargetInfo::validateAsmConstraint(), clang::targets::RISCVTargetInfo::validateAsmConstraint(), clang::targets::SparcTargetInfo::validateAsmConstraint(), clang::targets::SystemZTargetInfo::validateAsmConstraint(), clang::targets::VETargetInfo::validateAsmConstraint(), clang::targets::X86TargetInfo::validateAsmConstraint(), clang::TargetInfo::validateInputConstraint(), and clang::TargetInfo::validateOutputConstraint().
|
inline |
Definition at line 1090 of file TargetInfo.h.
References CI_EarlyClobber, and Flags.
Referenced by clang::TargetInfo::validateOutputConstraint().
|
inline |
Definition at line 1093 of file TargetInfo.h.
References CI_HasMatchingInput, and Flags.
Referenced by setTiedOperand().
|
inline |
Definition at line 1089 of file TargetInfo.h.
References CI_ReadWrite, and Flags.
Referenced by clang::TargetInfo::validateOutputConstraint().
|
inline |
Definition at line 1109 of file TargetInfo.h.
References CI_ImmediateConstant, and Flags.
|
inline |
Definition at line 1105 of file TargetInfo.h.
References CI_ImmediateConstant, Flags, and ImmSet.
Definition at line 1094 of file TargetInfo.h.
References CI_ImmediateConstant, Flags, ImmRange, Max, and Min.
Referenced by clang::targets::AMDGPUTargetInfo::validateAsmConstraint(), clang::targets::ARMTargetInfo::validateAsmConstraint(), clang::targets::AVRTargetInfo::validateAsmConstraint(), clang::targets::LoongArchTargetInfo::validateAsmConstraint(), clang::targets::M68kTargetInfo::validateAsmConstraint(), clang::targets::RISCVTargetInfo::validateAsmConstraint(), clang::targets::X86TargetInfo::validateAsmConstraint(), and clang::TargetInfo::validateInputConstraint().
|
inline |
Definition at line 1100 of file TargetInfo.h.
References CI_ImmediateConstant, Flags, and ImmSet.
|
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 1117 of file TargetInfo.h.
References Flags, setHasMatchingInput(), and TiedOperand.
Referenced by clang::TargetInfo::validateInputConstraint().
std::string clang::TargetInfo::ConstraintInfo::ConstraintStr |
Definition at line 1047 of file TargetInfo.h.
Referenced by getConstraintStr(), clang::targets::X86TargetInfo::validateAsmConstraint(), and clang::TargetInfo::validateInputConstraint().
unsigned clang::TargetInfo::ConstraintInfo::Flags |
Definition at line 1038 of file TargetInfo.h.
Referenced by allowsMemory(), allowsRegister(), earlyClobber(), hasMatchingInput(), isReadWrite(), requiresImmediateConstant(), setAllowsMemory(), setAllowsRegister(), setEarlyClobber(), setHasMatchingInput(), setIsReadWrite(), setRequiresImmediate(), and setTiedOperand().
struct { ... } clang::TargetInfo::ConstraintInfo::ImmRange |
Referenced by ConstraintInfo(), isValidAsmImmediate(), and setRequiresImmediate().
llvm::SmallSet<int, 4> clang::TargetInfo::ConstraintInfo::ImmSet |
Definition at line 1045 of file TargetInfo.h.
Referenced by isValidAsmImmediate(), and setRequiresImmediate().
bool clang::TargetInfo::ConstraintInfo::isConstrained |
Definition at line 1043 of file TargetInfo.h.
int clang::TargetInfo::ConstraintInfo::Max |
Definition at line 1042 of file TargetInfo.h.
Referenced by setRequiresImmediate().
int clang::TargetInfo::ConstraintInfo::Min |
Definition at line 1041 of file TargetInfo.h.
Referenced by setRequiresImmediate().
std::string clang::TargetInfo::ConstraintInfo::Name |
Definition at line 1048 of file TargetInfo.h.
Referenced by getName().
int clang::TargetInfo::ConstraintInfo::TiedOperand |
Definition at line 1039 of file TargetInfo.h.
Referenced by getTiedOperand(), hasTiedOperand(), and setTiedOperand().