Intel SPMD Program Compiler  1.9.1
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
GotoStmt Class Reference

#include <stmt.h>

Inheritance diagram for GotoStmt:
Inheritance graph
[legend]
Collaboration diagram for GotoStmt:
Collaboration graph
[legend]

Public Member Functions

 GotoStmt (const char *label, SourcePos gotoPos, SourcePos idPos)
 
void EmitCode (FunctionEmitContext *ctx) const
 
void Print (int indent) const
 
StmtOptimize ()
 
StmtTypeCheck ()
 
int EstimateCost () const
 
- Public Member Functions inherited from Stmt
 Stmt (SourcePos p, unsigned scid)
 
- Public Member Functions inherited from ASTNode
 ASTNode (SourcePos p, unsigned scid)
 
virtual ~ASTNode ()
 
unsigned getValueID () const
 

Static Public Member Functions

static bool classof (GotoStmt const *)
 
static bool classof (ASTNode const *N)
 
- Static Public Member Functions inherited from Stmt
static bool classof (Stmt const *)
 
static bool classof (ASTNode const *N)
 
- Static Public Member Functions inherited from ASTNode
static bool classof (ASTNode const *)
 

Public Attributes

std::string label
 
SourcePos identifierPos
 
- Public Attributes inherited from ASTNode
SourcePos pos
 

Additional Inherited Members

- Public Types inherited from ASTNode
enum  ASTNodeTy {
  AddressOfExprID, AssignExprID, BinaryExprID, ConstExprID,
  DerefExprID, PtrDerefExprID, RefDerefExprID, ExprListID,
  FunctionCallExprID, FunctionSymbolExprID, IndexExprID, StructMemberExprID,
  VectorMemberExprID, NewExprID, NullPointerExprID, ReferenceExprID,
  SelectExprID, SizeOfExprID, SymbolExprID, SyncExprID,
  TypeCastExprID, UnaryExprID, MaxExprID, AssertStmtID,
  BreakStmtID, CaseStmtID, ContinueStmtID, DeclStmtID,
  DefaultStmtID, DeleteStmtID, DoStmtID, ExprStmtID,
  ForeachActiveStmtID, ForeachStmtID, ForeachUniqueStmtID, ForStmtID,
  GotoStmtID, IfStmtID, LabeledStmtID, PrintStmtID,
  ReturnStmtID, StmtListID, SwitchStmtID, UnmaskedStmtID
}
 

Detailed Description

A "goto" in an ispc program.

Definition at line 453 of file stmt.h.

Constructor & Destructor Documentation

GotoStmt::GotoStmt ( const char *  label,
SourcePos  gotoPos,
SourcePos  idPos 
)

Definition at line 3089 of file stmt.cpp.

References identifierPos, and label.

Member Function Documentation

static bool GotoStmt::classof ( GotoStmt const *  )
inlinestatic

Definition at line 457 of file stmt.h.

static bool GotoStmt::classof ( ASTNode const *  N)
inlinestatic

Definition at line 458 of file stmt.h.

References ASTNode::getValueID(), and ASTNode::GotoStmtID.

void GotoStmt::EmitCode ( FunctionEmitContext ctx) const
virtual
int GotoStmt::EstimateCost ( ) const
virtual

Estimate the execution cost of the node (not including the cost of the children. The value returned should be based on the COST_* enumerant values defined in ispc.h.

Implements ASTNode.

Definition at line 3157 of file stmt.cpp.

References COST_GOTO.

Stmt * GotoStmt::Optimize ( )
virtual

The Optimize() method should perform any appropriate early-stage optimizations on the node (e.g. constant folding). This method will be called after the node's children have already been optimized, and the caller will store the returned ASTNode * in place of the original node. This method should return NULL if an error is encountered during optimization.

Reimplemented from Stmt.

Definition at line 3145 of file stmt.cpp.

void GotoStmt::Print ( int  indent) const
virtual

Print a representation of the statement (and any children AST nodes) to standard output. This method is used for debuggins.

Implements Stmt.

Definition at line 3139 of file stmt.cpp.

References label.

Stmt * GotoStmt::TypeCheck ( )
virtual

Type checking should be performed by the node when this method is called. In the event of an error, a NULL value may be returned. As with ASTNode::Optimize(), the caller should store the returned pointer in place of the original ASTNode *.

Implements Stmt.

Definition at line 3151 of file stmt.cpp.

Member Data Documentation

SourcePos GotoStmt::identifierPos

Definition at line 471 of file stmt.h.

Referenced by EmitCode(), and GotoStmt().

std::string GotoStmt::label

Name of the label to jump to when the goto is executed.

Definition at line 470 of file stmt.h.

Referenced by EmitCode(), GotoStmt(), and Print().


The documentation for this class was generated from the following files: