]>
Commit | Line | Data |
---|---|---|
252b5132 RH |
1 | #ifndef cg_arcs_h |
2 | #define cg_arcs_h | |
3 | ||
252b5132 RH |
4 | /* |
5 | * Arc structure for call-graph. | |
6 | * | |
7 | * With pointers to the symbols of the parent and the child, a count | |
8 | * of how many times this arc was traversed, and pointers to the next | |
9 | * parent of this child and the next child of this parent. | |
10 | */ | |
11 | typedef struct arc | |
12 | { | |
13 | Sym *parent; /* source vertice of arc */ | |
14 | Sym *child; /* dest vertice of arc */ | |
15 | unsigned long count; /* # of calls from parent to child */ | |
16 | double time; /* time inherited along arc */ | |
17 | double child_time; /* child-time inherited along arc */ | |
18 | struct arc *next_parent; /* next parent of CHILD */ | |
19 | struct arc *next_child; /* next child of PARENT */ | |
20 | int has_been_placed; /* have this arc's functions been placed? */ | |
21 | } | |
22 | Arc; | |
23 | ||
24 | extern unsigned int num_cycles; /* number of cycles discovered */ | |
25 | extern Sym *cycle_header; /* cycle headers */ | |
26 | ||
3e8f6abf BE |
27 | extern void arc_add (Sym * parent, Sym * child, unsigned long count); |
28 | extern Arc *arc_lookup (Sym * parent, Sym * child); | |
29 | extern Sym **cg_assemble (void); | |
252b5132 RH |
30 | extern Arc **arcs; |
31 | extern unsigned int numarcs; | |
32 | ||
33 | #endif /* cg_arcs_h */ |