Candl 0.6.0
program.h
Go to the documentation of this file.
00001 
00037 #ifndef CANDL_PROGRAM_H
00038 # define CANDL_PROGRAM_H
00039 
00040 # include <stdio.h>
00041 # include <stdlib.h>
00042 # include <candl/matrix.h>
00043 # include <candl/statement.h>
00044 
00045 # ifdef CANDL_SUPPORTS_SCOPLIB
00046 #  include <scoplib/scop.h>
00047 # endif
00048 
00049 
00050 # if defined(__cplusplus)
00051 extern "C"
00052   {
00053 # endif
00054 
00059 struct candl_program
00060 {
00061   CandlMatrix * context;            
00062   int nb_statements;                
00063   CandlStatement ** statement;      
00066   CandlMatrix    ** transformation; 
00071   int* scalars_privatizable;
00072 };
00073 typedef struct candl_program CandlProgram;
00074 typedef struct candl_program candl_program_t;
00075 typedef struct candl_program * candl_program_p;
00076 
00077 
00078 /******************************************************************************
00079  *                          Structure display function                        *
00080  ******************************************************************************/
00081 void candl_program_print_structure(FILE *, candl_program_p, int);
00082 void candl_program_print(FILE *, candl_program_p);
00083 void candl_program_print_candl_file(FILE *, candl_program_p);
00084 
00085 /******************************************************************************
00086  *                         Memory alloc/dealloc function                      *
00087  ******************************************************************************/
00088 candl_program_p candl_program_malloc();
00089 void candl_program_free(candl_program_p);
00090 
00091 
00092 /******************************************************************************
00093  *                               Reading function                             *
00094  ******************************************************************************/
00095 candl_program_p candl_program_read(FILE *);
00096 /* This function is compiled if candl was configured with CLAN support. */
00097 # ifdef CANDL_SUPPORTS_SCOPLIB
00098 candl_program_p candl_program_read_scop(FILE *);
00099 # endif
00100 
00101 /******************************************************************************
00102  *                            Processing functions                            *
00103  ******************************************************************************/
00104 /* This function is compiled if candl was configured with CLAN support. */
00105 # ifdef CANDL_SUPPORTS_SCOPLIB
00106 candl_program_p candl_program_convert_scop(scoplib_scop_p, int**);
00107 # endif
00108 
00109 # if defined(__cplusplus)
00110   }
00111 # endif
00112 #endif /* define CANDL_PROGRAM_H */
00113