/**-------------------------------------------------------------------** ** CLooG ** **-------------------------------------------------------------------** ** names.h ** **-------------------------------------------------------------------** ** First version: august 1st 2002 ** **-------------------------------------------------------------------**/ /****************************************************************************** * 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_NAMES_H #define CLOOG_NAMES_H #if defined(__cplusplus) extern "C" { #endif # define MAX_NAME 50 # define FIRST_PARAMETER 'M' # define FIRST_ITERATOR 'i' /** * CloogNames structure: * this structure contains all the informations about parameter and iterator * names (as strings). */ struct cloognames { int nb_scalars ; /**< Scalar dimension number. */ int nb_scattering ; /**< Scattering iterator number. */ int nb_iterators ; /**< Iterator number. */ int nb_parameters ; /**< Parameter number. */ char ** scalars ; /**< The scalar names (an array of strings). */ char ** scattering ; /**< The scattering names (an array of strings). */ char ** iterators ; /**< The iterator names (an array of strings). */ char ** parameters ; /**< The parameter names (an array of strings). */ int references; /**< Number of references to this structure. */ } ; typedef struct cloognames CloogNames ; /****************************************************************************** * Structure display function * ******************************************************************************/ void cloog_names_print_structure(FILE *, CloogNames *, int) ; void cloog_names_print(FILE *, CloogNames *) ; /****************************************************************************** * Memory deallocation function * ******************************************************************************/ void cloog_names_free(CloogNames *) ; /****************************************************************************** * Reading functions * ******************************************************************************/ char ** cloog_names_read_strings(FILE *file, int nb_items); /****************************************************************************** * Processing functions * ******************************************************************************/ CloogNames * cloog_names_malloc(void); CloogNames * cloog_names_copy(CloogNames *names); CloogNames * cloog_names_alloc(void); char ** cloog_names_generate_items(int, char *, char) ; CloogNames * cloog_names_generate(int, int, int, int, char, char, char, char) ; void cloog_names_scalarize(CloogNames *, int, int *) ; const char * cloog_names_name_at_level(CloogNames *names, int level); #if defined(__cplusplus) } #endif #endif /* define _H */