• Main Page
  • Classes
  • Files
  • File List
  • File Members

candl.h

Go to the documentation of this file.
00001 
00037 /******************************************************************************
00038  *  THIS FILE HAS BEEN AUTOMATICALLY GENERATED FROM candl.h.in BY configure   *
00039  ******************************************************************************/
00040 
00041 
00042 #ifndef CANDL_H
00043 # define CANDL_H
00044 
00045 # define CANDL_RELEASE "0.5.0"
00046 # define CANDL_VERSION "64"
00047 # define CANDL_SUPPORTS_SCOPLIB
00048 # define CANDL_SUPPORTS_ISL
00049 
00050 
00051 # include <piplib/piplib64.h>
00052 # include <candl/options.h>
00053 # include <candl/matrix.h>
00054 # include <candl/statement.h>
00055 # include <candl/program.h>
00056 # include <candl/dependence.h>
00057 # include <candl/ddv.h>
00058 # include <candl/violation.h>
00059 
00060 # define CANDL_UNSET -1 /* Must be negative (we do use that property).
00061                          * All other constants have to be different.
00062                          */
00063 
00064 # define CANDL_RAW    1
00065 # define CANDL_WAR    2
00066 # define CANDL_WAW    3
00067 # define CANDL_RAR    4
00068 
00069 # define CANDL_ASSIGNMENT  1
00070 # define CANDL_P_REDUCTION 2
00071 # define CANDL_M_REDUCTION 3
00072 # define CANDL_T_REDUCTION 4
00073 
00074 # define CANDL_EQUAL 1
00075 # define CANDL_POSIT 2
00076 # define CANDL_LATER 3
00077 # define CANDL_NEVER 4
00078 
00079 # define CANDL_NB_INFOS  3
00080 
00081 # define CANDL_MAX_STRING  2048
00082 # define CANDL_TEMP_OUTPUT "candl.temp"
00083 
00084 /* Useful macros. */
00085 # define CANDL_max(x,y)    ((x) > (y)? (x) : (y))
00086 # define CANDL_min(x,y)    ((x) < (y)? (x) : (y))
00087 
00088 # define CANDL_FAIL(msg)   { fprintf(stderr, "[Candl] " msg "\n"); exit(1); }
00089 
00090 /******************************************************************************
00091  *                                   FORMAT                                   *
00092  ******************************************************************************/
00093 #if defined(LINEAR_VALUE_IS_LONGLONG)
00094 #define CANDL_FMT "%4lld "
00095 #elif defined(LINEAR_VALUE_IS_LONG)
00096 #define CANDL_FMT "%4ld "
00097 #else  /* GNUMP */
00098 #define CANDL_FMT "%4s"
00099 #endif
00100 
00101 /******************************************************************************
00102  *                             CANDL GMP MACROS                               *
00103  ******************************************************************************/
00104 #ifdef LINEAR_VALUE_IS_MP
00105 /* Basic Macros */
00106 #define CANDL_init(val)                (mpz_init((val)))
00107 #define CANDL_assign(v1,v2)            (mpz_set((v1),(v2)))
00108 #define CANDL_set_si(val,i)            (mpz_set_si((val),(i)))
00109 #define CANDL_get_si(val)              (mpz_get_si((val)))
00110 #define CANDL_clear(val)               (mpz_clear((val)))
00111 #define CANDL_print(Dst,fmt,val)       { char *str; \
00112                                          str = mpz_get_str(0,10,(val)); \
00113                                          fprintf((Dst),(fmt),str); free(str); \
00114                                        }
00115 
00116 /* Boolean operators on 'Value' or 'Entier' */
00117 #define CANDL_eq(v1,v2)                (mpz_cmp((v1),(v2)) == 0)
00118 #define CANDL_ne(v1,v2)                (mpz_cmp((v1),(v2)) != 0)
00119 
00120 /* Binary operators on 'Value' or 'Entier' */
00121 #define CANDL_increment(ref,val)       (mpz_add_ui((ref),(val),1))
00122 #define CANDL_decrement(ref,val)       (mpz_sub_ui((ref),(val),1))
00123 #define CANDL_subtract(ref,val1,val2) (mpz_sub((ref),(val1),(val2)))
00124 #define CANDL_oppose(ref,val)          (mpz_neg((ref),(val)))
00125 
00126 /* Conditional operations on 'Value' or 'Entier' */
00127 #define CANDL_zero_p(val)              (mpz_sgn(val) == 0)
00128 #define CANDL_notzero_p(val)           (mpz_sgn(val) != 0)
00129 
00130 /******************************************************************************
00131  *                          CANDL BASIC TYPES MACROS                          *
00132  ******************************************************************************/
00133 #else
00134 /* Basic Macros */
00135 #define CANDL_init(val)                ((val) = 0)
00136 #define CANDL_assign(v1,v2)            ((v1)  = (v2))
00137 #define CANDL_set_si(val,i)            ((val) = (Entier)(i))
00138 #define CANDL_get_si(val)              ((val))
00139 #define CANDL_clear(val)               ((val) = 0)
00140 #define CANDL_print(Dst,fmt,val)       (fprintf((Dst),(fmt),(val)))
00141 
00142 /* Boolean operators on 'Value' or 'Entier' */
00143 #define CANDL_eq(v1,v2)                ((v1)==(v2))
00144 #define CANDL_ne(v1,v2)                ((v1)!=(v2))
00145 
00146 /* Binary operators on 'Value' or 'Entier' */
00147 #define CANDL_increment(ref,val)       ((ref) = (val)+(Entier)(1))
00148 #define CANDL_decrement(ref,val)       ((ref) = (val)-(Entier)(1))
00149 #define CANDL_subtract(ref,val1,val2) ((ref) = (val1)-(val2))
00150 #define CANDL_oppose(ref,val)          ((ref) = (-(val)))
00151 
00152 /* Conditional operations on 'Value' or 'Entier' */
00153 #define CANDL_zero_p(val)               CANDL_eq(val,0)
00154 #define CANDL_notzero_p(val)            CANDL_ne(val,0)
00155 
00156 #endif
00157 
00158 #endif // !CANDL_H

Generated on Thu Jul 7 2011 11:26:26 for Candl by  doxygen 1.7.1