Go to the documentation of this file.00001
00042 #ifndef CANDL_DDV_H
00043 # define CANDL_DDV_H
00044
00045
00046 # include <stdio.h>
00047 # include <candl/statement.h>
00048 # include <candl/matrix.h>
00049 # include <candl/program.h>
00050 # include <candl/options.h>
00051 # include <candl/dependence.h>
00052
00053
00054
00055 # if defined(__cplusplus)
00056 extern "C"
00057 {
00058 # endif
00059
00060
00061
00062
00063
00064
00065
00085 enum dv_type {
00086 candl_dv_scalar, candl_dv_plus, candl_dv_minus, candl_dv_star, candl_dv_eq
00087 };
00088 typedef enum dv_type e_dv_type;
00089
00095 struct dv_descriptor {
00096 e_dv_type type;
00097 int value;
00098 };
00099 typedef struct dv_descriptor s_dv_descriptor;
00100
00105 struct candl_ddv {
00106 int loop_id;
00107 int length;
00108 s_dv_descriptor* data;
00109 struct candl_ddv* next;
00110 };
00111
00112 typedef struct candl_ddv CandlDDV;
00113
00114
00115
00116
00117
00118
00119
00120
00126 CandlDDV*
00127 candl_ddv_malloc();
00128
00129
00135 CandlDDV*
00136 candl_ddv_alloc(int);
00137
00138
00144 void
00145 candl_ddv_free(CandlDDV*);
00146
00147
00154 void
00155 candl_ddv_set_type_at(CandlDDV*, e_dv_type, int);
00156
00164 void
00165 candl_ddv_set_value_at(CandlDDV*, int, int);
00166
00167
00168
00169
00170
00171
00172
00177 void
00178 candl_ddv_print(FILE*, CandlDDV*);
00179
00180
00181
00182
00183
00184
00192 CandlDDV*
00193 candl_ddv_extract_in_loop(CandlProgram*, CandlDependence*, int);
00194
00195
00196
00197 # if defined(__cplusplus)
00198 }
00199 # endif
00200 #endif
00201