PIPS
operators.c
Go to the documentation of this file.
1 /*
2 
3  $Id: operators.c 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 #ifdef HAVE_CONFIG_H
25  #include "pips_config.h"
26 #endif
27 #include "all.h"
28 
29 /* Only the Hull needs to be initialsed */
31 {
32  /* precondition : this function should be called
33  for array varaibles only
34  */
35 
36  /*{{{ code*/
37  /*{{{ inits*/
38  comp_desc Descriptor;
39  simple_section Hull;
40  reference DupRef;
41  entity e;
42  action DupAct;
43  comp_sec DupSec;
44  /*}}}*/
45 
46  pips_debug(3, "begin\n");
47  DupRef = copy_reference(ref);
48 
49  e = reference_variable(DupRef);
50 
51  /*{{{ code*/
52  if (entity_scalar_p(e)) {
53  pips_debug(1, "InitCompDesc : scalar variable encountered \n ");
54  return NULL;
55  }
56 
57  pips_debug(3, "InitCompDesc : Array entity name %s \n ",func_entity_name(e) );
58 
59  Hull = AllocateSimpleSection(DupRef);
60  DupAct = make_action(ReadWrite, UU);
61  DupSec = make_comp_sec(Hull, NIL);
62  Descriptor = make_comp_desc (DupRef, DupAct, DupSec) ;
63  /*}}}*/
64  pips_debug(3, "end\n");
65 
66  return(Descriptor);
67  /*}}}*/
68 }
69 
70 
71 
72 /* The multidimensional union of two complementary sections
73  * performed on a 2-d basis
74  */
77  comp_sec __attribute__ ((unused)) cs2)
78 {
80  unsigned int i;
81  unsigned int Rank = 0;
82  unsigned int NoOfImages = (Rank*Rank)/2;
83 
84  for (i = 0; i < NoOfImages; i++) {
85  }
86  /* insert a debug */
87 
88  return(result);
89 }
90 
91 bool
93  comp_sec __attribute__ ((unused)) cs2)
94 {
95  return false;
96 }
97 
float a2sf[2] __attribute__((aligned(16)))
USER generates a user error (i.e., non fatal) by printing the given MSG according to the FMT.
Definition: 3dnow.h:3
comp_desc make_comp_desc(reference a1, action a2, comp_sec a3)
Definition: compsec.c:96
comp_sec make_comp_sec(simple_section a1, list a2)
Definition: compsec.c:180
action make_action(enum action_utype tag, void *val)
Definition: effects.c:120
reference copy_reference(reference p)
REFERENCE.
Definition: ri.c:2047
static reference ref
Current stmt (an integer)
Definition: adg_read_paf.c:163
simple_section AllocateSimpleSection(reference)
Definition: ss.c:467
#define comp_sec_undefined
Definition: compsec.h:223
char * func_entity_name(entity)
#define NIL
The empty list (nil in Lisp)
Definition: newgen_list.h:47
#define pips_debug
these macros use the GNU extensions that allow variadic macros, including with an empty list.
Definition: misc-local.h:145
int tag
TAG.
Definition: newgen_types.h:92
#define UU
Definition: newgen_types.h:98
comp_sec CompUnion(comp_sec __attribute__((unused)) cs1, comp_sec __attribute__((unused)) cs2)
The multidimensional union of two complementary sections performed on a 2-d basis.
Definition: operators.c:76
comp_desc InitCompDesc(reference ref, tag ReadWrite)
Only the Hull needs to be initialsed.
Definition: operators.c:30
bool CompIntersection(comp_sec __attribute__((unused)) cs1, comp_sec __attribute__((unused)) cs2)
Definition: operators.c:92
bool entity_scalar_p(entity)
The concrete type of e is a scalar type.
Definition: variable.c:1113
#define reference_variable(x)
Definition: ri.h:2326