00001 00002 /*+------- <| --------------------------------------------------------** 00003 ** A Clan/Scop ** 00004 **--- /.\ -----------------------------------------------------** 00005 ** <| [""M# scop.h ** 00006 **- A | # -----------------------------------------------------** 00007 ** /.\ [""M# First version: 30/04/2008 ** 00008 **- [""M# | # U"U#U -----------------------------------------------** 00009 | # | # \ .:/ 00010 | # | #___| # 00011 ****** | "--' .-" ****************************************************** 00012 * |"-"-"-"-"-#-#-## Clan : the Chunky Loop Analyzer (experimental) * 00013 **** | # ## ###### ***************************************************** 00014 * \ .::::'/ * 00015 * \ ::::'/ Copyright (C) 2008 Cedric Bastoul * 00016 * :8a| # # ## * 00017 * ::88a ### This is free software; you can redistribute it * 00018 * ::::888a 8a ##::. and/or modify it under the terms of the GNU Lesser * 00019 * ::::::::888a88a[]::: General Public License as published by the Free * 00020 *::8:::::::::SUNDOGa8a::. Software Foundation, either version 2.1 of the * 00021 *::::::::8::::888:Y8888:: License, or (at your option) any later version. * 00022 *::::':::88::::888::Y88a::::::::::::... * 00023 *::'::.. . ..... .. ... . * 00024 * This software is distributed in the hope that it will be useful, but * 00025 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * 00026 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * 00027 * for more details. * 00028 * * 00029 * You should have received a copy of the GNU Lesser General Public License * 00030 * along with software; if not, write to the Free Software Foundation, Inc., * 00031 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * 00032 * * 00033 * Clan, the Chunky Loop Analyzer * 00034 * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * 00035 * * 00036 ******************************************************************************/ 00037 00038 00039 /*+**************************************************************************** 00040 * THIS FILE HAS BEEN AUTOMATICALLY GENERATED FROM scop.h.in BY configure * 00041 ******************************************************************************/ 00042 00043 00044 #ifndef SCOPLIB_SCOP_H 00045 # define SCOPLIB_SCOP_H 00046 00047 # include <unistd.h> 00048 00049 # define SCOPLIB_RELEASE "0.2.0" 00050 # define SCOPLIB_VERSION "64" 00051 # ifndef SCOPLIB_INT_T_IS_LONGLONG 00052 # define SCOPLIB_INT_T_IS_LONGLONG 00053 # endif 00054 00055 # include <scoplib/macros.h> 00056 # include <scoplib/matrix.h> 00057 # include <scoplib/statement.h> 00058 # include <scoplib/vector.h> 00059 00060 00061 # if defined(__cplusplus) 00062 extern "C" 00063 { 00064 # endif 00065 00066 00071 struct scoplib_scop 00072 { 00073 scoplib_matrix_p context; 00074 int nb_parameters; 00075 char ** parameters; 00076 int nb_arrays; 00077 char ** arrays; 00078 scoplib_statement_p statement; 00079 char* optiontags; 00081 void* usr; 00083 }; 00084 typedef struct scoplib_scop scoplib_scop_t; 00085 typedef struct scoplib_scop * scoplib_scop_p; 00086 00087 00088 /*+**************************************************************************** 00089 * Structure display function * 00090 ******************************************************************************/ 00091 void scoplib_scop_print_structure(FILE *, scoplib_scop_p, int); 00092 void scoplib_scop_print(FILE *, scoplib_scop_p); 00093 void scoplib_scop_print_dot_scop(FILE *, scoplib_scop_p); 00094 void scoplib_scop_print_dot_scop_options(FILE * file, scoplib_scop_p scop, 00095 int options); 00096 00097 00098 /****************************************************************************** 00099 * Reading function * 00100 ******************************************************************************/ 00101 scoplib_scop_p scoplib_scop_read(FILE *); 00102 char* scoplib_scop_tag_content(scoplib_scop_p, char*, char*); 00103 char* scoplib_scop_tag_content_from_string(char*, char*, char*); 00104 00105 00106 /*+**************************************************************************** 00107 * Memory allocation/deallocation function * 00108 ******************************************************************************/ 00109 scoplib_scop_p scoplib_scop_malloc(); 00110 void scoplib_scop_free(scoplib_scop_p); 00111 scoplib_scop_p scoplib_scop_dup(scoplib_scop_p); 00112 00113 00114 00115 # if defined(__cplusplus) 00116 } 00117 # endif 00118 00119 #endif /* define SCOPLIB_SCOP_H */