| 1 | /* |
|---|
| 2 | |
|---|
| 3 | Copyright (c) 1992, 1993 |
|---|
| 4 | Regents of the University of California |
|---|
| 5 | All rights reserved. |
|---|
| 6 | |
|---|
| 7 | Use and copying of this software and preparation of derivative works |
|---|
| 8 | based upon this software are permitted. However, any distribution of |
|---|
| 9 | this software or derivative works must include the above copyright |
|---|
| 10 | notice. |
|---|
| 11 | |
|---|
| 12 | This software is made available AS IS, and neither the Electronics |
|---|
| 13 | Research Laboratory or the Universify of California make any |
|---|
| 14 | warranty about the software, its performance or its conformity to |
|---|
| 15 | any specification. |
|---|
| 16 | |
|---|
| 17 | Author: Szu-Tsung Cheng, stcheng@ic.Berkeley.EDU |
|---|
| 18 | 10/92 |
|---|
| 19 | 10/93 |
|---|
| 20 | |
|---|
| 21 | $Header: /projects/development/hsv/CVSRepository/vl2mv/src/parser/vl_flowgraph.h,v 1.2 2009/03/09 20:25:58 fabio Exp $ |
|---|
| 22 | |
|---|
| 23 | |
|---|
| 24 | */ |
|---|
| 25 | |
|---|
| 26 | EXTERN graph_t *fg_new_graph ARGS(()); |
|---|
| 27 | |
|---|
| 28 | |
|---|
| 29 | EXTERN edge_t *fg_new_always_block ARGS(()); |
|---|
| 30 | EXTERN void fg_new_seq_block ARGS(()); |
|---|
| 31 | EXTERN vertex_t *fg_new_ifelse_block ARGS((vertex_t**, vertex_t**, vertex_t**, vertex_t**, vertex_t**, vertex_t**, vertex_t**, vertex_t**)); |
|---|
| 32 | EXTERN vertex_t *fg_new_case_block ARGS((vertex_t**, vertex_t**, vertex_t**, vertex_t**, vertex_t**, vertex_t**, vertex_t**, vertex_t**)); |
|---|
| 33 | EXTERN edge_t *fg_new_case_tag_block ARGS((vertex_t*, vertex_t*, vertex_t*, vertex_t*)); |
|---|
| 34 | |
|---|
| 35 | |
|---|
| 36 | EXTERN vertex_t *fg_new_pause_node ARGS(()); |
|---|
| 37 | EXTERN vertex_t *fg_new_assign_node ARGS(()); |
|---|
| 38 | |
|---|
| 39 | |
|---|
| 40 | EXTERN int fg_reduce_simple_branches_back_block ARGS((vertex_t*, vertex_t*, vertex_t*, vertex_t*)); |
|---|
| 41 | EXTERN edge_t *fg_closeloop ARGS(()); |
|---|
| 42 | EXTERN edge_t *fg_force_edge ARGS((vertex_t*, vertex_t*, vertex_t*, vertex_t*)); |
|---|
| 43 | |
|---|
| 44 | |
|---|
| 45 | EXTERN fg_graph_info *fg_new_graph_info ARGS(()); |
|---|
| 46 | EXTERN fg_graph_info *get_assoc_lc_name ARGS((char *loc, char *lc_name)); |
|---|
| 47 | EXTERN fg_node_info *fg_new_node_info ARGS((int)); |
|---|
| 48 | EXTERN fg_arc_info *fg_new_arc_info ARGS((int)); |
|---|
| 49 | EXTERN void fg_update_node_info ARGS((vertex_t*, char*)); |
|---|
| 50 | EXTERN void fg_update_arc_info ARGS((edge_t*, char*)); |
|---|
| 51 | |
|---|
| 52 | |
|---|
| 53 | EXTERN void fg_clean_vertex_data ARGS((gGeneric)); |
|---|
| 54 | EXTERN void fg_clean_edge_data ARGS((gGeneric)); |
|---|
| 55 | |
|---|
| 56 | |
|---|
| 57 | EXTERN vl_term *fg_write_lc_in_LabelSet ARGS((FILE*, st_table*, int)); |
|---|
| 58 | EXTERN vl_term *fg_write_if_priority_decoder ARGS((FILE*, vl_term*, vl_term*, vl_term*)); |
|---|
| 59 | EXTERN vl_term *fg_write_case_priority_decoder ARGS((FILE*, vl_term*, vl_term*, vl_term*, vl_term*)); |
|---|
| 60 | EXTERN void fg_if_collect_pause_rewrite_ctrl ARGS((FILE*, vertex_t*, vertex_t*, vl_term**)); |
|---|
| 61 | EXTERN void fg_put_loc_context ARGS((FILE *file, st_table *pre_cond, char *lc_name)); |
|---|
| 62 | EXTERN int fg_check_timer_consistency ARGS((FILE *file, graph_t *graph)); |
|---|
| 63 | EXTERN void fg_set_fg ARGS((graph_t *graph)); |
|---|
| 64 | |
|---|
| 65 | EXTERN st_table* fg_assign_temporal_context ARGS((vertex_t*)); |
|---|
| 66 | |
|---|
| 67 | |
|---|
| 68 | EXTERN st_table* fg_graph_has_one_data_detector ARGS((graph_t*)); |
|---|
| 69 | EXTERN int fg_new_fg_id ARGS(()); |
|---|
| 70 | EXTERN void fg_set_fg_id ARGS((int id)); |
|---|
| 71 | EXTERN int fg_fg_id ARGS(()); |
|---|
| 72 | EXTERN void fg_associate_id_vars ARGS((int id, st_table *vars)); |
|---|
| 73 | EXTERN void fg_loop_collect_pause ARGS((FILE *file, vertex_t *src, |
|---|
| 74 | vertex_t *sink, |
|---|
| 75 | vl_term **dom_sel)); |
|---|
| 76 | EXTERN void fg_case_collect_pause_rewrite_ctrl ARGS((FILE *file, |
|---|
| 77 | vertex_t *src, |
|---|
| 78 | vertex_t *sink, |
|---|
| 79 | vl_term **spacial_ctrl, |
|---|
| 80 | vl_term **temporal_ctrl)); |
|---|
| 81 | EXTERN void fg_write_timer ARGS((FILE *file, graph_t *graph)); |
|---|
| 82 | EXTERN vertex_t *fg_pseudo_sink ARGS(()); |
|---|
| 83 | EXTERN int fg_check_cyclic ARGS(()); |
|---|
| 84 | EXTERN void fg_clean_fg ARGS(()); |
|---|
| 85 | EXTERN int fg_not_empty ARGS(()); |
|---|
| 86 | EXTERN void fg_record_SrcSink ARGS((vertex_t **src, vertex_t **sink, |
|---|
| 87 | vertex_t **cmp_src, vertex_t **cmp_sink)); |
|---|
| 88 | EXTERN void fg_restore_SrcSink ARGS((vertex_t *src, vertex_t *sink, |
|---|
| 89 | vertex_t *cmp_src, vertex_t *cmp_sink)); |
|---|
| 90 | EXTERN vertex_t *fg_new_loop_block ARGS((vertex_t **old_srce, |
|---|
| 91 | vertex_t **old_sink, |
|---|
| 92 | vertex_t **new_src, |
|---|
| 93 | vertex_t **new_sink, |
|---|
| 94 | vertex_t **old_cmpsrc, |
|---|
| 95 | vertex_t **old_cmpsink, |
|---|
| 96 | vertex_t **new_cmpsrc, |
|---|
| 97 | vertex_t **new_cmpsink)); |
|---|