62 virtual void Print(
int indent)
const = 0;
81 void Print(
int indent)
const;
108 void Print(
int indent)
const;
114 std::vector<VariableDeclaration>
vars;
127 void Print(
int indent)
const;
148 void emitMaskedTrueAndFalse(
FunctionEmitContext *ctx, llvm::Value *oldMask, llvm::Value *test)
const;
150 void emitMaskAllOn(
FunctionEmitContext *ctx, llvm::Value *test, llvm::BasicBlock *bDone)
const;
152 llvm::BasicBlock *bDone)
const;
166 void Print(
int indent)
const;
188 void Print(
int indent)
const;
216 void Print(
int indent)
const;
232 void Print(
int indent)
const;
242 ForeachStmt(
const std::vector<Symbol *> &loopVars,
const std::vector<Expr *> &startExprs,
243 const std::vector<Expr *> &endExprs,
Stmt *bodyStatements,
bool tiled,
SourcePos pos);
249 void Print(
int indent)
const;
271 void Print(
int indent)
const;
291 void Print(
int indent)
const;
311 void Print(
int indent)
const;
329 void Print(
int indent)
const;
348 void Print(
int indent)
const;
368 void Print(
int indent)
const;
385 void Print(
int indent)
const;
405 void Print(
int indent)
const;
426 void Print(
int indent)
const;
448 void Print(
int indent)
const;
478 void Print(
int indent)
const;
506 void Print(
int indent)
const;
527 void Print(
int indent)
const;
static bool classof(ASTNode const *N)
static bool classof(LabeledStmt const *)
virtual int EstimateCost() const =0
static bool classof(ASTNode const *N)
std::vector< VariableDeclaration > vars
static bool classof(ASTNode const *N)
Stmt(SourcePos p, unsigned scid)
const bool doCoherentCheck
static bool classof(ASTNode const *N)
static bool classof(ForeachStmt const *)
std::vector< Expr * > endExprs
static bool classof(ASTNode const *N)
static bool classof(ASTNode const *N)
Representation of a print() statement in the program.
static bool classof(AssertStmt const *)
Interface class for statements in the ispc language.
Statement representing a single declaration (which in turn may declare a number of variables...
static bool classof(ASTNode const *N)
static bool classof(ContinueStmt const *)
const std::string message
Statement representing a single expression.
static bool classof(ForStmt const *)
Stmt * CreateForeachActiveStmt(Symbol *iterSym, Stmt *stmts, SourcePos pos)
static bool classof(ASTNode const *N)
static bool classof(ASTNode const *N)
static bool classof(ASTNode const *N)
static bool classof(ExprStmt const *)
Statement implementation for 'for' loops (as well as for 'while' loops).
static bool classof(ASTNode const *N)
static bool classof(ASTNode const *N)
Representation of an assert statement in the program.
static bool classof(ForeachUniqueStmt const *)
Statement implementation representing a 'do' statement in the program.
static bool classof(ASTNode const *N)
virtual void EmitCode(FunctionEmitContext *ctx) const =0
static bool classof(StmtList const *)
static bool classof(Stmt const *)
static bool classof(UnmaskedStmt const *)
static bool classof(ASTNode const *N)
static bool classof(GotoStmt const *)
Statement implementation for a break statement in the program.
Statement implementation for a 'return' statement in the program.
static bool classof(SwitchStmt const *)
Abstract base class for nodes in the abstract syntax tree (AST).
static bool classof(BreakStmt const *)
static bool classof(DefaultStmt const *)
virtual Stmt * TypeCheck()=0
unsigned getValueID() const
Statement implementation for a continue statement in the program.
static bool classof(ASTNode const *N)
VariableDeclaration(Symbol *s=NULL, Expr *i=NULL)
static bool classof(CaseStmt const *)
Representation of a range of positions in a source file.
static bool classof(ASTNode const *N)
static bool classof(ASTNode const *N)
const bool doCoherentCheck
static bool classof(ReturnStmt const *)
static bool classof(ASTNode const *N)
static bool classof(ASTNode const *N)
std::vector< Expr * > startExprs
static bool classof(DoStmt const *)
Representation of a program symbol.
std::vector< Stmt * > stmts
Statement implementation for parallel 'foreach' loops.
static bool classof(DeclStmt const *)
Statement representing a single if statement, possibly with an else clause.
Expr is the abstract base class that defines the interface that all expression types must implement...
virtual Stmt * Optimize()
std::vector< Symbol * > dimVariables
Representation of a list of statements in the program.
static bool classof(DeleteStmt const *)
virtual void Print(int indent) const =0
static bool classof(ASTNode const *N)
static bool classof(PrintStmt const *)
static bool classof(ASTNode const *N)
static bool classof(ASTNode const *N)
static bool classof(ForeachActiveStmt const *)
Main ispc.header file. Defines Target, Globals and Opt classes.
static bool classof(IfStmt const *)