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

#include <stmt.h>

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

Public Member Functions

 CaseStmt (int value, Stmt *stmt, SourcePos pos)
 
void EmitCode (FunctionEmitContext *ctx) const
 
void Print (int indent) const
 
StmtTypeCheck ()
 
int EstimateCost () const
 
- Public Member Functions inherited from Stmt
 Stmt (SourcePos p, unsigned scid)
 
virtual StmtOptimize ()
 
- Public Member Functions inherited from ASTNode
 ASTNode (SourcePos p, unsigned scid)
 
virtual ~ASTNode ()
 
unsigned getValueID () const
 

Static Public Member Functions

static bool classof (CaseStmt 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

const int value
 
Stmtstmts
 
- 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

Statement corresponding to a "case" label in the program. In addition to the value associated with the "case", this statement also stores the statements following it.

Definition at line 341 of file stmt.h.

Constructor & Destructor Documentation

◆ CaseStmt()

CaseStmt::CaseStmt ( int  value,
Stmt stmt,
SourcePos  pos 
)

Definition at line 2451 of file stmt.cpp.

References stmts.

Member Function Documentation

◆ classof() [1/2]

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

Definition at line 345 of file stmt.h.

◆ classof() [2/2]

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

Definition at line 346 of file stmt.h.

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

◆ EmitCode()

void CaseStmt::EmitCode ( FunctionEmitContext ctx) const
virtual

Emit LLVM IR for the statement, using the FunctionEmitContext to create the necessary instructions.

Implements Stmt.

Definition at line 2453 of file stmt.cpp.

References FunctionEmitContext::EmitCaseLabel(), Stmt::EmitCode(), lCheckMask(), ASTNode::pos, stmts, and value.

◆ EstimateCost()

int CaseStmt::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 2468 of file stmt.cpp.

◆ Print()

void CaseStmt::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 2459 of file stmt.cpp.

References ASTNode::pos, Stmt::Print(), SourcePos::Print(), stmts, and value.

◆ TypeCheck()

Stmt * CaseStmt::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 2466 of file stmt.cpp.

Member Data Documentation

◆ stmts

Stmt* CaseStmt::stmts

Definition at line 356 of file stmt.h.

Referenced by CaseStmt(), EmitCode(), Print(), and WalkAST().

◆ value

const int CaseStmt::value

Integer value after the "case" statement

Definition at line 355 of file stmt.h.

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


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