ACT Library
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
ActApplyPass Class Reference

#include <aflat.h>

Inheritance diagram for ActApplyPass:
ActPass

Public Member Functions

 ActApplyPass (Act *a)
 
 ~ActApplyPass ()
 
int run (Process *p=NULL)
 
void run_per_type (Process *p=NULL)
 
void setCookie (void *)
 
void setInstFn (void(*f)(void *, ActId *, UserDef *))
 
void setConnPairFn (void(*f)(void *, ActId *, ActId *))
 
void setProcFn (void(*f)(void *, Process *))
 
void setChannelFn (void(*f)(void *, Channel *))
 
void setDataFn (void(*f)(void *, Data *))
 
void printns (FILE *fp)
 
- Public Member Functions inherited from ActPass
 ActPass (Act *_a, const char *name, int doroot=0)
 
virtual ~ActPass ()
 release storage
 
void update (Process *p)
 
int rundeps (Process *p=NULL)
 
const char * getName ()
 
virtual int run (Process *p=NULL)
 
int completed ()
 
int pending ()
 
void * getMap (UserDef *u)
 
void * getGlobalInfo ()
 
ActgetAct ()
 
ActPassgetPass (const char *name)
 
ProcessgetRoot ()
 
virtual void run_recursive (Process *p=NULL, int mode=0)
 
void disableUpdate ()
 
void enableUpdate ()
 
void mkStickyVisited ()
 
void clrStickyVisited ()
 

Private Member Functions

int init ()
 
void * local_op (Process *p, int mode)
 
void * local_op (Channel *c, int mode)
 
void * local_op (Data *d, int mode)
 
void push_namespace_name (const char *)
 
void push_name (const char *, Array *arr=NULL)
 
void pop_name ()
 
void push_name_suffix (const char *, Array *arr=NULL)
 
void pop_name_suffix ()
 
void _flat_connections_bool (ValueIdx *vx)
 
void _flat_single_connection (ActId *one, Array *oa, ActId *two, Array *ta, const char *nm, Arraystep *na, ActNamespace *isoneglobal, ActNamespace *istwoglobal)
 
void _flat_rec_bool_conns (ActId *one, ActId *two, UserDef *ux, Array *oa, Array *ta, ActNamespace *isoneglobal, ActNamespace *istwoglobal)
 
void _any_global_conns (act_connection *c)
 
void _flat_scope (Scope *)
 
void _flat_ns (ActNamespace *)
 

Private Attributes

void(* apply_per_proc_fn )(void *, Process *)
 
void(* apply_per_channel_fn )(void *, Channel *)
 
void(* apply_per_data_fn )(void *, Data *)
 
void(* apply_user_fn )(void *, ActId *, UserDef *)
 
void(* apply_conn_fn )(void *, ActId *, ActId *)
 
void * cookie
 
list_t * prefixes
 
list_t * prefix_array
 
list_t * suffixes
 
list_t * suffix_array
 

Additional Inherited Members

- Static Public Member Functions inherited from ActPass
static void refreshAll (Act *a, Process *p=NULL)
 
- Protected Member Functions inherited from ActPass
virtual void _actual_update (Process *p)
 
int AddDependency (const char *pass)
 
- Protected Attributes inherited from ActPass
int _finished
 has the pass finished execution?
 
int _sticky_visited
 
Acta
 
list_t * deps
 
list_t * fwdeps
 
const char * name
 the name for the pass
 
int _update_propagate
 
int _root_dirty
 
Process_root
 the root of the design
 
void * _global_info
 

Constructor & Destructor Documentation

◆ ActApplyPass()

ActApplyPass::ActApplyPass ( Act a)

◆ ~ActApplyPass()

ActApplyPass::~ActApplyPass ( )

Member Function Documentation

◆ _any_global_conns()

void ActApplyPass::_any_global_conns ( act_connection c)
private

◆ _flat_connections_bool()

void ActApplyPass::_flat_connections_bool ( ValueIdx vx)
private

◆ _flat_ns()

void ActApplyPass::_flat_ns ( ActNamespace )
private

◆ _flat_rec_bool_conns()

