Pin
Classes | Enumerations | Functions
edg.cpp File Reference
#include "level_base.H"
#include "level_core.H"
#include "container.H"

Classes

struct  LEVEL_CORE::EDG_STRUCT_BASE
 
class  LEVEL_CORE::BBL_EDG_CONTAINER_PRED
 
class  LEVEL_CORE::BBL_EDG_CONTAINER_SUCC
 

Enumerations

enum  LEVEL_CORE::EDG_TYPE {
  LEVEL_CORE::EDG_TYPE_INVALID,
  LEVEL_CORE::EDG_TYPE_RETURN,
  LEVEL_CORE::EDG_TYPE_CALL,
  LEVEL_CORE::EDG_TYPE_LINK,
  LEVEL_CORE::EDG_TYPE_COMP,
  LEVEL_CORE::EDG_TYPE_FALSE,
  LEVEL_CORE::EDG_TYPE_BRANCH,
  LEVEL_CORE::EDG_TYPE_SWITCH,
  LEVEL_CORE::EDG_TYPE_PREFETCH,
  LEVEL_CORE::EDG_TYPE_EXCEPTION,
  LEVEL_CORE::EDG_TYPE_NORMAL,
  LEVEL_CORE::EDG_TYPE_IBRANCH,
  EDG_TYPE_LAST
}
 
enum  LEVEL_CORE::EDG_STATE {
  EDG_STATE_INVALID,
  EDG_STATE_LAST
}
 

Functions

ARRAYBASE LEVEL_CORE::EdgArrayBase ("edg pool", 64 *1024)
 
STRIPE< EDG_STRUCT_BASE > LEVEL_CORE::EdgStripeBase ("edg stripe base","core",&EdgArrayBase)
 
EDG LEVEL_CORE::EDG_INVALID ()
 
BOOL LEVEL_CORE::EDG_valid (EDG x)
 
INT32 LEVEL_CORE::EDG_no (EDG x)
 
BOOL LEVEL_CORE::EDG_allocated (EDG x)
 
BOOL LEVEL_CORE::EDG_mark (EDG x)
 
VOID LEVEL_CORE::EDG_mark_set (EDG x, BOOL y)
 
BOOL LEVEL_CORE::EDG_mark2 (EDG x)
 
VOID LEVEL_CORE::EDG_mark2_set (EDG x, BOOL y)
 
EDG_TYPE LEVEL_CORE::EDG_type (EDG x)
 
VOID LEVEL_CORE::EDG_type_set (EDG x, EDG_TYPE y)
 
BOOL LEVEL_CORE::EDG_linked (EDG x)
 
BBL LEVEL_CORE::EDG_bbl_src (EDG x)
 
BBL LEVEL_CORE::EDG_bbl_dst (EDG x)
 
EDG LEVEL_CORE::EDG_next_succ (EDG x)
 
EDG LEVEL_CORE::EDG_next_pred (EDG x)
 
EXT LEVEL_CORE::EDG_ext (EDG x)
 
INT32 LEVEL_CORE::EDG_weight (EDG x)
 
VOID LEVEL_CORE::EDG_weight_set (EDG x, INT32 y)
 
LOCALINLINE VOID LEVEL_CORE::EDG_allocated_set (EDG x, BOOL y)
 
LOCALINLINE VOID LEVEL_CORE::EDG_linked_set (EDG x, BOOL y)
 
LOCALINLINE VOID LEVEL_CORE::EDG_next_succ_set (EDG x, EDG y)
 
LOCALINLINE VOID LEVEL_CORE::EDG_next_pred_set (EDG x, EDG y)
 
LOCALINLINE VOID LEVEL_CORE::EDG_bbl_dst_set (EDG x, BBL y)
 
LOCALINLINE VOID LEVEL_CORE::EDG_bbl_src_set (EDG x, BBL y)
 
std::string LEVEL_CORE::str (EDG edg)
 

Detailed Description

This file contains EDG primitives

Enumeration Type Documentation

◆ EDG_STATE

EDG state enumeration - not used

◆ EDG_TYPE

EDG type enumeration

Enumerator
EDG_TYPE_INVALID 

illegal type,

EDG_TYPE_RETURN 

return edge (not used)

EDG_TYPE_CALL 

call edge (callsite -> callee)

EDG_TYPE_LINK 

link edge (callsite->returnsite)

EDG_TYPE_COMP 

compensation edge (not used)

EDG_TYPE_FALSE 

generic fall through edge (predicated)

EDG_TYPE_BRANCH 

branch edge

EDG_TYPE_SWITCH 

switch edge

EDG_TYPE_PREFETCH 

prefetch edge

EDG_TYPE_EXCEPTION 

EH edge (callsite -> landing pad )

EDG_TYPE_NORMAL 

fall through edge (not predicated)

EDG_TYPE_IBRANCH 

indirect branch (lookup -> target)

Function Documentation

◆ EdgArrayBase()

ARRAYBASE LEVEL_CORE::EdgArrayBase ( "edg pool"  ,
64 *  1024 
)

The root for all EDG stripes

◆ EdgStripeBase()

STRIPE<EDG_STRUCT_BASE> LEVEL_CORE::EdgStripeBase ( "edg stripe base"  ,
"core"  ,
EdgArrayBase 
)

The base stripe for REL