First commit : 0.14.0 version (with roadmap in doc instead of
[cloog.git] / include / cloog / pprint.h
blobdc7dd948e3922418701c93118e1ed67876da82af
2 /**-------------------------------------------------------------------**
3 ** CLooG **
4 **-------------------------------------------------------------------**
5 ** pprint.h **
6 **-------------------------------------------------------------------**
7 ** First version: october 26th 2001 **
8 **-------------------------------------------------------------------**/
11 /******************************************************************************
12 * CLooG : the Chunky Loop Generator (experimental) *
13 ******************************************************************************
14 * *
15 * Copyright (C) 2001-2005 Cedric Bastoul *
16 * *
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 *
20 * version. *
21 * *
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 *
25 * for more details. *
26 * *
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 *
30 * *
31 * CLooG, the Chunky Loop Generator *
32 * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr *
33 * *
34 ******************************************************************************/
37 #ifndef CLOOG_PPRINT_H
38 #define CLOOG_PPRINT_H
39 #if defined(__cplusplus)
40 extern "C"
42 #endif
45 # define MAX_STRING_VAL 32
46 # define INDENT_STEP 2
47 # define ONE_TIME_LOOP -1
49 # define EQTYPE_CONSTANT 1
50 # define EQTYPE_PUREITEM 2
51 # define EQTYPE_EXAFFINE 3
53 # define LANGUAGE_C 0
54 # define LANGUAGE_FORTRAN 1
57 /**
58 * CloogInfos structure:
59 * this structure contains all the informations necessary for pretty printing,
60 * they come from the original CloogProgram structure (language, names), from
61 * genereral options (options) or are built only for pretty printing (stride).
62 * This structure is mainly there to reduce the number of function parameters,
63 * since most pprint.c functions need most of its field.
65 struct clooginfos
66 { Value * stride ; /**< The stride for each iterator. */
67 int language ; /**< 1 to generate FORTRAN, 0 for C otherwise. */
68 int nb_scattdims ; /**< Scattering dimension number. */
69 int * scaldims ; /**< Boolean array saying whether a given
70 * scattering dimension is scalar or not.
72 CloogNames * names ; /**< Names of iterators and parameters. */
73 CloogOptions * options ; /**< Options on CLooG's behaviour. */
74 } ;
75 typedef struct clooginfos CloogInfos ;
78 /******************************************************************************
79 * useful prototypes *
80 ******************************************************************************/
81 char * pprint_line(CloogMatrix *, CloogMatrix *, int, int, CloogInfos *) ;
82 char * pprint_minmax(CloogMatrix *, CloogMatrix *, int, int, int, CloogInfos *);
85 /******************************************************************************
86 * Structure display function *
87 ******************************************************************************/
88 void pprint(FILE *, CloogLoop *, CloogMatrix *, int, int, int, CloogInfos *) ;
91 #if defined(__cplusplus)
93 #endif
94 #endif /* define _H */