|
clang 23.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 , CI_OutputOperandBounds = 0x40 } |
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. | |
| void | setOutputOperandBounds (unsigned Min, unsigned Max) |
| std::optional< std::pair< unsigned, unsigned > > | getOutputOperandBounds () const |
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 1127 of file TargetInfo.h.
| anonymous enum |
| Enumerator | |
|---|---|
| CI_None | |
| CI_AllowsMemory | |
| CI_AllowsRegister | |
| CI_ReadWrite | |
| CI_HasMatchingInput | |
| CI_ImmediateConstant | |
| CI_EarlyClobber | |
| CI_OutputOperandBounds | |
Definition at line 1128 of file TargetInfo.h.
|
inline |
Definition at line 1150 of file TargetInfo.h.
References ConstraintStr, Flags, ImmRange, Name, and TiedOperand.
Referenced by setTiedOperand().
|
inline |
Definition at line 1162 of file TargetInfo.h.
References CI_AllowsMemory, and Flags.
Referenced by clang::Sema::ActOnGCCAsmStmt(), clang::CIRGen::CIRGenFunction::emitAsmInput(), clang::CIRGen::CIRGenFunction::emitAsmInputLValue(), clang::CodeGen::CodeGenFunction::EmitAsmStmt(), clang::CIRGen::CIRGenFunction::emitAsmStmt(), and clang::TargetInfo::validateOutputConstraint().
|
inline |
Definition at line 1161 of file TargetInfo.h.
References CI_AllowsRegister, and Flags.
Referenced by clang::Sema::ActOnGCCAsmStmt(), clang::AsmStmt::addVariableConstraints(), clang::CIRGen::CIRGenFunction::emitAsmInput(), clang::CIRGen::CIRGenFunction::emitAsmInputLValue(), clang::CodeGen::CodeGenFunction::EmitAsmStmt(), clang::CIRGen::CIRGenFunction::emitAsmStmt(), and clang::TargetInfo::validateOutputConstraint().
|
inline |
Definition at line 1160 of file TargetInfo.h.
References CI_EarlyClobber, and Flags.
Referenced by clang::CodeGen::CodeGenFunction::EmitAsmStmt(), clang::CIRGen::CIRGenFunction::emitAsmStmt(), and clang::TargetInfo::validateOutputConstraint().
|
inline |
Definition at line 1157 of file TargetInfo.h.
References ConstraintStr.
Referenced by clang::Sema::ActOnGCCAsmStmt(), checkExprMemoryConstraintCompat(), and clang::TargetInfo::validateOutputConstraint().
|
inline |
Definition at line 1158 of file TargetInfo.h.
References Name.
|
inline |
Definition at line 1236 of file TargetInfo.h.
References CI_OutputOperandBounds, Flags, and ImmRange.
Referenced by clang::CodeGen::CodeGenFunction::EmitAsmStmt().
|
inline |
Definition at line 1174 of file TargetInfo.h.
References hasTiedOperand(), and TiedOperand.
Referenced by clang::Sema::ActOnGCCAsmStmt(), clang::CodeGen::CodeGenFunction::EmitAsmStmt(), clang::CIRGen::CIRGenFunction::emitAsmStmt(), and clang::TargetInfo::validateInputConstraint().
|
inline |
Return true if this output operand has a matching (tied) input operand.
Definition at line 1166 of file TargetInfo.h.
References CI_HasMatchingInput, and Flags.
Referenced by clang::CodeGen::CodeGenFunction::EmitAsmStmt(), and clang::CIRGen::CIRGenFunction::emitAsmStmt().
|
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 1173 of file TargetInfo.h.
References TiedOperand.
Referenced by clang::Sema::ActOnGCCAsmStmt(), clang::CodeGen::CodeGenFunction::EmitAsmStmt(), clang::CIRGen::CIRGenFunction::emitAsmStmt(), getTiedOperand(), and clang::TargetInfo::validateInputConstraint().
|
inline |
Definition at line 1159 of file TargetInfo.h.
References CI_ReadWrite, and Flags.
Referenced by clang::CodeGen::CodeGenFunction::EmitAsmStmt(), clang::CIRGen::CIRGenFunction::emitAsmStmt(), and clang::TargetInfo::validateOutputConstraint().
|
inline |
Definition at line 1182 of file TargetInfo.h.
References ImmRange, and ImmSet.
Referenced by clang::Sema::ActOnGCCAsmStmt().
|
inline |
Definition at line 1179 of file TargetInfo.h.
References CI_ImmediateConstant, and Flags.
Referenced by clang::Sema::ActOnGCCAsmStmt(), and clang::CIRGen::CIRGenFunction::emitAsmInput().
|
inline |
Definition at line 1191 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 1192 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::targets::XtensaTargetInfo::validateAsmConstraint(), clang::TargetInfo::validateInputConstraint(), and clang::TargetInfo::validateOutputConstraint().
|
inline |
Definition at line 1190 of file TargetInfo.h.
References CI_EarlyClobber, and Flags.
Referenced by clang::TargetInfo::validateOutputConstraint().
|
inline |
Definition at line 1193 of file TargetInfo.h.
References CI_HasMatchingInput, and Flags.
Referenced by setTiedOperand().
|
inline |
Definition at line 1189 of file TargetInfo.h.
References CI_ReadWrite, and Flags.
Referenced by clang::TargetInfo::validateOutputConstraint().
|
inline |
Definition at line 1230 of file TargetInfo.h.
References CI_OutputOperandBounds, Flags, ImmRange, Max, and Min.
Referenced by clang::targets::AArch64TargetInfo::validateAsmConstraint(), clang::targets::SystemZTargetInfo::validateAsmConstraint(), and clang::targets::X86TargetInfo::validateAsmConstraint().
|
inline |
Definition at line 1208 of file TargetInfo.h.
References CI_ImmediateConstant, and Flags.
|
inline |
Definition at line 1204 of file TargetInfo.h.
References CI_ImmediateConstant, Flags, and ImmSet.
Definition at line 1194 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 1200 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 1216 of file TargetInfo.h.
References ConstraintInfo(), Flags, setHasMatchingInput(), and TiedOperand.
Referenced by clang::TargetInfo::validateInputConstraint().
| std::string clang::TargetInfo::ConstraintInfo::ConstraintStr |
Definition at line 1147 of file TargetInfo.h.
Referenced by ConstraintInfo(), getConstraintStr(), clang::targets::X86TargetInfo::validateAsmConstraint(), and clang::TargetInfo::validateInputConstraint().
| unsigned clang::TargetInfo::ConstraintInfo::Flags |
Definition at line 1138 of file TargetInfo.h.
Referenced by allowsMemory(), allowsRegister(), ConstraintInfo(), earlyClobber(), getOutputOperandBounds(), hasMatchingInput(), isReadWrite(), requiresImmediateConstant(), setAllowsMemory(), setAllowsRegister(), setEarlyClobber(), setHasMatchingInput(), setIsReadWrite(), setOutputOperandBounds(), setRequiresImmediate(), setRequiresImmediate(), setRequiresImmediate(), setRequiresImmediate(), and setTiedOperand().
| struct { ... } clang::TargetInfo::ConstraintInfo::ImmRange |
Referenced by ConstraintInfo(), getOutputOperandBounds(), isValidAsmImmediate(), setOutputOperandBounds(), and setRequiresImmediate().
| llvm::SmallSet<int, 4> clang::TargetInfo::ConstraintInfo::ImmSet |
Definition at line 1145 of file TargetInfo.h.
Referenced by isValidAsmImmediate(), setRequiresImmediate(), and setRequiresImmediate().
| bool clang::TargetInfo::ConstraintInfo::isConstrained |
Definition at line 1143 of file TargetInfo.h.
| int clang::TargetInfo::ConstraintInfo::Max |
Definition at line 1142 of file TargetInfo.h.
Referenced by setOutputOperandBounds(), and setRequiresImmediate().
| int clang::TargetInfo::ConstraintInfo::Min |
Definition at line 1141 of file TargetInfo.h.
Referenced by setOutputOperandBounds(), and setRequiresImmediate().
| std::string clang::TargetInfo::ConstraintInfo::Name |
Definition at line 1148 of file TargetInfo.h.
Referenced by ConstraintInfo(), and getName().
| int clang::TargetInfo::ConstraintInfo::TiedOperand |
Definition at line 1139 of file TargetInfo.h.
Referenced by ConstraintInfo(), getTiedOperand(), hasTiedOperand(), and setTiedOperand().