1
2   /**-------------------------------------------------------------------**
3    **                              CLooG                                **
4    **-------------------------------------------------------------------**
5    **                           statement.h                             **
6    **-------------------------------------------------------------------**
7    **                  First version: november 4th 2001                 **
8    **-------------------------------------------------------------------**/
9
10
11/******************************************************************************
12 *               CLooG : the Chunky Loop Generator (experimental)             *
13 ******************************************************************************
14 *                                                                            *
15 * Copyright (C) 2001-2005 Cedric Bastoul                                     *
16 *                                                                            *
17 * This library is free software; you can redistribute it and/or              *
18 * modify it under the terms of the GNU Lesser General Public                 *
19 * License as published by the Free Software Foundation; either               *
20 * version 2.1 of the License, or (at your option) any later version.         *
21 *                                                                            *
22 * This library is distributed in the hope that it will be useful,            *
23 * but WITHOUT ANY WARRANTY; without even the implied warranty of             *
24 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU          *
25 * Lesser General Public License for more details.                            *
26 *                                                                            *
27 * You should have received a copy of the GNU Lesser General Public           *
28 * License along with this library; if not, write to the Free Software        *
29 * Foundation, Inc., 51 Franklin Street, Fifth Floor,                         *
30 * Boston, MA  02110-1301  USA                                                *
31 *                                                                            *
32 * CLooG, the Chunky Loop Generator                                           *
33 * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr                         *
34 *                                                                            *
35 ******************************************************************************/
36
37
38#ifndef CLOOG_STATEMENT_H
39#define CLOOG_STATEMENT_H
40#if defined(__cplusplus)
41extern "C"
42  {
43#endif
44
45
46struct cloogstatement
47{
48  CloogState *state;             /* State. */
49  char *name;			 /* Name of the statement. */
50  int number;                    /* The statement unique number. */
51  void * usr ;                   /* A pointer for library users convenience. */
52  struct cloogstatement * next ; /* Pointer to the next statement with the
53                                  * same original domain and the same
54				  * scattering function.
55				  */
56} ;
57typedef struct cloogstatement CloogStatement ;
58
59
60/******************************************************************************
61 *                          Structure display function                        *
62 ******************************************************************************/
63void cloog_statement_print_structure(FILE *, CloogStatement *, int) ;
64void cloog_statement_print(FILE *, CloogStatement *) ;
65
66
67/******************************************************************************
68 *                         Memory deallocation function                       *
69 ******************************************************************************/
70void cloog_statement_free(CloogStatement *) ;
71
72
73/******************************************************************************
74 *                            Processing functions                            *
75 ******************************************************************************/
76CloogStatement * cloog_statement_malloc(CloogState *state);
77CloogStatement * cloog_statement_alloc(CloogState *state, int);
78CloogStatement * cloog_statement_copy(CloogStatement *) ;
79void cloog_statement_add(CloogStatement**, CloogStatement**, CloogStatement*) ;
80
81#if defined(__cplusplus)
82  }
83#endif
84#endif /* define _H */
85
86