Intel SPMD Program Compiler  1.11.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 398 of file stmt.h.

Constructor & Destructor Documentation

◆ GotoStmt()

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

Definition at line 2774 of file stmt.cpp.

References identifierPos, and label.

Member Function Documentation

◆ classof() [1/2]

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

Definition at line 402 of file stmt.h.

◆ classof() [2/2]

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

Definition at line 403 of file stmt.h.

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

◆ 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 2823 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 2819 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 2817 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 2821 of file stmt.cpp.

Member Data Documentation

◆ identifierPos

SourcePos GotoStmt::identifierPos

Definition at line 414 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 413 of file stmt.h.

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


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