/**-------------------------------------------------------------------**
** CLooG **
**-------------------------------------------------------------------**
** statement.h **
**-------------------------------------------------------------------**
** First version: november 4th 2001 **
**-------------------------------------------------------------------**/
/******************************************************************************
* CLooG : the Chunky Loop Generator (experimental) *
******************************************************************************
* *
* Copyright (C) 2001-2005 Cedric Bastoul *
* *
* This library is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Lesser General Public *
* License as published by the Free Software Foundation; either *
* version 2.1 of the License, or (at your option) any later version. *
* *
* This library is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
* Lesser General Public License for more details. *
* *
* You should have received a copy of the GNU Lesser General Public *
* License along with this library; if not, write to the Free Software *
* Foundation, Inc., 51 Franklin Street, Fifth Floor, *
* Boston, MA 02110-1301 USA *
* *
* CLooG, the Chunky Loop Generator *
* Written by Cedric Bastoul, Cedric.Bastoul@inria.fr *
* *
******************************************************************************/
#ifndef CLOOG_STATEMENT_H
#define CLOOG_STATEMENT_H
#if defined(__cplusplus)
extern "C"
{
#endif
struct cloogstatement
{
CloogState *state; /* State. */
char *name; /* Name of the statement. */
int number; /* The statement unique number. */
void * usr ; /* A pointer for library users convenience. */
struct cloogstatement * next ; /* Pointer to the next statement with the
* same original domain and the same
* scattering function.
*/
} ;
typedef struct cloogstatement CloogStatement ;
/******************************************************************************
* Structure display function *
******************************************************************************/
void cloog_statement_print_structure(FILE *, CloogStatement *, int) ;
void cloog_statement_print(FILE *, CloogStatement *) ;
/******************************************************************************
* Memory deallocation function *
******************************************************************************/
void cloog_statement_free(CloogStatement *) ;
/******************************************************************************
* Processing functions *
******************************************************************************/
CloogStatement * cloog_statement_malloc(CloogState *state);
CloogStatement * cloog_statement_alloc(CloogState *state, int);
CloogStatement * cloog_statement_copy(CloogStatement *) ;
void cloog_statement_add(CloogStatement**, CloogStatement**, CloogStatement*) ;
#if defined(__cplusplus)
}
#endif
#endif /* define _H */