Intel® Implicit SPMD Program Compiler (Intel® ISPC)  1.13.0
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 397 of file stmt.h.

Constructor & Destructor Documentation

◆ GotoStmt()

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

Definition at line 2471 of file stmt.cpp.

References identifierPos, and label.

Member Function Documentation

◆ classof() [1/2]

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

Definition at line 401 of file stmt.h.

◆ classof() [2/2]

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

◆ EmitCode()

void GotoStmt::EmitCode ( FunctionEmitContext ctx) const
virtual

◆ EstimateCost()

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 2520 of file stmt.cpp.

References COST_GOTO.

◆ Optimize()

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 2516 of file stmt.cpp.

◆ Print()

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 2514 of file stmt.cpp.

References label.

◆ TypeCheck()

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 2518 of file stmt.cpp.

Member Data Documentation

◆ identifierPos

SourcePos GotoStmt::identifierPos

Definition at line 413 of file stmt.h.

Referenced by EmitCode(), and GotoStmt().

◆ label

std::string GotoStmt::label

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

Definition at line 412 of file stmt.h.

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


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