clang
3.7.0
|
#include <Stmt.h>
Classes | |
class | AsmStringPiece |
Static Public Member Functions | |
static bool | classof (const Stmt *T) |
![]() | |
static bool | classof (const Stmt *T) |
Friends | |
class | ASTStmtReader |
Additional Inherited Members | |
![]() | |
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 |
![]() | |
AsmStmt (StmtClass SC, SourceLocation asmloc, bool issimple, bool isvolatile, unsigned numoutputs, unsigned numinputs, unsigned numclobbers) | |
![]() | |
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. This assembly statement should not be optimized, deleted or moved. More... | |
unsigned | NumOutputs |
unsigned | NumInputs |
unsigned | NumClobbers |
Stmt ** | Exprs |
GCCAsmStmt::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 | ||
) |
Definition at line 688 of file Stmt.cpp.
References AttributeLangSupport::C, and clang::AsmStmt::NumInputs.
|
inlineexplicit |
unsigned GCCAsmStmt::AnalyzeAsmString | ( | SmallVectorImpl< AsmStringPiece > & | Pieces, |
const ASTContext & | C, | ||
unsigned & | DiagOffs | ||
) | const |
AnalyzeAsmString - Analyze the asm string of the current asm, decomposing it into pieces. If the asm string is erroneous, emit errors and return true, otherwise return false. This handles canonicalization and translation of strings from GCC syntax to LLVM IR syntax, and handles
AnalyzeAsmString - Analyze the asm string of the current asm, decomposing it into pieces. If the asm string is erroneous, emit errors and return true, otherwise return false.
Definition at line 473 of file Stmt.cpp.
References getAsmString(), clang::ASTContext::getLangOpts(), clang::StringLiteral::getLocationOfByte(), getNamedOperand(), clang::AsmStmt::getNumInputs(), clang::AsmStmt::getNumOutputs(), clang::AsmStmt::getNumPlusOperands(), clang::ASTContext::getSourceManager(), clang::StringLiteral::getString(), clang::ASTContext::getTargetInfo(), clang::TargetInfo::hasNoAsmVariants(), clang::isDigit(), clang::isLetter(), clang::AsmStmt::isSimple(), clang::Result, and SM.
Referenced by clang::Sema::ActOnGCCAsmStmt(), and generateAsmString().
std::string GCCAsmStmt::generateAsmString | ( | const ASTContext & | C | ) | const |
Assemble final IR asm string.
Assemble final IR asm string (GCC-style).
Definition at line 641 of file Stmt.cpp.
References AnalyzeAsmString().
|
inline |
Definition at line 1577 of file Stmt.h.
Referenced by AnalyzeAsmString().
|
inline |
StringRef GCCAsmStmt::getClobber | ( | unsigned | i | ) | const |
Definition at line 391 of file Stmt.cpp.
References getClobberStringLiteral(), and clang::StringLiteral::getString().
|
inline |
Definition at line 1714 of file Stmt.h.
Referenced by getClobber().
|
inline |
StringRef GCCAsmStmt::getInputConstraint | ( | unsigned | i | ) | const |
getInputConstraint - Return the specified input constraint. Unlike output constraints, these can be empty.
Definition at line 415 of file Stmt.cpp.
References getInputConstraintLiteral(), and clang::StringLiteral::getString().
|
inline |
Definition at line 1681 of file Stmt.h.
Referenced by getInputConstraint().
|
inline |
Definition at line 406 of file Stmt.cpp.
References clang::AsmStmt::Exprs, and clang::AsmStmt::NumOutputs.
Referenced by clang::Sema::ActOnGCCAsmStmt().
|
inline |
|
inline |
Definition at line 1672 of file Stmt.h.
Referenced by getNamedOperand().
|
inline |
|
inline |
int GCCAsmStmt::getNamedOperand | ( | StringRef | SymbolicName | ) | const |
getNamedOperand - Given a symbolic operand reference like %[foo], translate this into a numeric value needed to reference the same operand. This returns -1 if the operand name is invalid.
Definition at line 453 of file Stmt.cpp.
References getInputName(), clang::AsmStmt::getNumInputs(), clang::AsmStmt::getNumOutputs(), and getOutputName().
Referenced by AnalyzeAsmString().
StringRef GCCAsmStmt::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 402 of file Stmt.cpp.
References getOutputConstraintLiteral(), and clang::StringLiteral::getString().
|
inline |
Definition at line 1653 of file Stmt.h.
Referenced by getOutputConstraint().
|
inline |
Definition at line 395 of file Stmt.cpp.
References clang::AsmStmt::Exprs.
Referenced by clang::Sema::ActOnGCCAsmStmt().
|
inline |
|
inline |
Definition at line 1644 of file Stmt.h.
Referenced by getNamedOperand().
|
inline |
|
inline |
Definition at line 409 of file Stmt.cpp.
References clang::AsmStmt::Exprs, and clang::AsmStmt::NumOutputs.
Referenced by clang::Sema::ActOnGCCAsmStmt().
|
inline |
|
friend |