2 /**-------------------------------------------------------------------**
4 **-------------------------------------------------------------------**
6 **-------------------------------------------------------------------**
7 ** First version: august 1st 2002 **
8 **-------------------------------------------------------------------**/
11 /******************************************************************************
12 * CLooG : the Chunky Loop Generator (experimental) *
13 ******************************************************************************
15 * Copyright (C) 2001-2005 Cedric Bastoul *
17 * This is free software; you can redistribute it and/or modify it under the *
18 * terms of the GNU General Public License as published by the Free Software *
19 * Foundation; either version 2 of the License, or (at your option) any later *
22 * This software is distributed in the hope that it will be useful, but *
23 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY *
24 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License *
27 * You should have received a copy of the GNU General Public License along *
28 * with software; if not, write to the Free Software Foundation, Inc., *
29 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
31 * CLooG, the Chunky Loop Generator *
32 * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr *
34 ******************************************************************************/
39 #if defined(__cplusplus)
46 # define FIRST_PARAMETER 'M'
47 # define FIRST_ITERATOR 'i'
51 * CloogNames structure:
52 * this structure contains all the informations about parameter and iterator
56 { int nb_scalars
; /**< Scalar dimension number. */
57 int nb_scattering
; /**< Scattering iterator number. */
58 int nb_iterators
; /**< Iterator number. */
59 int nb_parameters
; /**< Parameter number. */
60 char ** scalars
; /**< The scalar names (an array of strings). */
61 char ** scattering
; /**< The scattering names (an array of strings). */
62 char ** iterators
; /**< The iterator names (an array of strings). */
63 char ** parameters
; /**< The parameter names (an array of strings). */
65 typedef struct cloognames CloogNames
;
68 /******************************************************************************
69 * Structure display function *
70 ******************************************************************************/
71 void cloog_names_print_structure(FILE *, CloogNames
*, int) ;
72 void cloog_names_print(FILE *, CloogNames
*) ;
75 /******************************************************************************
76 * Memory deallocation function *
77 ******************************************************************************/
78 void cloog_names_free(CloogNames
*) ;
81 /******************************************************************************
83 ******************************************************************************/
84 char ** cloog_names_read_strings(FILE *, int, char *, char) ;
87 /******************************************************************************
88 * Processing functions *
89 ******************************************************************************/
90 CloogNames
* cloog_names_malloc() ;
91 CloogNames
* cloog_names_alloc(int,int,int,int,char **,char **,char **,char **);
92 char ** cloog_names_generate_items(int, char *, char) ;
93 CloogNames
* cloog_names_generate(int, int, int, int, char, char, char, char) ;
94 void cloog_names_scalarize(CloogNames
*, int, int *) ;
96 #if defined(__cplusplus)
99 #endif /* define _H */