PIPS
atomizer-local.h
Go to the documentation of this file.
1 /*
2 
3  $Id: atomizer-local.h 23065 2016-03-02 09:05:50Z coelho $
4 
5  Copyright 1989-2016 MINES ParisTech
6 
7  This file is part of PIPS.
8 
9  PIPS is free software: you can redistribute it and/or modify it
10  under the terms of the GNU General Public License as published by
11  the Free Software Foundation, either version 3 of the License, or
12  any later version.
13 
14  PIPS is distributed in the hope that it will be useful, but WITHOUT ANY
15  WARRANTY; without even the implied warranty of MERCHANTABILITY or
16  FITNESS FOR A PARTICULAR PURPOSE.
17 
18  See the GNU General Public License for more details.
19 
20  You should have received a copy of the GNU General Public License
21  along with PIPS. If not, see <http://www.gnu.org/licenses/>.
22 
23 */
24 /*
25  #define ATOMIZER_MODULE_NAME "ATOMIZE"
26  */
27 #define TMP_ENT 1
28 #define AUX_ENT 2
29 #define DOUBLE_PRECISION_SIZE 8
30 
31 /* During the computation, the program has to deal with blocks of statements.
32  * We define a new structure in order to have a simple control over all
33  * the manipulations of the blocks of statements.
34  *
35  * With this new structure we know the current statement being translated
36  * and the list of statements (ie the block) in which we put the new
37  * statements created.
38  */
39 typedef struct {
43  } Block;
44 /* The list "first" is a truncated list from the first to the current
45  * statement (not included).
46  * The list "last" is a truncated list from the current statement (included)
47  * to the last.
48  * The union of "first" and "last" is equal to the entire block.
49  *
50  * The bool "stmt_generated" says if the current statement has:
51  * _ true : already generated statements.
52  * _ false : not generated statements.
53  *
54  * Thus, when the current statement generates a new statement it is put at the
55  * end of the list "first" (just before the current statement).
56  * The current statement gives its caracteristics to the new one if the bool
57  * "stmt_generated" is false; this allows to keep these caracteristics
58  * at the first statement of the list generated by the translation of the
59  * current statement.
60  * The caracteristics of a statement are its "label", "number", "ordering" and
61  * "comments" (cf. RI).
62  */
63 
64 /* This global variable is used for the modification of the control graph,
65  * see commentaries of atomizer_of_unstructured() in atomizer.c.
66  */
67 extern list l_inst;
68 
69 // moved to ri-util/variable.c
70 // extern list integer_entities, real_entities, complex_entities,
71 // logical_entities, double_entities, char_entities;
72 
73 /* Mappings for the cumulated effects of statements. */
74 /* extern statement_mapping cumulated_effects_map;*/
list l_inst
The list "first" is a truncated list from the first to the current statement (not included).
Definition: atomizer.h:87
During the computation, the program has to deal with blocks of statements.
bool stmt_generated
list first
list last
The structure used to build lists in NewGen.
Definition: newgen_list.h:41