PIPS
comp_sections-local.h
Go to the documentation of this file.
1 /*
2 
3  $Id: comp_sections-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 /*{{{ defines*/
25 /* classifying subscript types for reference template
26  * done in newgen now
27  */
28 #define LIN_INVARIANT 2
29 #define LIN_VARIANT 1
30 #define NON_LINEAR -1
31 
32 /* accessing DAD components */
33 #define LSEC(x,i) GetBoundary(x,i,1)
34 #define USEC(x,i) GetBoundary(x,i,0)
35 #define PUT_NEST(d,val) context_info_nest(simple_section_context(comp_sec_hull(comp_desc_section(d)))) = val
36 #define GET_NEST(d) context_info_nest(simple_section_context(comp_sec_hull(comp_desc_section(d))))
37 
38 /*}}}*/
39 
41 enum RefType {READ, WRITE};
43 
44 /* used for merging linear expressions */
45 typedef enum { PLUS, MINUS} OpFlag;
46 
47 /* only used for in print routines. The analysis does not
48  * pose any limit on the number of array dimensions
49  */
50 #define MAX_RANK 8
51 
52 /*{{{ Dad definition*/
53  /* data structures for data access descriptor */
54 
55  /* Reference Template part of DAD, an array of integers allocated dynamically */
56  typedef unsigned int tRT;
57 
58  /* A linear expression in Pips ; Pvecteur is a pointer */
59 #define LinExpr Pvecteur
60 
61  /* bounds are retained as high level tree structures to accommodate symbolic
62  information in boundary expressions. When all the symbolic information
63  gets resolved then the tree nodes are collapsed into a single instruction
64  holding the constant value
65  */
66 
67  typedef struct sSimpBound
68  {
69  LinExpr lb; /* lower bound */
70  LinExpr ub; /* upper bound */
71  } tSS;
72 
73  /* Simple Section part of DAD
74  An array of type SimpBound struct allocated
75  dynamically based on rank of array
76  */
77 
78  typedef struct DadComponent
79  {
83 
84 
85 /*}}}*/
86 /*{{{ Data structures required for computing Dads*/
87 
88 /*{{{ structures for TranslateToLoop*/
89 /* structure to hold both Old and New variants */
90 typedef struct Variants {
94 
95 /*}}}*/
96 
97 /*}}}*/
98 
100 
101 
102 #define SEQUENTIAL_COMPSEC_SUFFIX ".csec"
103 #define USER_COMPSEC_SUFFIX ".ucsec"
104 
@ SINGLE
unsigned int tRT
{{ Dad definition
struct Variants tVariants
}}
BoundType
}}
simple_section tDad
}}
struct DadComponent DadComp
Simple Section part of DAD An array of type SimpBound struct allocated dynamically based on rank of a...
struct sSimpBound tSS
bounds are retained as high level tree structures to accommodate symbolic information in boundary exp...
OpFlag
used for merging linear expressions
Simple Section part of DAD An array of type SimpBound struct allocated dynamically based on rank of a...
le type des coefficients dans les vecteurs: Value est defini dans le package arithmetique
Definition: vecteur-local.h:89
The structure used to build lists in NewGen.
Definition: newgen_list.h:41
bounds are retained as high level tree structures to accommodate symbolic information in boundary exp...
LinExpr ub
lower bound