clang
3.9.0
|
AsmStmt is the base class for GCCAsmStmt and MSAsmStmt. More...
#include <Stmt.h>
Public Types | |
typedef ExprIterator | inputs_iterator |
typedef ConstExprIterator | const_inputs_iterator |
typedef llvm::iterator_range < inputs_iterator > | inputs_range |
typedef llvm::iterator_range < const_inputs_iterator > | inputs_const_range |
typedef ExprIterator | outputs_iterator |
typedef ConstExprIterator | const_outputs_iterator |
typedef llvm::iterator_range < outputs_iterator > | outputs_range |
typedef llvm::iterator_range < const_outputs_iterator > | outputs_const_range |
Public Member Functions | |
AsmStmt (StmtClass SC, EmptyShell Empty) | |
Build an empty inline-assembly statement. More... | |
SourceLocation | getAsmLoc () const |
void | setAsmLoc (SourceLocation L) |
bool | isSimple () const |
void | setSimple (bool V) |
bool | isVolatile () const |
void | setVolatile (bool V) |
SourceLocation | getLocStart () const LLVM_READONLY |
SourceLocation | getLocEnd () const LLVM_READONLY |
std::string | generateAsmString (const ASTContext &C) const |
Assemble final IR asm string. More... | |
unsigned | getNumOutputs () const |
StringRef | getOutputConstraint (unsigned i) const |
getOutputConstraint - Return the constraint string for the specified output operand. More... | |
bool | isOutputPlusConstraint (unsigned i) const |
isOutputPlusConstraint - Return true if the specified output constraint is a "+" constraint (which is both an input and an output) or false if it is an "=" constraint (just an output). More... | |
const Expr * | getOutputExpr (unsigned i) const |
unsigned | getNumPlusOperands () const |
getNumPlusOperands - Return the number of output operands that have a "+" constraint. More... | |
unsigned | getNumInputs () const |
StringRef | getInputConstraint (unsigned i) const |
getInputConstraint - Return the specified input constraint. More... | |
const Expr * | getInputExpr (unsigned i) const |
unsigned | getNumClobbers () const |
StringRef | getClobber (unsigned i) const |
inputs_iterator | begin_inputs () |
inputs_iterator | end_inputs () |
inputs_range | inputs () |
const_inputs_iterator | begin_inputs () const |
const_inputs_iterator | end_inputs () const |
inputs_const_range | inputs () const |
outputs_iterator | begin_outputs () |
outputs_iterator | end_outputs () |
outputs_range | outputs () |
const_outputs_iterator | begin_outputs () const |
const_outputs_iterator | end_outputs () const |
outputs_const_range | outputs () const |
child_range | children () |
Static Public Member Functions | |
static bool | classof (const Stmt *T) |
Protected Member Functions | |
AsmStmt (StmtClass SC, SourceLocation asmloc, bool issimple, bool isvolatile, unsigned numoutputs, unsigned numinputs, unsigned numclobbers) | |
Protected Attributes | |
SourceLocation | AsmLoc |
bool | IsSimple |
True if the assembly statement does not have any input or output operands. More... | |
bool | IsVolatile |
If true, treat this inline assembly as having side effects. More... | |
unsigned | NumOutputs |
unsigned | NumInputs |
unsigned | NumClobbers |
Stmt ** | Exprs |
Friends | |
class | ASTStmtReader |
AsmStmt is the base class for GCCAsmStmt and MSAsmStmt.
typedef ConstExprIterator clang::AsmStmt::const_inputs_iterator |
typedef ConstExprIterator clang::AsmStmt::const_outputs_iterator |
typedef llvm::iterator_range<const_inputs_iterator> clang::AsmStmt::inputs_const_range |
typedef ExprIterator clang::AsmStmt::inputs_iterator |
typedef llvm::iterator_range<inputs_iterator> clang::AsmStmt::inputs_range |
typedef llvm::iterator_range<const_outputs_iterator> clang::AsmStmt::outputs_const_range |
typedef ExprIterator clang::AsmStmt::outputs_iterator |
typedef llvm::iterator_range<outputs_iterator> clang::AsmStmt::outputs_range |
|
inlineexplicit |
|
inline |
Definition at line 1509 of file Stmt.h.
Referenced by clang::ASTNodeImporter::VisitGCCAsmStmt().
|
inline |
|
inline |
Definition at line 1538 of file Stmt.h.
Referenced by clang::ASTNodeImporter::VisitGCCAsmStmt().
|
inline |
|
inline |
Definition at line 1513 of file Stmt.h.
Referenced by clang::ASTNodeImporter::VisitGCCAsmStmt().
|
inline |
|
inline |
Definition at line 1541 of file Stmt.h.
Referenced by clang::ASTNodeImporter::VisitGCCAsmStmt().
|
inline |
std::string AsmStmt::generateAsmString | ( | const ASTContext & | C | ) | const |
Assemble final IR asm string.
Definition at line 330 of file Stmt.cpp.
Referenced by clang::CodeGen::CodeGenFunction::EmitAsmStmt().
|
inline |
Definition at line 1443 of file Stmt.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitAsmStmt(), and clang::ASTNodeImporter::VisitGCCAsmStmt().
StringRef AsmStmt::getClobber | ( | unsigned | i | ) | const |
Definition at line 370 of file Stmt.cpp.
Referenced by clang::CodeGen::CodeGenFunction::EmitAsmStmt().
StringRef AsmStmt::getInputConstraint | ( | unsigned | i | ) | const |
getInputConstraint - Return the specified input constraint.
Unlike output constraints, these can be empty.
Definition at line 354 of file Stmt.cpp.
Referenced by clang::CodeGen::CodeGenFunction::EmitAsmStmt().
Definition at line 362 of file Stmt.cpp.
Referenced by clang::CodeGen::CodeGenFunction::EmitAsmStmt().
|
inline |
|
inline |
|
inline |
Definition at line 1494 of file Stmt.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitAsmStmt(), and clang::ASTNodeImporter::VisitGCCAsmStmt().
|
inline |
Definition at line 1484 of file Stmt.h.
Referenced by clang::Sema::ActOnGCCAsmStmt(), clang::GCCAsmStmt::AnalyzeAsmString(), clang::CodeGen::CodeGenFunction::EmitAsmStmt(), clang::GCCAsmStmt::getNamedOperand(), and clang::ASTNodeImporter::VisitGCCAsmStmt().
|
inline |
Definition at line 1462 of file Stmt.h.
Referenced by clang::Sema::ActOnGCCAsmStmt(), clang::GCCAsmStmt::AnalyzeAsmString(), clang::CodeGen::CodeGenFunction::EmitAsmStmt(), clang::GCCAsmStmt::getNamedOperand(), getNumPlusOperands(), and clang::ASTNodeImporter::VisitGCCAsmStmt().
unsigned AsmStmt::getNumPlusOperands | ( | ) | const |
getNumPlusOperands - Return the number of output operands that have a "+" constraint.
Definition at line 380 of file Stmt.cpp.
References getNumOutputs(), and isOutputPlusConstraint().
Referenced by clang::GCCAsmStmt::AnalyzeAsmString().
StringRef AsmStmt::getOutputConstraint | ( | unsigned | i | ) | const |
getOutputConstraint - Return the constraint string for the specified output operand.
All output constraints are known to be non-empty (either '=' or '+').
Definition at line 338 of file Stmt.cpp.
Referenced by clang::CodeGen::CodeGenFunction::EmitAsmStmt().
Definition at line 346 of file Stmt.cpp.
Referenced by clang::CodeGen::CodeGenFunction::EmitAsmStmt().
|
inline |
|
inline |
isOutputPlusConstraint - Return true if the specified output constraint is a "+" constraint (which is both an input and an output) or false if it is an "=" constraint (just an output).
Definition at line 1472 of file Stmt.h.
Referenced by getNumPlusOperands().
|
inline |
Definition at line 1446 of file Stmt.h.
Referenced by clang::GCCAsmStmt::AnalyzeAsmString(), and clang::ASTNodeImporter::VisitGCCAsmStmt().
|
inline |
Definition at line 1449 of file Stmt.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitAsmStmt(), and clang::ASTNodeImporter::VisitGCCAsmStmt().
|
inline |
Definition at line 1544 of file Stmt.h.
Referenced by clang::ento::ExprEngine::VisitGCCAsmStmt().
|
inline |
|
inline |
|
friend |
|
protected |
|
protected |
Definition at line 1429 of file Stmt.h.
Referenced by clang::GCCAsmStmt::getInputExpr(), clang::GCCAsmStmt::getOutputExpr(), and clang::GCCAsmStmt::setInputExpr().
|
protected |
|
protected |
|
protected |
Definition at line 1426 of file Stmt.h.
Referenced by clang::GCCAsmStmt::GCCAsmStmt().
|
protected |
Definition at line 1425 of file Stmt.h.
Referenced by clang::GCCAsmStmt::getInputExpr(), clang::MSAsmStmt::getInputExpr(), clang::GCCAsmStmt::setInputExpr(), and clang::MSAsmStmt::setInputExpr().