Skip to content

Commit

Permalink
allow a process to be flattened, not just the top level namespace
Browse files Browse the repository at this point in the history
  • Loading branch information
rmanohar committed Jul 7, 2019
1 parent 4d44485 commit 6d9557b
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 0 deletions.
7 changes: 7 additions & 0 deletions passes/flatten/aflat.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,15 @@ void aflat_prs (Act *a, output_formats fmt);

void act_flat_apply_conn_pairs (Act *a, void *cookie,
void (*f)(void *c, ActId *one, ActId *two));

void act_flat_apply_conn_pairs (Act *a, void *cookie, Process *top,
void (*f)(void *c, ActId *one, ActId *two));

void act_flat_apply_processes (Act *a, void *cookie,
void (*f)(void *c, ActId *name, Process *p));

void act_flat_apply_processes (Act *a, void *cookie, Process *top,
void (*f)(void *c, ActId *name, Process *p));


#endif /* __AFLAT_H__ */
32 changes: 32 additions & 0 deletions passes/flatten/flatten.cc
Original file line number Diff line number Diff line change
Expand Up @@ -897,6 +897,23 @@ void act_flat_apply_conn_pairs (Act *a, void *cookie,
g_apply_fn = NULL;
}

void act_flat_apply_conn_pairs (Act *a, void *cookie, Process *proc,
void (*f)(void *, ActId *, ActId *))
{
g_cookie = cookie;
g_apply_fn = f;
if (!f) return;
prefixes = list_new ();
prefix_array = list_new ();
_flat_scope (proc->CurScope());
list_free (prefixes);
list_free (prefix_array);
g_cookie = NULL;
g_apply_fn = NULL;
}



void act_flat_apply_processes (Act *a, void *cookie,
void (*f)(void *, ActId *, Process *p))
{
Expand All @@ -911,3 +928,18 @@ void act_flat_apply_processes (Act *a, void *cookie,
g_cookie = NULL;
g_apply_procfn = NULL;
}

void act_flat_apply_processes (Act *a, void *cookie, Process *proc,
void (*f)(void *, ActId *, Process *p))
{
g_cookie = cookie;
g_apply_procfn = f;
if (!f) return;
prefixes = list_new ();
prefix_array = list_new ();
_flat_scope (proc->CurScope());
list_free (prefixes);
list_free (prefix_array);
g_cookie = NULL;
g_apply_procfn = NULL;
}
5 changes: 5 additions & 0 deletions passes/passes.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,15 @@ void act_prsflat_lvs (Act *a);
/* flat connection pair pass */
void act_flat_apply_conn_pairs (Act *a, void *cookie,
void (*f)(void *c, ActId *one, ActId *two));
void act_flat_apply_conn_pairs (Act *a, void *cookie, Process *top,
void (*f)(void *c, ActId *one, ActId *two));


/* flat process pass */
void act_flat_apply_processes (Act *a, void *cookie,
void (*f)(void *c, ActId *name, Process *p));
void act_flat_apply_processes (Act *a, void *cookie, Process *top,
void (*f)(void *c, ActId *name, Process *p));

/* create netlist */
void act_prs_to_netlist (Act *, Process *);
Expand Down

0 comments on commit 6d9557b

Please sign in to comment.