|
clang
5.0.0
|
AsmStmt is the base class for GCCAsmStmt and MSAsmStmt. More...
#include "clang/AST/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 Types inherited from clang::Stmt | |
| enum | StmtClass { NoStmtClass = 0 } |
| typedef StmtIterator | child_iterator |
| Child Iterators: All subclasses must implement 'children' to permit easy iteration over the substatements/subexpessions of an AST node. More... | |
| typedef ConstStmtIterator | const_child_iterator |
| typedef llvm::iterator_range < child_iterator > | child_range |
| typedef llvm::iterator_range < const_child_iterator > | const_child_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 () |
Public Member Functions inherited from clang::Stmt | |
| void * | operator new (size_t bytes, const ASTContext &C, unsigned alignment=8) |
| void * | operator new (size_t bytes, const ASTContext *C, unsigned alignment=8) |
| void * | operator new (size_t bytes, void *mem) noexcept |
| void | operator delete (void *, const ASTContext &, unsigned) noexcept |
| void | operator delete (void *, const ASTContext *, unsigned) noexcept |
| void | operator delete (void *, size_t) noexcept |
| void | operator delete (void *, void *) noexcept |
| Stmt (StmtClass SC) | |
| StmtClass | getStmtClass () const |
| const char * | getStmtClassName () const |
| SourceRange | getSourceRange () const LLVM_READONLY |
| SourceLocation tokens are not useful in isolation - they are low level value objects created/interpreted by SourceManager. More... | |
| SourceLocation | getLocStart () const LLVM_READONLY |
| SourceLocation | getLocEnd () const LLVM_READONLY |
| void | dump () const |
Dumps the specified AST fragment and all subtrees to llvm::errs(). More... | |
| void | dump (SourceManager &SM) const |
| void | dump (raw_ostream &OS, SourceManager &SM) const |
| void | dump (raw_ostream &OS) const |
| void | dumpColor () const |
| dumpColor - same as dump(), but forces color highlighting. More... | |
| void | dumpPretty (const ASTContext &Context) const |
| dumpPretty/printPretty - These two methods do a "pretty print" of the AST back to its original source language syntax. More... | |
| void | printPretty (raw_ostream &OS, PrinterHelper *Helper, const PrintingPolicy &Policy, unsigned Indentation=0) const |
| void | viewAST () const |
| viewAST - Visualize an AST rooted at this Stmt* using GraphViz. More... | |
| Stmt * | IgnoreImplicit () |
| Skip past any implicit AST nodes which might surround this statement, such as ExprWithCleanups or ImplicitCastExpr nodes. More... | |
| const Stmt * | IgnoreImplicit () const |
| Stmt * | IgnoreContainers (bool IgnoreCaptured=false) |
| Skip no-op (attributed, compound) container stmts and skip captured stmt at the top, if IgnoreCaptured is true. More... | |
| const Stmt * | stripLabelLikeStatements () const |
| Strip off all label-like statements. More... | |
| Stmt * | stripLabelLikeStatements () |
| child_range | children () |
| const_child_range | children () const |
| child_iterator | child_begin () |
| child_iterator | child_end () |
| const_child_iterator | child_begin () const |
| const_child_iterator | child_end () const |
| void | Profile (llvm::FoldingSetNodeID &ID, const ASTContext &Context, bool Canonical) const |
| Produce a unique representation of the given statement. More... | |
| void | ProcessODRHash (llvm::FoldingSetNodeID &ID, ODRHash &Hash) const |
| Calculate a unique representation for a statement that is stable across compiler invocations. More... | |
Static Public Member Functions | |
| static bool | classof (const Stmt *T) |
Static Public Member Functions inherited from clang::Stmt | |
| static void | addStmtClass (const StmtClass s) |
| static void | EnableStatistics () |
| static void | PrintStats () |
Protected Member Functions | |
| AsmStmt (StmtClass SC, SourceLocation asmloc, bool issimple, bool isvolatile, unsigned numoutputs, unsigned numinputs, unsigned numclobbers) | |
Protected Member Functions inherited from clang::Stmt | |
| void * | operator new (size_t bytes) noexcept |
| void | operator delete (void *data) noexcept |
| Stmt (StmtClass SC, EmptyShell) | |
| Construct an empty statement. More... | |
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 |
Protected Attributes inherited from clang::Stmt | |
| union { | |
| StmtBitfields StmtBits | |
| CompoundStmtBitfields CompoundStmtBits | |
| IfStmtBitfields IfStmtBits | |
| ExprBitfields ExprBits | |
| CharacterLiteralBitfields CharacterLiteralBits | |
| FloatingLiteralBitfields FloatingLiteralBits | |
| UnaryExprOrTypeTraitExprBitfields UnaryExprOrTypeTraitExprBits | |
| DeclRefExprBitfields DeclRefExprBits | |
| CastExprBitfields CastExprBits | |
| CallExprBitfields CallExprBits | |
| ExprWithCleanupsBitfields ExprWithCleanupsBits | |
| PseudoObjectExprBitfields PseudoObjectExprBits | |
| ObjCIndirectCopyRestoreExprBitfields ObjCIndirectCopyRestoreExprBits | |
| InitListExprBitfields InitListExprBits | |
| TypeTraitExprBitfields TypeTraitExprBits | |
| CoawaitExprBitfields CoawaitBits | |
| }; | |
Friends | |
| class | ASTStmtReader |
Additional Inherited Members | |
Protected Types inherited from clang::Stmt | |
| enum | { NumStmtBits = 8 } |
| enum | { NumExprBits = 17 } |
| enum | APFloatSemantics { IEEEhalf, IEEEsingle, IEEEdouble, x87DoubleExtended, IEEEquad, PPCDoubleDouble } |
AsmStmt is the base class for GCCAsmStmt and MSAsmStmt.
| typedef llvm::iterator_range<const_inputs_iterator> clang::AsmStmt::inputs_const_range |
| typedef llvm::iterator_range<inputs_iterator> clang::AsmStmt::inputs_range |
| typedef llvm::iterator_range<const_outputs_iterator> clang::AsmStmt::outputs_const_range |
| typedef llvm::iterator_range<outputs_iterator> clang::AsmStmt::outputs_range |
|
inlineexplicit |
|
inline |
|
inline |
Definition at line 1545 of file Stmt.h.
References Exprs, and NumOutputs.
|
inline |
|
inline |
|
inline |
Definition at line 1584 of file Stmt.h.
References Exprs, NumInputs, and NumOutputs.
Definition at line 1523 of file Stmt.h.
References clang::Stmt::getStmtClass().
|
inline |
|
inline |
Definition at line 1549 of file Stmt.h.
References Exprs, NumInputs, and NumOutputs.
|
inline |
|
inline |
Definition at line 1577 of file Stmt.h.
References Exprs, and NumOutputs.
| 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 1469 of file Stmt.h.
References AsmLoc.
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 1520 of file Stmt.h.
References NumClobbers.
Referenced by clang::CodeGen::CodeGenFunction::EmitAsmStmt(), and clang::ASTNodeImporter::VisitGCCAsmStmt().
|
inline |
Definition at line 1510 of file Stmt.h.
References NumInputs.
Referenced by clang::Sema::ActOnGCCAsmStmt(), clang::GCCAsmStmt::AnalyzeAsmString(), clang::CodeGen::CodeGenFunction::EmitAsmStmt(), clang::GCCAsmStmt::getNamedOperand(), and clang::ASTNodeImporter::VisitGCCAsmStmt().
|
inline |
Definition at line 1488 of file Stmt.h.
References NumOutputs.
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(), and isOutputPlusConstraint().
Definition at line 346 of file Stmt.cpp.
Referenced by clang::CodeGen::CodeGenFunction::EmitAsmStmt().
|
inline |
Definition at line 1543 of file Stmt.h.
References begin_inputs(), and end_inputs().
Referenced by clang::ASTNodeImporter::VisitGCCAsmStmt().
|
inline |
Definition at line 1553 of file Stmt.h.
References begin_inputs(), and end_inputs().
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 1498 of file Stmt.h.
References getOutputConstraint().
Referenced by getNumPlusOperands().
|
inline |
Definition at line 1472 of file Stmt.h.
References IsSimple.
Referenced by clang::GCCAsmStmt::AnalyzeAsmString(), and clang::ASTNodeImporter::VisitGCCAsmStmt().
|
inline |
Definition at line 1475 of file Stmt.h.
References IsVolatile.
Referenced by clang::CodeGen::CodeGenFunction::EmitAsmStmt(), and clang::ASTNodeImporter::VisitGCCAsmStmt().
|
inline |
Definition at line 1570 of file Stmt.h.
References begin_outputs(), and end_outputs().
Referenced by clang::ASTNodeImporter::VisitGCCAsmStmt(), and clang::ento::ExprEngine::VisitGCCAsmStmt().
|
inline |
Definition at line 1580 of file Stmt.h.
References begin_outputs(), and end_outputs().
|
inline |
|
inline |
|
inline |
Definition at line 1476 of file Stmt.h.
References IsVolatile.
|
friend |
|
protected |
Definition at line 1442 of file Stmt.h.
Referenced by getAsmLoc(), clang::GCCAsmStmt::getLocStart(), clang::MSAsmStmt::getLocStart(), and setAsmLoc().
|
protected |
Definition at line 1455 of file Stmt.h.
Referenced by begin_inputs(), begin_outputs(), children(), clang::MSAsmStmt::children(), end_inputs(), end_outputs(), clang::MSAsmStmt::getAllExprs(), clang::GCCAsmStmt::getInputExpr(), clang::GCCAsmStmt::getOutputExpr(), and clang::GCCAsmStmt::setInputExpr().
|
protected |
True if the assembly statement does not have any input or output operands.
Definition at line 1445 of file Stmt.h.
Referenced by isSimple(), and setSimple().
|
protected |
If true, treat this inline assembly as having side effects.
This assembly statement should not be optimized, deleted or moved.
Definition at line 1449 of file Stmt.h.
Referenced by isVolatile(), and setVolatile().
|
protected |
Definition at line 1453 of file Stmt.h.
Referenced by clang::MSAsmStmt::getClobbers(), and getNumClobbers().
|
protected |
Definition at line 1452 of file Stmt.h.
Referenced by children(), clang::MSAsmStmt::children(), end_inputs(), clang::GCCAsmStmt::GCCAsmStmt(), clang::MSAsmStmt::getAllConstraints(), clang::MSAsmStmt::getAllExprs(), clang::MSAsmStmt::getInputConstraint(), and getNumInputs().
|
protected |
Definition at line 1451 of file Stmt.h.
Referenced by begin_inputs(), children(), clang::MSAsmStmt::children(), end_inputs(), end_outputs(), clang::MSAsmStmt::getAllConstraints(), clang::MSAsmStmt::getAllExprs(), clang::MSAsmStmt::getInputConstraint(), clang::GCCAsmStmt::getInputConstraintLiteral(), clang::GCCAsmStmt::getInputExpr(), clang::MSAsmStmt::getInputExpr(), clang::GCCAsmStmt::getInputIdentifier(), getNumOutputs(), clang::MSAsmStmt::getOutputConstraint(), clang::GCCAsmStmt::setInputExpr(), and clang::MSAsmStmt::setInputExpr().
1.8.6