void ActApplyPass::_flat_rec_bool_conns ( ActId one,
ActId two,
UserDef ux,
Array oa,
Array ta,
ActNamespace isoneglobal,
ActNamespace istwoglobal 
)
private

◆ _flat_scope()

void ActApplyPass::_flat_scope ( Scope )
private

◆ _flat_single_connection()

void ActApplyPass::_flat_single_connection ( ActId one,
Array oa,
ActId two,
Array ta,
const char *  nm,
Arraystep na,
ActNamespace isoneglobal,
ActNamespace istwoglobal 
)
private

◆ init()

int ActApplyPass::init ( )
private

◆ local_op() [1/3]

void * ActApplyPass::local_op ( Channel c,
int  mode 
)
privatevirtual

Same as local_op() for processes, except for channels.

Parameters
cis the channel type
modeis the mode flag passed to this call.
Returns
the data structure that is to be associated with this channel

Reimplemented from ActPass.

◆ local_op() [2/3]

void * ActApplyPass::local_op ( Data d,
int  mode 
)
privatevirtual

Same as local_op() for processes, except for data types

Parameters
dis the data type
modeis the mode flag passed to this call.
Returns
the data structure that is to be associated with this data type

Reimplemented from ActPass.

◆ local_op() [3/3]

void * ActApplyPass::local_op ( Process p,
int  mode 
)
privatevirtual

This function is called exactly once per process that is reachable from the root of the pass. It is called after all the types instantiated within the process are visited.

Parameters
pis the process type
modeis the mode flag passed to this call.
Returns
the data structure that is to be associated with this process

Reimplemented from ActPass.

◆ pop_name()

void ActApplyPass::pop_name ( )
private

◆ pop_name_suffix()

void ActApplyPass::pop_name_suffix ( )
private

◆ printns()

void ActApplyPass::printns ( FILE *  fp)

◆ push_name()

void ActApplyPass::push_name ( const char *  ,
Array arr = NULL 
)
private

◆ push_name_suffix()

void ActApplyPass::push_name_suffix ( const char *  ,
Array arr = NULL 
)
private

◆ push_namespace_name()

void ActApplyPass::push_namespace_name ( const char *  )
private

◆ run()

int ActApplyPass::run ( Process p = NULL)
virtual

Run the entire pass with the specified top-level process name

Parameters
pis the tyoe of the top-level process; NULL means that the top-level of the design is the global namespace and not a specific process.
Returns
1 on success, 0 if any dependencies failed.

Reimplemented from ActPass.

◆ run_per_type()

void ActApplyPass::run_per_type ( Process p = NULL)

◆ setChannelFn()

void ActApplyPass::setChannelFn ( void(*)(void *, Channel *)  f)

◆ setConnPairFn()

void ActApplyPass::setConnPairFn ( void(*)(void *, ActId *, ActId *)  f)

◆ setCookie()

void ActApplyPass::setCookie ( void *  )

◆ setDataFn()

void ActApplyPass::setDataFn ( void(*)(void *, Data *)  f)

◆ setInstFn()

void ActApplyPass::setInstFn ( void(*)(void *, ActId *, UserDef *)  f)

◆ setProcFn()

void ActApplyPass::setProcFn ( void(*)(void *, Process *)  f)

Member Data Documentation

◆ apply_conn_fn

void(* ActApplyPass::apply_conn_fn) (void *, ActId *, ActId *)
private

◆ apply_per_channel_fn

void(* ActApplyPass::apply_per_channel_fn) (void *, Channel *)
private

◆ apply_per_data_fn

void(* ActApplyPass::apply_per_data_fn) (void *, Data *)
private

◆ apply_per_proc_fn

void(* ActApplyPass::apply_per_proc_fn) (void *, Process *)
private

◆ apply_user_fn

void(* ActApplyPass::apply_user_fn) (void *, ActId *, UserDef *)
private

◆ cookie

void* ActApplyPass::cookie
private

◆ prefix_array

list_t* ActApplyPass::prefix_array
private

◆ prefixes

list_t* ActApplyPass::prefixes
private

◆ suffix_array

list_t* ActApplyPass::suffix_array
private

◆ suffixes

list_t* ActApplyPass::suffixes
private

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