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)); |
---|