]>
Commit | Line | Data |
---|---|---|
69e6ee2f HK |
1 | ------------------------------------------------------------------------------ |
2 | -- -- | |
3 | -- GNAT COMPILER COMPONENTS -- | |
4 | -- -- | |
5 | -- B I N D O . A U G M E N T O R S -- | |
6 | -- -- | |
7 | -- S p e c -- | |
8 | -- -- | |
4b490c1e | 9 | -- Copyright (C) 2019-2020, Free Software Foundation, Inc. -- |
69e6ee2f HK |
10 | -- -- |
11 | -- GNAT is free software; you can redistribute it and/or modify it under -- | |
12 | -- terms of the GNU General Public License as published by the Free Soft- -- | |
13 | -- ware Foundation; either version 3, or (at your option) any later ver- -- | |
14 | -- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- | |
15 | -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- | |
16 | -- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -- | |
17 | -- for more details. You should have received a copy of the GNU General -- | |
18 | -- Public License distributed with GNAT; see file COPYING3. If not, go to -- | |
19 | -- http://www.gnu.org/licenses for a complete copy of the license. -- | |
20 | -- -- | |
21 | -- GNAT was originally developed by the GNAT team at New York University. -- | |
22 | -- Extensive contributions were provided by Ada Core Technologies Inc. -- | |
23 | -- -- | |
24 | ------------------------------------------------------------------------------ | |
25 | ||
26 | -- For full architecture, see unit Bindo. | |
27 | ||
866000e7 GD |
28 | -- The following unit contains facilities to enhance the library graph, which |
29 | -- reflects source dependencies between units, with information obtained from | |
30 | -- the invocation graph, which reflects all activations of tasks, calls, and | |
69e6ee2f HK |
31 | -- instantiations within units. |
32 | ||
33 | with Bindo.Graphs; | |
34 | use Bindo.Graphs; | |
35 | use Bindo.Graphs.Invocation_Graphs; | |
36 | use Bindo.Graphs.Library_Graphs; | |
37 | ||
38 | package Bindo.Augmentors is | |
39 | ||
40 | ------------------------------ | |
41 | -- Library_Graph_Augmentors -- | |
42 | ------------------------------ | |
43 | ||
44 | package Library_Graph_Augmentors is | |
45 | procedure Augment_Library_Graph | |
75cfda8b HK |
46 | (Inv_Graph : Invocation_Graph; |
47 | Lib_Graph : Library_Graph); | |
48 | -- Augment library graph Lib_Graph with information from invocation | |
49 | -- graph Inv_Graph as follows: | |
69e6ee2f HK |
50 | -- |
51 | -- 1) Traverse the invocation graph starting from each elaboration | |
52 | -- procedure of unit Root. | |
53 | -- | |
54 | -- 2) Each time the traversal transitions from one unit into another | |
55 | -- unit Curr, add an invocation edge between predecessor Curr and | |
56 | -- successor Root in the library graph. | |
57 | -- | |
58 | -- 3) Do the above steps for all units with an elaboration procedure. | |
59 | ||
60 | end Library_Graph_Augmentors; | |
61 | ||
62 | end Bindo.Augmentors; |