|
| GCCAsmStmt (const ASTContext &C, SourceLocation asmloc, bool issimple, bool isvolatile, unsigned numoutputs, unsigned numinputs, IdentifierInfo **names, StringLiteral **constraints, Expr **exprs, StringLiteral *asmstr, unsigned numclobbers, StringLiteral **clobbers, SourceLocation rparenloc) |
|
| GCCAsmStmt (EmptyShell Empty) |
| Build an empty inline-assembly statement. More...
|
|
SourceLocation | getRParenLoc () const |
|
void | setRParenLoc (SourceLocation L) |
|
const StringLiteral * | getAsmString () const |
|
StringLiteral * | getAsmString () |
|
void | setAsmString (StringLiteral *E) |
|
unsigned | AnalyzeAsmString (SmallVectorImpl< AsmStringPiece > &Pieces, const ASTContext &C, unsigned &DiagOffs) const |
| AnalyzeAsmString - Analyze the asm string of the current asm, decomposing it into pieces. More...
|
|
std::string | generateAsmString (const ASTContext &C) const |
| Assemble final IR asm string. More...
|
|
IdentifierInfo * | getOutputIdentifier (unsigned i) const |
|
StringRef | getOutputName (unsigned i) const |
|
StringRef | getOutputConstraint (unsigned i) const |
| getOutputConstraint - Return the constraint string for the specified output operand. More...
|
|
const StringLiteral * | getOutputConstraintLiteral (unsigned i) const |
|
StringLiteral * | getOutputConstraintLiteral (unsigned i) |
|
Expr * | getOutputExpr (unsigned i) |
|
const Expr * | getOutputExpr (unsigned i) const |
|
IdentifierInfo * | getInputIdentifier (unsigned i) const |
|
StringRef | getInputName (unsigned i) const |
|
StringRef | getInputConstraint (unsigned i) const |
| getInputConstraint - Return the specified input constraint. More...
|
|
const StringLiteral * | getInputConstraintLiteral (unsigned i) const |
|
StringLiteral * | getInputConstraintLiteral (unsigned i) |
|
Expr * | getInputExpr (unsigned i) |
|
void | setInputExpr (unsigned i, Expr *E) |
|
const Expr * | getInputExpr (unsigned i) const |
|
int | getNamedOperand (StringRef SymbolicName) const |
| getNamedOperand - Given a symbolic operand reference like %[foo], translate this into a numeric value needed to reference the same operand. More...
|
|
StringRef | getClobber (unsigned i) const |
|
StringLiteral * | getClobberStringLiteral (unsigned i) |
|
const StringLiteral * | getClobberStringLiteral (unsigned i) const |
|
SourceLocation | getBeginLoc () const LLVM_READONLY |
|
SourceLocation | getEndLoc () const LLVM_READONLY |
|
| 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 | getBeginLoc () const LLVM_READONLY |
|
SourceLocation | getEndLoc () 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 () |
|
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 | getBeginLoc () const LLVM_READONLY |
|
SourceLocation | getEndLoc () 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 |
|
int64_t | getID (const ASTContext &Context) 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, StringRef NewlineSymbol="\, const ASTContext *Context=nullptr) 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 * | IgnoreContainers (bool IgnoreCaptured=false) const |
|
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...
|
|
|
using | inputs_iterator = ExprIterator |
|
using | const_inputs_iterator = ConstExprIterator |
|
using | inputs_range = llvm::iterator_range< inputs_iterator > |
|
using | inputs_const_range = llvm::iterator_range< const_inputs_iterator > |
|
using | outputs_iterator = ExprIterator |
|
using | const_outputs_iterator = ConstExprIterator |
|
using | outputs_range = llvm::iterator_range< outputs_iterator > |
|
using | outputs_const_range = llvm::iterator_range< const_outputs_iterator > |
|
enum | StmtClass { NoStmtClass = 0
} |
|
using | child_iterator = StmtIterator |
| Child Iterators: All subclasses must implement 'children' to permit easy iteration over the substatements/subexpessions of an AST node. More...
|
|
using | const_child_iterator = ConstStmtIterator |
|
using | child_range = llvm::iterator_range< child_iterator > |
|
using | const_child_range = llvm::iterator_range< const_child_iterator > |
|
enum | { NumStmtBits = 8
} |
|
enum | { NumExprBits = NumStmtBits + 9
} |
|
enum | APFloatSemantics {
IEEEhalf,
IEEEsingle,
IEEEdouble,
x87DoubleExtended,
IEEEquad,
PPCDoubleDouble
} |
|
enum | { NumCallExprBits = 32
} |
|
enum | { NumOverloadExprBits = NumExprBits + 1
} |
|
| AsmStmt (StmtClass SC, SourceLocation asmloc, bool issimple, bool isvolatile, unsigned numoutputs, unsigned numinputs, unsigned numclobbers) |
|
void * | operator new (size_t bytes) noexcept |
|
void | operator delete (void *data) noexcept |
|
| Stmt (StmtClass SC, EmptyShell) |
| Construct an empty statement. More...
|
|
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 = nullptr |
|
union { |
StmtBitfields StmtBits |
|
NullStmtBitfields NullStmtBits |
|
CompoundStmtBitfields CompoundStmtBits |
|
LabelStmtBitfields LabelStmtBits |
|
AttributedStmtBitfields AttributedStmtBits |
|
IfStmtBitfields IfStmtBits |
|
SwitchStmtBitfields SwitchStmtBits |
|
WhileStmtBitfields WhileStmtBits |
|
DoStmtBitfields DoStmtBits |
|
ForStmtBitfields ForStmtBits |
|
GotoStmtBitfields GotoStmtBits |
|
ContinueStmtBitfields ContinueStmtBits |
|
BreakStmtBitfields BreakStmtBits |
|
ReturnStmtBitfields ReturnStmtBits |
|
SwitchCaseBitfields SwitchCaseBits |
|
ExprBitfields ExprBits |
|
PredefinedExprBitfields PredefinedExprBits |
|
DeclRefExprBitfields DeclRefExprBits |
|
FloatingLiteralBitfields FloatingLiteralBits |
|
StringLiteralBitfields StringLiteralBits |
|
CharacterLiteralBitfields CharacterLiteralBits |
|
UnaryOperatorBitfields UnaryOperatorBits |
|
UnaryExprOrTypeTraitExprBitfields UnaryExprOrTypeTraitExprBits |
|
ArraySubscriptExprBitfields ArraySubscriptExprBits |
|
CallExprBitfields CallExprBits |
|
MemberExprBitfields MemberExprBits |
|
CastExprBitfields CastExprBits |
|
BinaryOperatorBitfields BinaryOperatorBits |
|
InitListExprBitfields InitListExprBits |
|
ParenListExprBitfields ParenListExprBits |
|
PseudoObjectExprBitfields PseudoObjectExprBits |
|
CXXOperatorCallExprBitfields CXXOperatorCallExprBits |
|
CXXBoolLiteralExprBitfields CXXBoolLiteralExprBits |
|
CXXNullPtrLiteralExprBitfields CXXNullPtrLiteralExprBits |
|
CXXThisExprBitfields CXXThisExprBits |
|
CXXThrowExprBitfields CXXThrowExprBits |
|
CXXDefaultArgExprBitfields CXXDefaultArgExprBits |
|
CXXDefaultInitExprBitfields CXXDefaultInitExprBits |
|
CXXScalarValueInitExprBitfields CXXScalarValueInitExprBits |
|
CXXNewExprBitfields CXXNewExprBits |
|
CXXDeleteExprBitfields CXXDeleteExprBits |
|
TypeTraitExprBitfields TypeTraitExprBits |
|
DependentScopeDeclRefExprBitfields DependentScopeDeclRefExprBits |
|
CXXConstructExprBitfields CXXConstructExprBits |
|
ExprWithCleanupsBitfields ExprWithCleanupsBits |
|
CXXUnresolvedConstructExprBitfields CXXUnresolvedConstructExprBits |
|
CXXDependentScopeMemberExprBitfields CXXDependentScopeMemberExprBits |
|
OverloadExprBitfields OverloadExprBits |
|
UnresolvedLookupExprBitfields UnresolvedLookupExprBits |
|
UnresolvedMemberExprBitfields UnresolvedMemberExprBits |
|
CXXNoexceptExprBitfields CXXNoexceptExprBits |
|
SubstNonTypeTemplateParmExprBitfields SubstNonTypeTemplateParmExprBits |
|
CoawaitExprBitfields CoawaitBits |
|
ObjCIndirectCopyRestoreExprBitfields ObjCIndirectCopyRestoreExprBits |
|
OpaqueValueExprBitfields OpaqueValueExprBits |
|
}; | |
|
This represents a GCC inline-assembly statement extension.
Definition at line 2675 of file Stmt.h.