6 #ifndef ri_util_header_included
7 #define ri_util_header_included
82 #define UNBOUNDED_DIMENSION_NAME "UNBOUNDED-DIMENSION"
83 #define IMPLIED_DO_NAME "IMPLIED-DO"
84 #define IMPLIED_DO_FUNCTION_NAME "IMPLIED-DO"
85 #define REPEAT_VALUE_NAME "REPEAT-VALUE"
86 #define REPEAT_VALUE_FUNCTION_NAME "REPEAT-VALUE"
87 #define STATIC_INITIALIZATION_NAME "STATIC-INITIALIZATION"
88 #define STATIC_INITIALIZATION_FUNCTION_NAME "STATIC-INITIALIZATION"
89 #define DATA_LIST_FUNCTION_NAME "DATA-LIST="
90 #define IO_LIST_STRING_NAME "IOLIST="
93 #define BRACE_INTRINSIC "BRACE_INTRINSIC"
94 #define NULL_STATEMENT_INTRINSIC "NULL_STATEMENT_INTRINSIC"
96 #define IMPLIED_COMPLEX_NAME "CMPLX_"
97 #define IMPLIED_DCOMPLEX_NAME "DCMPLX_"
99 #define FIELD_OPERATOR_NAME "."
100 #define POINT_TO_OPERATOR_NAME "->"
101 #define DEREFERENCING_OPERATOR_NAME "*indirection"
103 #define ASSIGN_OPERATOR_NAME "="
104 #define ASSIGN_OPERATOR_PRECEDENCE (2)
105 #define POST_INCREMENT_OPERATOR_NAME "post++"
106 #define POST_DECREMENT_OPERATOR_NAME "post--"
107 #define PRE_INCREMENT_OPERATOR_NAME "++pre"
108 #define PRE_DECREMENT_OPERATOR_NAME "--pre"
109 #define MULTIPLY_UPDATE_OPERATOR_NAME "*="
110 #define DIVIDE_UPDATE_OPERATOR_NAME "/="
111 #define PLUS_UPDATE_OPERATOR_NAME "+="
112 #define MINUS_UPDATE_OPERATOR_NAME "-="
113 #define LEFT_SHIFT_UPDATE_OPERATOR_NAME "<<="
114 #define RIGHT_SHIFT_UPDATE_OPERATOR_NAME ">>="
115 #define BITWISE_OR_UPDATE_OPERATOR_NAME "|="
117 #define COMMA_OPERATOR_NAME ","
119 #define PLUS_OPERATOR_NAME "+"
120 #define PLUS_C_OPERATOR_NAME "+C"
121 #define MINUS_OPERATOR_NAME "-"
122 #define MINUS_C_OPERATOR_NAME "-C"
123 #define UNARY_MINUS_OPERATOR_NAME "--"
124 #define UNARY_PLUS_OPERATOR_NAME "+unary"
125 #define MULTIPLY_OPERATOR_NAME "*"
126 #define DIVIDE_OPERATOR_NAME "/"
127 #define INVERSE_OPERATOR_NAME "_INV_"
128 #define POWER_OPERATOR_NAME "**"
129 #define MODULO_OPERATOR_NAME "MOD"
130 #define REAL_MODULO_OPERATOR_NAME "AMOD"
131 #define DOUBLE_MODULO_OPERATOR_NAME "DMOD"
132 #define SIGN_OPERATOR_NAME "SIGN"
133 #define ISIGN_OPERATOR_NAME "ISIGN"
134 #define DSIGN_OPERATOR_NAME "DSIGN"
135 #define DIM_OPERATOR_NAME "DIM"
136 #define IDIM_OPERATOR_NAME "IDIM"
137 #define DDIM_OPERATOR_NAME "DDIM"
138 #define DPROD_OPERATOR_NAME "DPROD"
139 #define CONJG_OPERATOR_NAME "CONJG"
140 #define DCONJG_OPERATOR_NAME "DCONJG"
141 #define SQRT_OPERATOR_NAME "SQRT"
142 #define DSQRT_OPERATOR_NAME "DSQRT"
143 #define CSQRT_OPERATOR_NAME "CSQRT"
144 #define CDSQRT_OPERATOR_NAME "CDSQRT"
145 #define EXP_OPERATOR_NAME "EXP"
146 #define DEXP_OPERATOR_NAME "DEXP"
147 #define CEXP_OPERATOR_NAME "CEXP"
148 #define CDEXP_OPERATOR_NAME "CDEXP"
149 #define LOG_OPERATOR_NAME "LOG"
150 #define ALOG_OPERATOR_NAME "ALOG"
151 #define DLOG_OPERATOR_NAME "DLOG"
152 #define CLOG_OPERATOR_NAME "CLOG"
153 #define CDLOG_OPERATOR_NAME "CDLOG"
154 #define LOG10_OPERATOR_NAME "LOG10"
155 #define ALOG10_OPERATOR_NAME "ALOG10"
156 #define DLOG10_OPERATOR_NAME "DLOG10"
157 #define SIN_OPERATOR_NAME "SIN"
158 #define DSIN_OPERATOR_NAME "DSIN"
159 #define CSIN_OPERATOR_NAME "CSIN"
160 #define CDSIN_OPERATOR_NAME "CDSIN"
161 #define COS_OPERATOR_NAME "COS"
162 #define DCOS_OPERATOR_NAME "DCOS"
163 #define CCOS_OPERATOR_NAME "CCOS"
164 #define CDCOS_OPERATOR_NAME "CDCOS"
165 #define TAN_OPERATOR_NAME "TAN"
166 #define DTAN_OPERATOR_NAME "DTAN"
167 #define ASIN_OPERATOR_NAME "ASIN"
168 #define DASIN_OPERATOR_NAME "DASIN"
169 #define ACOS_OPERATOR_NAME "ACOS"
170 #define DACOS_OPERATOR_NAME "DACOS"
171 #define ATAN_OPERATOR_NAME "ATAN"
172 #define DATAN_OPERATOR_NAME "DATAN"
173 #define ATAN2_OPERATOR_NAME "ATAN2"
174 #define DATAN2_OPERATOR_NAME "DATAN2"
175 #define SINH_OPERATOR_NAME "SINH"
176 #define DSINH_OPERATOR_NAME "DSINH"
177 #define COSH_OPERATOR_NAME "COSH"
178 #define DCOSH_OPERATOR_NAME "DCOSH"
179 #define TANH_OPERATOR_NAME "TANH"
180 #define DTANH_OPERATOR_NAME "DTANH"
181 #define LEFT_SHIFT_OPERATOR_NAME "<<"
182 #define RIGHT_SHIFT_OPERATOR_NAME ">>"
187 #define ADDRESS_OF_OPERATOR_NAME "__address-of__"
188 #define BITWISE_AND_OPERATOR_NAME "__bit-and__"
189 #define BITWISE_NOT_OPERATOR_NAME "__bit-not__"
190 #define BITWISE_XOR_OPERATOR_NAME "__C-xor__"
191 #define C_AND_OPERATOR_NAME "__C-and__"
192 #define MODULO_UPDATE_OPERATOR_NAME "__C-modulo-update__"
193 #define BITWISE_AND_UPDATE_OPERATOR_NAME "__C-bit-and-update__"
194 #define BITWISE_XOR_UPDATE_OPERATOR_NAME "__C-bit-xor-update__"
195 #define CONDITIONAL_OPERATOR_NAME "__C-conditional__"
196 #define C_NOT_OPERATOR_NAME "__C-logical-not__"
197 #define C_NON_EQUAL_OPERATOR_NAME "__C-non-equal__"
198 #define C_MODULO_OPERATOR_NAME "__C-modulo__"
200 #define BITWISE_OR_OPERATOR_NAME "|"
201 #define MIN_OPERATOR_NAME "MIN"
202 #define MIN0_OPERATOR_NAME "MIN0"
203 #define MIN1_OPERATOR_NAME "MIN1"
204 #define AMIN0_OPERATOR_NAME "AMIN0"
205 #define AMIN1_OPERATOR_NAME "AMIN1"
206 #define DMIN1_OPERATOR_NAME "DMIN1"
207 #define MAX_OPERATOR_NAME "MAX"
208 #define MAX0_OPERATOR_NAME "MAX0"
209 #define AMAX0_OPERATOR_NAME "AMAX0"
210 #define MAX1_OPERATOR_NAME "MAX1"
211 #define AMAX1_OPERATOR_NAME "AMAX1"
212 #define DMAX1_OPERATOR_NAME "DMAX1"
213 #define ABS_OPERATOR_NAME "ABS"
214 #define IABS_OPERATOR_NAME "IABS"
215 #define DABS_OPERATOR_NAME "DABS"
216 #define CABS_OPERATOR_NAME "CABS"
217 #define CDABS_OPERATOR_NAME "CDABS"
219 #define LENGTH_OPERATOR_NAME "LEN"
220 #define INDEX_OPERATOR_NAME "INDEX"
221 #define LGE_OPERATOR_NAME "LGE"
222 #define LGT_OPERATOR_NAME "LGT"
223 #define LLE_OPERATOR_NAME "LLE"
224 #define LLT_OPERATOR_NAME "LLT"
228 #define INT_GENERIC_CONVERSION_NAME "INT"
229 #define IFIX_GENERIC_CONVERSION_NAME "IFIX"
230 #define IDINT_GENERIC_CONVERSION_NAME "IDINT"
231 #define REAL_GENERIC_CONVERSION_NAME "REAL"
232 #define FLOAT_GENERIC_CONVERSION_NAME "FLOAT"
233 #define DFLOAT_GENERIC_CONVERSION_NAME "DFLOAT"
234 #define SNGL_GENERIC_CONVERSION_NAME "SNGL"
235 #define DBLE_GENERIC_CONVERSION_NAME "DBLE"
236 #define DREAL_GENERIC_CONVERSION_NAME "DREAL"
237 #define CMPLX_GENERIC_CONVERSION_NAME "CMPLX"
238 #define DCMPLX_GENERIC_CONVERSION_NAME "DCMPLX"
240 #define INT_TO_CHAR_CONVERSION_NAME "CHAR"
241 #define CHAR_TO_INT_CONVERSION_NAME "ICHAR"
243 #define AINT_CONVERSION_NAME "AINT"
244 #define DINT_CONVERSION_NAME "DINT"
245 #define ANINT_CONVERSION_NAME "ANINT"
246 #define DNINT_CONVERSION_NAME "DNINT"
247 #define NINT_CONVERSION_NAME "NINT"
248 #define IDNINT_CONVERSION_NAME "IDNINT"
249 #define AIMAG_CONVERSION_NAME "AIMAG"
250 #define DIMAG_CONVERSION_NAME "DIMAG"
256 #define AND_OPERATOR_NAME ".AND."
257 #define OR_OPERATOR_NAME ".OR."
258 #define C_OR_OPERATOR_NAME "||"
259 #define NOT_OPERATOR_NAME ".NOT."
260 #define NON_EQUAL_OPERATOR_NAME ".NE."
261 #define EQUIV_OPERATOR_NAME ".EQV."
262 #define NON_EQUIV_OPERATOR_NAME ".NEQV."
264 #define TRUE_OPERATOR_NAME ".TRUE."
265 #define FALSE_OPERATOR_NAME ".FALSE."
266 #define ONE_OPERATOR_NAME "1"
267 #define ZERO_OPERATOR_NAME "0"
269 #define GREATER_OR_EQUAL_OPERATOR_NAME ".GE."
270 #define C_GREATER_OR_EQUAL_OPERATOR_NAME ">="
271 #define GREATER_THAN_OPERATOR_NAME ".GT."
272 #define C_GREATER_THAN_OPERATOR_NAME ">"
273 #define LESS_OR_EQUAL_OPERATOR_NAME ".LE."
274 #define C_LESS_OR_EQUAL_OPERATOR_NAME "<="
275 #define LESS_THAN_OPERATOR_NAME ".LT."
276 #define C_LESS_THAN_OPERATOR_NAME "<"
277 #define EQUAL_OPERATOR_NAME ".EQ."
278 #define C_EQUAL_OPERATOR_NAME "=="
280 #define CONTINUE_FUNCTION_NAME "CONTINUE"
281 #define C_CONTINUE_FUNCTION_NAME ";"
282 #define C_STATEMENT_END_STRING ";"
283 #define RETURN_FUNCTION_NAME "RETURN"
284 #define STOP_FUNCTION_NAME "STOP"
285 #define PAUSE_FUNCTION_NAME "PAUSE"
286 #define END_FUNCTION_NAME "END"
287 #define ENDDO_FUNCTION_NAME "ENDDO"
289 #define BREAK_FUNCTION_NAME "break"
290 #define CASE_FUNCTION_NAME "case"
291 #define DEFAULT_FUNCTION_NAME "default"
292 #define C_RETURN_FUNCTION_NAME "return"
294 #define SUBSTRING_FUNCTION_NAME "_SUBSTR"
295 #define CONCATENATION_FUNCTION_NAME "//"
296 #define ASSIGN_SUBSTRING_FUNCTION_NAME "_ASSIGN_SUBSTR"
298 #define WRITE_FUNCTION_NAME "WRITE"
299 #define PRINT_FUNCTION_NAME "PRINT"
300 #define REWIND_FUNCTION_NAME "REWIND"
301 #define OPEN_FUNCTION_NAME "OPEN"
302 #define CLOSE_FUNCTION_NAME "CLOSE"
303 #define INQUIRE_FUNCTION_NAME "INQUIRE"
304 #define BACKSPACE_FUNCTION_NAME "BACKSPACE"
305 #define READ_FUNCTION_NAME "READ"
306 #define BUFFERIN_FUNCTION_NAME "BUFFERIN"
307 #define BUFFEROUT_FUNCTION_NAME "BUFFEROUT"
308 #define ENDFILE_FUNCTION_NAME "ENDFILE"
309 #define FORMAT_FUNCTION_NAME "FORMAT"
313 #define ISHFT_OPERATOR_NAME "ISHFT"
314 #define ISHFTC_OPERATOR_NAME "ISHFTC"
315 #define IBITS_OPERATOR_NAME "IBITS"
316 #define MVBITS_OPERATOR_NAME "MVBITS"
317 #define BTEST_OPERATOR_NAME "BTEST"
318 #define IBSET_OPERATOR_NAME "IBSET"
319 #define IBCLR_OPERATOR_NAME "IBCLR"
320 #define BIT_SIZE_OPERATOR_NAME "BIT_SIZE"
321 #define IAND_OPERATOR_NAME "IAND"
322 #define IEOR_OPERATOR_NAME "IEOR"
323 #define IOR_OPERATOR_NAME "IOR"
327 #define OMP_IF_FUNCTION_NAME "if"
328 #define OMP_OMP_FUNCTION_NAME "omp"
329 #define OMP_FOR_FUNCTION_NAME "for"
330 #define OMP_PRIVATE_FUNCTION_NAME "private"
331 #define OMP_PARALLEL_FUNCTION_NAME "parallel"
332 #define OMP_REDUCTION_FUNCTION_NAME "reduction"
335 #define ALLOCATE_FUNCTION_NAME "ALLOCATE"
336 #define DEALLOCATE_FUNCTION_NAME "DEALLOCATE"
337 #define ETIME_FUNCTION_NAME "ETIME"
338 #define DTIME_FUNCTION_NAME "DTIME"
339 #define CPU_TIME_FUNCTION_NAME "CPU_TIME"
342 #define C_LOC_FUNCTION_NAME "C_LOC"
347 #define ERR_FUNCTION_NAME "err"
348 #define ERRX_FUNCTION_NAME "errx"
349 #define WARN_FUNCTION_NAME "warn"
350 #define WARNX_FUNCTION_NAME "warnx"
351 #define VERR_FUNCTION_NAME "verr"
352 #define VERRX_FUNCTION_NAME "verrx"
353 #define VWARN_FUNCTION_NAME "vwarn"
354 #define VWARNX_FUNCTION_NAME "vwarnx"
357 #define CLOCK_FUNCTION_NAME "clock"
358 #define TIME_FUNCTION_NAME "time"
359 #define DIFFTIME_FUNCTION_NAME "difftime"
360 #define MKTIME_FUNCTION_NAME "mktime"
361 #define STRFTIME_FUNCTION_NAME "strftime"
362 #define STRPTIME_FUNCTION_NAME "strptime"
363 #define STRFTIME_L_FUNCTION_NAME "strftime_l"
364 #define STRPTIME_L_FUNCTION_NAME "strptime_l"
365 #define GMTIME_FUNCTION_NAME "gmtime"
366 #define LOCALTIME_FUNCTION_NAME "localtime"
367 #define GMTIME_R_FUNCTION_NAME "gmtime_r"
368 #define LOCALTIME_R_FUNCTION_NAME "localtime_r"
369 #define ASCTIME_FUNCTION_NAME "asctime"
370 #define CTIME_FUNCTION_NAME "ctime"
371 #define ASCTIME_R_FUNCTION_NAME "asctime_r"
372 #define CTIME_R_FUNCTION_NAME "ctime_r"
373 #define TZSET_FUNCTION_NAME "tzset"
374 #define STIME_FUNCTION_NAME "stime"
375 #define TIMEGM_FUNCTION_NAME "timegm"
376 #define TIMELOCAL_FUNCTION_NAME "timelocal"
377 #define DYSIZE_FUNCTION_NAME "dysize"
378 #define NANOSLEEP_FUNCTION_NAME "nanosleep"
379 #define CLOCK_GETRES_FUNCTION_NAME "clock_getres"
380 #define CLOCK_GETTIME_FUNCTION_NAME "clock_gettime"
381 #define CLOCK_SETTIME_FUNCTION_NAME "clock_settime"
382 #define CLOCK_NANOSLEEP_FUNCTION_NAME "clock_nanosleep"
383 #define CLOCK_GETCPULOCKID_FUNCTION_NAME "clock_getcpulockid"
384 #define TIMER_CREATE_FUNCTION_NAME "timer_create"
385 #define TIMER_DELETE_FUNCTION_NAME "timer_delete"
386 #define TIMER_SETTIME_FUNCTION_NAME "timer_settime"
387 #define TIMER_GETTIME_FUNCTION_NAME "timer_gettime"
388 #define TIMER_GETOVERRUN_FUNCTION_NAME "timer_getoverrun"
389 #define GETDATE_FUNCTION_NAME "getdate"
390 #define GETDATE_R_FUNCTION_NAME "getdate_r"
393 #define DRAND48_FUNCTION_NAME "drand48"
394 #define ERAND48_FUNCTION_NAME "erand48"
395 #define JRAND48_FUNCTION_NAME "jrand48"
396 #define LCONG48_FUNCTION_NAME "lcong48"
397 #define LRAND48_FUNCTION_NAME "lrand48"
398 #define MRAND48_FUNCTION_NAME "mrand48"
399 #define NRAND48_FUNCTION_NAME "nrand48"
400 #define SEED48_FUNCTION_NAME "seed48"
401 #define SRAND48_FUNCTION_NAME "srand48"
403 #define PUTENV_FUNCTION_NAME "putenv"
404 #define SETKEY_FUNCTION_NAME "setkey"
405 #define SWAB_FUNCTION_NAME "swab"
406 #define MKSTEMP_FUNCTION_NAME "mkstemp"
407 #define MKSTEMP64_FUNCTION_NAME "mkstemp64"
408 #define A614_FUNCTION_NAME "a64l"
409 #define ECVT_FUNCTION_NAME "ecvt"
410 #define FCVT_FUNCTION_NAME "fcvt"
411 #define GCVT_FUNCTION_NAME "gcvt"
412 #define GETSUBOPT_FUNCTION_NAME "getsubopt"
413 #define GRANTPT_FUNCTION_NAME "grantpt"
414 #define INITSTATE_FUNCTION_NAME "initstate"
415 #define C_164A_FUNCTION_NAME "l64a"
416 #define MKTEMP_FUNCTION_NAME "mktemp"
417 #define PTSNAME_FUNCTION_NAME "ptsname"
418 #define REALPATH_FUNCTION_NAME "realpath"
419 #define SETSTATE_FUNCTION_NAME "setstate"
420 #define TTYSLOT_FUNCTION_NAME "ttyslot"
421 #define UNLOCKPT_FUNCTION_NAME "unlockpt"
422 #define VALLOC_FUNCTION_NAME "valloc"
423 #define DUP2_FUNCTION_NAME "dup2"
424 #define QECVT_FUNCTION_NAME "qecvt"
425 #define QFCVT_FUNCTION_NAME "qfcvt"
426 #define QGCVT_FUNCTION_NAME "qgcvt"
427 #define GETCWD_FUNCTION_NAME "getcwd"
428 #define GETEXECNAME_FUNCTION_NAME "getexecname"
429 #define GETLOGIN_FUNCTION_NAME "getlogin"
430 #define GETOPT_FUNCTION_NAME "getopt"
431 #define GETOPT_LONG_FUNCTION_NAME "getopt_long"
432 #define GETOPT_LONG_ONLY_FUNCTION_NAME "getopt_long_only"
433 #define GETPASS_FUNCTION_NAME "getpass"
434 #define GETPASSPHRASE_FUNCTION_NAME "getpassphrase"
435 #define GETPW_FUNCTION_NAME "getpw"
436 #define ISATTY_FUNCTION_NAME "isatty"
437 #define MEMALIGN_FUNCTION_NAME "memalign"
438 #define TTYNAME_FUNCTION_NAME "ttyname"
439 #define LLTOSTR_FUNCTION_NAME "lltostr"
440 #define ULLTOSTR_FUNCTION_NAME "ulltostr"
442 #define POSIX_MEMALIGN_FUNCTION_NAME "posix_memalign"
443 #define ATOQ_FUNCTION_NAME "atoq"
444 #define RANDOM_FUNCTION_NAME "random"
445 #define SRANDOM_FUNCTION_NAME "srandom"
446 #define MOD_INTRINSIC_NAME "MOD"
459 #define PIPS_C_MIN_OPERATOR_NAME "pips_min"
460 #define PIPS_C_MAX_OPERATOR_NAME "pips_max"
461 #define PIPS_C_DIV_OPERATOR_NAME "pips_div"
468 #define ASSERT_FUNCTION_NAME "__assert"
469 #define ASSERT_FAIL_FUNCTION_NAME "__assert_fail"
473 #define CACOS_OPERATOR_NAME "cacos"
474 #define CACOSF_OPERATOR_NAME "cacosf"
475 #define CACOSL_OPERATOR_NAME "cacosl"
476 #define CASIN_OPERATOR_NAME "casin"
477 #define CASINF_OPERATOR_NAME "casinf"
478 #define CASINL_OPERATOR_NAME "casinl"
479 #define CATAN_OPERATOR_NAME "catan"
480 #define CATANF_OPERATOR_NAME "catanf"
481 #define CATANL_OPERATOR_NAME "catanl"
482 #define C_CCOS_OPERATOR_NAME "ccos"
483 #define CCOSF_OPERATOR_NAME "ccosf"
484 #define CCOSL_OPERATOR_NAME "ccosl"
485 #define C_CSIN_OPERATOR_NAME "csin"
486 #define CSINF_OPERATOR_NAME "csinf"
487 #define CSINL_OPERATOR_NAME "csinl"
488 #define CTAN_OPERATOR_NAME "ctan"
489 #define CTANF_OPERATOR_NAME "ctanf"
490 #define CTANL_OPERATOR_NAME "ctanl"
491 #define CACOSH_OPERATOR_NAME "cacosh"
492 #define CACOSHF_OPERATOR_NAME "cacoshf"
493 #define CACOSHL_OPERATOR_NAME "cacoshl"
494 #define CASINH_OPERATOR_NAME "casinh"
495 #define CASINHF_OPERATOR_NAME "casinhf"
496 #define CASINHL_OPERATOR_NAME "casinhl"
497 #define CATANH_OPERATOR_NAME "catanh"
498 #define CATANHF_OPERATOR_NAME "catanhf"
499 #define CATANHL_OPERATOR_NAME "catanhl"
500 #define CCOSH_OPERATOR_NAME "ccosh"
501 #define CCOSHF_OPERATOR_NAME "ccoshf"
502 #define CCOSHL_OPERATOR_NAME "ccoshl"
503 #define CSINH_OPERATOR_NAME "csinh"
504 #define CSINHF_OPERATOR_NAME "csinhf"
505 #define CSINHL_OPERATOR_NAME "csinhl"
506 #define CTANH_OPERATOR_NAME "ctanh"
507 #define CTANHF_OPERATOR_NAME "ctanhf"
508 #define CTANHL_OPERATOR_NAME "ctanhl"
509 #define C_CEXP_OPERATOR_NAME "cexp"
510 #define CEXPF_OPERATOR_NAME "cexpf"
511 #define CEXPL_OPERATOR_NAME "cexpl"
512 #define C_CLOG_OPERATOR_NAME "clog"
513 #define CLOGF_OPERATOR_NAME "clogf"
514 #define CLOGL_OPERATOR_NAME "clogl"
515 #define C_CABS_OPERATOR_NAME "cabs"
516 #define CABSF_OPERATOR_NAME "cabsf"
517 #define CABSL_OPERATOR_NAME "cabsl"
518 #define CPOW_OPERATOR_NAME "cpow"
519 #define CPOWF_OPERATOR_NAME "cpowf"
520 #define CPOWL_OPERATOR_NAME "cpowl"
521 #define C_CSQRT_OPERATOR_NAME "csqrt"
522 #define CSQRTF_OPERATOR_NAME "csqrtf"
523 #define CSQRTL_OPERATOR_NAME "csqrtl"
524 #define CARG_OPERATOR_NAME "carg"
525 #define CARGF_OPERATOR_NAME "cargf"
526 #define CARGL_OPERATOR_NAME "cargl"
527 #define CIMAG_OPERATOR_NAME "cimag"
528 #define GCC_CIMAG_OPERATOR_NAME "__imag__"
529 #define CIMAGF_OPERATOR_NAME "cimagf"
530 #define CIMAGL_OPERATOR_NAME "cimagl"
531 #define CONJ_OPERATOR_NAME "conj"
532 #define CONJF_OPERATOR_NAME "conjf"
533 #define CONJL_OPERATOR_NAME "conjl"
534 #define CPROJ_OPERATOR_NAME "cproj"
535 #define CPROJF_OPERATOR_NAME "cprojf"
536 #define CPROJL_OPERATOR_NAME "cprojl"
537 #define CREAL_OPERATOR_NAME "creal"
538 #define GCC_CREAL_OPERATOR_NAME "__real__"
539 #define CREALF_OPERATOR_NAME "crealf"
540 #define CREALL_OPERATOR_NAME "creall"
545 #define ISALNUM_OPERATOR_NAME "isalnum"
546 #define ISALPHA_OPERATOR_NAME "isalpha"
547 #define ISBLANK_OPERATOR_NAME "isblank"
548 #define ISCNTRL_OPERATOR_NAME "iscntrl"
549 #define ISDIGIT_OPERATOR_NAME "isdigit"
550 #define ISGRAPH_OPERATOR_NAME "isgraph"
551 #define ISLOWER_OPERATOR_NAME "islower"
552 #define ISPRINT_OPERATOR_NAME "isprint"
553 #define ISPUNCT_OPERATOR_NAME "ispunct"
554 #define ISSPACE_OPERATOR_NAME "isspace"
555 #define ISUPPER_OPERATOR_NAME "isupper"
556 #define ISXDIGIT_OPERATOR_NAME "isxdigit"
557 #define TOLOWER_OPERATOR_NAME "tolower"
558 #define TOUPPER_OPERATOR_NAME "toupper"
561 #define ISASCII_OPERATOR_NAME "isascii"
562 #define TOASCII_OPERATOR_NAME "toascii"
563 #define _TOLOWER_OPERATOR_NAME "_tolower"
564 #define _TOUPPER_OPERATOR_NAME "_toupper"
567 #define CTYPE_B_LOC_OPERATOR_NAME "__ctype_b_loc"
571 #define __ERRNO_LOCATION_OPERATOR_NAME "__errno_location"
575 #define FECLEAREXCEPT_FUNCTION_NAME "feclearexcept"
576 #define FERAISEEXCEPT_FUNCTION_NAME "feraiseexcept"
577 #define FESETEXCEPTFLAG_FUNCTION_NAME "fesetexceptflag"
578 #define FETESTEXCEPT_FUNCTION_NAME "fetestexcept"
579 #define FEGETROUND_FUNCTION_NAME "fegetround"
580 #define FESETROUND_FUNCTION_NAME "fesetround"
583 #define IMAXABS_FUNCTION_NAME "imaxabs"
584 #define IMAXDIV_FUNCTION_NAME "imaxdiv"
587 #define SETLOCALE_FUNCTION_NAME "setlocale"
591 #define FPCLASSIFY_OPERATOR_NAME "fpclassify"
592 #define ISFINITE_OPERATOR_NAME "isfinite"
593 #define ISINF_OPERATOR_NAME "isinf"
594 #define ISNAN_OPERATOR_NAME "isnan"
595 #define ISNANL_OPERATOR_NAME "isnanl"
596 #define ISNANF_OPERATOR_NAME "isnanf"
597 #define ISNORMAL_OPERATOR_NAME "isnormal"
598 #define SIGNBIT_OPERATOR_NAME "signbit"
599 #define C_ACOS_OPERATOR_NAME "acos"
600 #define ACOSF_OPERATOR_NAME "acosf"
601 #define ACOSL_OPERATOR_NAME "acosl"
602 #define C_ASIN_OPERATOR_NAME "asin"
603 #define ASINF_OPERATOR_NAME "asinf"
604 #define ASINL_OPERATOR_NAME "asinl"
605 #define C_ATAN_OPERATOR_NAME "atan"
606 #define ATANF_OPERATOR_NAME "atanf"
607 #define ATANL_OPERATOR_NAME "atanl"
608 #define C_ATAN2_OPERATOR_NAME "atan2"
609 #define ATAN2F_OPERATOR_NAME "atan2f"
610 #define ATAN2L_OPERATOR_NAME "atan2l"
611 #define C_COS_OPERATOR_NAME "cos"
612 #define COSF_OPERATOR_NAME "cosf"
613 #define COSL_OPERATOR_NAME "cosl"
614 #define C_SIN_OPERATOR_NAME "sin"
615 #define SINF_OPERATOR_NAME "sinf"
616 #define SINL_OPERATOR_NAME "sinl"
617 #define C_TAN_OPERATOR_NAME "tan"
618 #define TANF_OPERATOR_NAME "tanf"
619 #define TANL_OPERATOR_NAME "tanl"
620 #define C_ACOSH_OPERATOR_NAME "acosh"
621 #define ACOSHF_OPERATOR_NAME "acoshf"
622 #define ACOSHL_OPERATOR_NAME "acoshl"
623 #define C_ASINH_OPERATOR_NAME "asinh"
624 #define ASINHF_OPERATOR_NAME "asinhf"
625 #define ASINHL_OPERATOR_NAME "asinhl"
626 #define C_ATANH_OPERATOR_NAME "atanh"
627 #define ATANHF_OPERATOR_NAME "atanhf"
628 #define ATANHL_OPERATOR_NAME "atanhl"
629 #define C_COSH_OPERATOR_NAME "cosh"
630 #define COSHF_OPERATOR_NAME "coshf"
631 #define COSHL_OPERATOR_NAME "coshl"
632 #define C_SINH_OPERATOR_NAME "sinh"
633 #define SINHF_OPERATOR_NAME "sinhf"
634 #define SINHL_OPERATOR_NAME "sinhl"
635 #define C_TANH_OPERATOR_NAME "tanh"
636 #define TANHF_OPERATOR_NAME "tanhf"
637 #define TANHL_OPERATOR_NAME "tanhl"
638 #define C_EXP_OPERATOR_NAME "exp"
639 #define EXPF_OPERATOR_NAME "expf"
640 #define EXPL_OPERATOR_NAME "expl"
641 #define EXP2_OPERATOR_NAME "exp2"
642 #define EXP2F_OPERATOR_NAME "exp2f"
643 #define EXP2L_OPERATOR_NAME "exp2l"
644 #define EXPM1_OPERATOR_NAME "expm1"
645 #define EXPM1F_OPERATOR_NAME "expm1f"
646 #define EXPM1L_OPERATOR_NAME "expm1l"
647 #define FREXP_OPERATOR_NAME "frexp"
648 #define ILOGB_OPERATOR_NAME "ilogb"
649 #define ILOGBF_OPERATOR_NAME "ilogbf"
650 #define ILOGBL_OPERATOR_NAME "ilogbl"
651 #define LDEXP_OPERATOR_NAME "ldexp"
652 #define LDEXPF_OPERATOR_NAME "ldexpf"
653 #define LDEXPL_OPERATOR_NAME "ldexpl"
654 #define C_LOG_OPERATOR_NAME "log"
655 #define LOGF_OPERATOR_NAME "logf"
656 #define LOGL_OPERATOR_NAME "logl"
657 #define C_LOG10_OPERATOR_NAME "log10"
658 #define LOG10F_OPERATOR_NAME "log10f"
659 #define LOG10L_OPERATOR_NAME "log10l"
660 #define LOG1P_OPERATOR_NAME "log1p"
661 #define LOG1PF_OPERATOR_NAME "log1pf"
662 #define LOG1PL_OPERATOR_NAME "log1pl"
663 #define LOG2_OPERATOR_NAME "log2"
664 #define LOG2F_OPERATOR_NAME "log2f"
665 #define LOG2L_OPERATOR_NAME "log2l"
666 #define LOGB_OPERATOR_NAME "logb"
667 #define LOGBF_OPERATOR_NAME "logbf"
668 #define LOGBL_OPERATOR_NAME "logbl"
669 #define MODF_OPERATOR_NAME "modf"
670 #define SCALBN_OPERATOR_NAME "scalbn"
671 #define SCALBNF_OPERATOR_NAME "scalbnf"
672 #define SCALBNL_OPERATOR_NAME "scalbnl"
673 #define SCALB_OPERATOR_NAME "scalb"
674 #define SCALBLN_OPERATOR_NAME "scalbln"
675 #define SCALBLNF_OPERATOR_NAME "scalblnf"
676 #define SCALBLNL_OPERATOR_NAME "scalblnl"
677 #define CBRT_OPERATOR_NAME "cbrt"
678 #define CBRTF_OPERATOR_NAME "cbrtf"
679 #define CBRTL_OPERATOR_NAME "cbrtl"
680 #define FABS_OPERATOR_NAME "fabs"
681 #define FABSF_OPERATOR_NAME "fabsf"
682 #define FABSL_OPERATOR_NAME "fabsl"
683 #define HYPOT_OPERATOR_NAME "hypot"
684 #define HYPOTF_OPERATOR_NAME "hypotf"
685 #define HYPOTL_OPERATOR_NAME "hypotl"
686 #define POW_OPERATOR_NAME "pow"
687 #define POWF_OPERATOR_NAME "powf"
688 #define POWL_OPERATOR_NAME "powl"
689 #define C_SQRT_OPERATOR_NAME "sqrt"
690 #define SQRTF_OPERATOR_NAME "sqrtf"
691 #define SQRTL_OPERATOR_NAME "sqrtl"
692 #define ERF_OPERATOR_NAME "erf"
693 #define ERFF_OPERATOR_NAME "erff"
694 #define ERFL_OPERATOR_NAME "erfl"
695 #define ERFC_OPERATOR_NAME "erfc"
696 #define ERFCF_OPERATOR_NAME "erfcf"
697 #define ERFCL_OPERATOR_NAME "erfcl"
698 #define GAMMA_OPERATOR_NAME "gamma"
699 #define LGAMMA_OPERATOR_NAME "lgamma"
700 #define LGAMMAF_OPERATOR_NAME "lgammaf"
701 #define LGAMMAL_OPERATOR_NAME "lgammal"
702 #define TGAMMA_OPERATOR_NAME "tgamma"
703 #define TGAMMAF_OPERATOR_NAME "tgammaf"
704 #define TGAMMAL_OPERATOR_NAME "tgammal"
705 #define CEIL_OPERATOR_NAME "ceil"
706 #define CEILF_OPERATOR_NAME "ceilf"
707 #define CEILL_OPERATOR_NAME "ceill"
708 #define FLOOR_OPERATOR_NAME "floor"
709 #define FLOORF_OPERATOR_NAME "floorf"
710 #define FLOORL_OPERATOR_NAME "floorl"
711 #define NEARBYINT_OPERATOR_NAME "nearbyint"
712 #define NEARBYINTF_OPERATOR_NAME "nearbyintf"
713 #define NEARBYINTL_OPERATOR_NAME "nearbyintl"
714 #define RINT_OPERATOR_NAME "rint"
715 #define RINTF_OPERATOR_NAME "rintf"
716 #define RINTL_OPERATOR_NAME "rintl"
717 #define LRINT_OPERATOR_NAME "lrint"
718 #define LRINTF_OPERATOR_NAME "lrintf"
719 #define LRINTL_OPERATOR_NAME "lrintl"
720 #define LLRINT_OPERATOR_NAME "llrint"
721 #define LLRINTF_OPERATOR_NAME "llrintf"
722 #define LLRINTL_OPERATOR_NAME "llrintl"
723 #define ROUND_OPERATOR_NAME "round"
724 #define ROUNDF_OPERATOR_NAME "roundf"
725 #define ROUNDL_OPERATOR_NAME "roundl"
726 #define LROUND_OPERATOR_NAME "lround"
727 #define LROUNDF_OPERATOR_NAME "lroundf"
728 #define LROUNDL_OPERATOR_NAME "lroundl"
729 #define LLROUND_OPERATOR_NAME "llround"
730 #define LLROUNDF_OPERATOR_NAME "llroundf"
731 #define LLROUNDL_OPERATOR_NAME "llroundl"
732 #define TRUNC_OPERATOR_NAME "trunc"
733 #define TRUNCF_OPERATOR_NAME "truncf"
734 #define TRUNCL_OPERATOR_NAME "truncl"
735 #define FMOD_OPERATOR_NAME "fmod"
736 #define FMODF_OPERATOR_NAME "fmodf"
737 #define FMODL_OPERATOR_NAME "fmodl"
738 #define REMAINDER_OPERATOR_NAME "remainder"
739 #define REMAINDERF_OPERATOR_NAME "remainderf"
740 #define REMAINDERL_OPERATOR_NAME "remainderl"
741 #define COPYSIGN_OPERATOR_NAME "copysign"
742 #define COPYSIGNF_OPERATOR_NAME "copysignf"
743 #define COPYSIGNL_OPERATOR_NAME "copysignl"
744 #define NAN_OPERATOR_NAME "nan"
745 #define NANF_OPERATOR_NAME "nanf"
746 #define NANL_OPERATOR_NAME "nanl"
747 #define NEXTAFTER_OPERATOR_NAME "nextafter"
748 #define NEXTAFTERF_OPERATOR_NAME "nextafterf"
749 #define NEXTAFTERL_OPERATOR_NAME "nextafterl"
750 #define NEXTTOWARD_OPERATOR_NAME "nexttoward"
751 #define NEXTTOWARDF_OPERATOR_NAME "nexttowardf"
752 #define NEXTTOWARDL_OPERATOR_NAME "nexttowardl"
753 #define FDIM_OPERATOR_NAME "fdim"
754 #define FDIMF_OPERATOR_NAME "fdimf"
755 #define FDIML_OPERATOR_NAME "fdiml"
756 #define FMAX_OPERATOR_NAME "fmax"
757 #define FMAXF_OPERATOR_NAME "fmaxf"
758 #define FMAXL_OPERATOR_NAME "fmaxl"
759 #define FMIN_OPERATOR_NAME "fmin"
760 #define FMINF_OPERATOR_NAME "fminf"
761 #define FMINL_OPERATOR_NAME "fminl"
762 #define FMA_OPERATOR_NAME "fma"
763 #define FMAF_OPERATOR_NAME "fmaf"
764 #define FMAL_OPERATOR_NAME "fmal"
765 #define ISGREATER_OPERATOR_NAME "isgreater"
766 #define ISGREATEREQUAL_OPERATOR_NAME "isgreaterequal"
767 #define ISLESS_OPERATOR_NAME "isless"
768 #define ISLESSEQUAL_OPERATOR_NAME "islessequal"
769 #define ISLESSGREATER_OPERATOR_NAME "islessgreater"
770 #define ISUNORDERED_OPERATOR_NAME "isunordered"
774 #define SIGNAL_OPERATOR_NAME "signal"
775 #define RAISE_FUNCTION_NAME "raise"
780 #define BUILTIN_VA_END "__builtin_va_end"
781 #define BUILTIN_VA_START "__builtin_va_start"
782 #define BUILTIN_VA_COPY "__builtin_va_copy"
789 #define LSEEK_FUNCTION_NAME "lseek"
790 #define LSEEK64_FUNCTION_NAME "lseekg4"
791 #define C_CLOSE_FUNCTION_NAME "close"
792 #define C_READ_FUNCTION_NAME "read"
793 #define C_WRITE_FUNCTION_NAME "write"
794 #define PREAD_FUNCTION_NAME "pread"
795 #define PWRITE_FUNCTION_NAME "pwrite"
796 #define PREAD64_FUNCTION_NAME "pread64"
797 #define PIPE_FUNCTION_NAME "pipe"
798 #define PIPE2_FUNCTION_NAME "pipe2"
799 #define SLEEP_FUNCTION_NAME "sleep"
800 #define UALARM_FUNCTION_NAME "ualarm"
801 #define USLEEP_FUNCTION_NAME "usleep"
802 #define C_PAUSE_FUNCTION_NAME "pause"
803 #define CHOWN_FUNCTION_NAME "chown"
804 #define FCHOWN_FUNCTION_NAME "fchown"
805 #define LCHOWN_FUNCTION_NAME "lchown"
806 #define FCHOWNAT_FUNCTION_NAME "fchownat"
807 #define CHDIR_FUNCTION_NAME "chdir"
808 #define FCHDIR_FUNCTION_NAME "fchdir"
809 #define GETCWD_FUNCTION_NAME "getcwd"
810 #define GET_CURRENT_DIR_NAME_FUNCTION_NAME "get_current_dir_name"
811 #define GETWD_FUNCTION_NAME "getwd"
812 #define DUP_FUNCTION_NAME "dup"
813 #define DUP2_FUNCTION_NAME "dup2"
814 #define DUP3_FUNCTION_NAME "dup3"
815 #define EXECVE_FUNCTION_NAME "execve"
816 #define FEXECVE_FUNCTION_NAME "fexecve"
817 #define EXECV_FUNCTION_NAME "execv"
818 #define EXECLE_FUNCTION_NAME "execle"
819 #define EXECL_FUNCTION_NAME "execl"
820 #define EXECVP_FUNCTION_NAME "execvp"
821 #define EXECLP_FUNCTION_NAME "execlp"
822 #define EXECVPE_FUNCTION_NAME "execvpe"
823 #define NICE_FUNCTION_NAME "nice"
824 #define _EXIT_FUNCTION_NAME "_exit"
825 #define PATHCONF_FUNCTION_NAME "pathconf"
826 #define FPATHCONF_FUNCTION_NAME "fpathconf"
827 #define SYSCONF_FUNCTION_NAME "sysconf"
828 #define CONFSTR_FUNCTION_NAME "constrf"
829 #define GETPID_FUNCTION_NAME "getpid"
830 #define GETPPID_FUNCTION_NAME "getppid"
831 #define GETPGRP_FUNCTION_NAME "getpgrp"
832 #define __GETPGID_FUNCTION_NAME "__getpgid"
833 #define GETPGID_FUNCTION_NAME "getpgid"
834 #define SETPGID_FUNCTION_NAME "setpgid"
835 #define SETPGRP_FUNCTION_NAME "setpgrp"
836 #define SETSID_FUNCTION_NAME "setsid"
837 #define GETSID_FUNCTION_NAME "getsid"
838 #define GETUID_FUNCTION_NAME "getuid"
839 #define GETEUID_FUNCTION_NAME "geteuid"
840 #define GETGID_FUNCTION_NAME "getgid"
841 #define GETEGID_FUNCTION_NAME "getegid"
842 #define GETPGROUPS_FUNCTION_NAME "getgroups"
843 #define GROUP_MEMBER_FUNCTION_NAME "group_member"
844 #define SETUID_FUNCTION_NAME "setuid"
845 #define SETREUID_FUNCTION_NAME "setreuid"
846 #define SETEUID_FUNCTION_NAME "seteuid"
847 #define SETGID_FUNCTION_NAME "setgid"
848 #define SETREGID_FUNCTION_NAME "setregid"
849 #define SETEGID_FUNCTION_NAME "setegid"
850 #define GETRESUID_FUNCTION_NAME "getresuid"
851 #define GETRESGID_FUNCTION_NAME "getresgid"
852 #define SETRESUID_FUNCTION_NAME "setresuid"
853 #define SETRESGID_FUNCTION_NAME "setresgid"
854 #define FORK_FUNCTION_NAME "fork"
855 #define VFORK_FUNCTION_NAME "vfork"
856 #define TTYNAME_FUNCTION_NAME "ttyname"
857 #define TTYNAME_R_FUNCTION_NAME "ttyname_r"
858 #define ISATTY_FUNCTION_NAME "isatty"
859 #define TTYSLOT_FUNCTION_NAME "ttyslot"
860 #define LINK_FUNCTION_NAME "link"
861 #define LINKAT_FUNCTION_NAME "linkat"
862 #define SYMLINK_FUNCTION_NAME "symlink"
863 #define READLINK_FUNCTION_NAME "readlink"
864 #define SYMLINKAT_FUNCTION_NAME "symlinkar"
865 #define READLINKAT_FUNCTION_NAME "readlinkat"
866 #define UNLINK_FUNCTION_NAME "unlink"
867 #define UNLINKAT_FUNCTION_NAME "unlinkat"
868 #define RMDIR_FUNCTION_NAME "rmdir"
869 #define TCGETPGRP_FUNCTION_NAME "tcgetpgrp"
870 #define TCSETPGRP_FUNCTION_NAME "tcsetpgrp"
871 #define GETLOGIN_FUNCTION_NAME "getlogin"
872 #define GETLOGIN_R_FUNCTION_NAME "getlogin_r"
873 #define SETLOGIN_FUNCTION_NAME "setlogin"
874 #define GETHOSTNAME_FUNCTION_NAME "gethostname"
875 #define SETHOSTNAME_FUNCTION_NAME "sethostname"
876 #define SETHOSTID_FUNCTION_NAME "sethostid"
877 #define GETDOMAINNAME_FUNCTION_NAME "getdomainname"
878 #define SETDOMAINNAME_FUNCTION_NAME "setdomainname"
879 #define VHANGUP_FUNCTION_NAME "vhangup"
880 #define REVOKE_FUNCTION_NAME "revoke"
881 #define PROFIL_FUNCTION_NAME "profil"
882 #define ACCT_FUNCTION_NAME "acct"
883 #define GETUSERSHELL_FUNCTION_NAME "getusershell"
884 #define ENDUSERSHELL_FUNCTION_NAME "endusershell"
885 #define SETUSERSHELL_FUNCTION_NAME "setusershell"
886 #define DAEMON_FUNCTION_NAME "daemon"
887 #define CHROOT_FUNCTION_NAME "chroot"
888 #define GETPASS_FUNCTION_NAME "getpass"
889 #define FSYNC_FUNCTION_NAME "fsync"
890 #define SYNCFS_FUNCTION_NAME "syncfs"
891 #define GETHOSTID_FUNCTION_NAME "gethostid"
892 #define GETPAGESIZE_FUNCTION_NAME "getpagesize"
893 #define GETDTABLESIZE_FUNCTION_NAME "getdtablesize"
894 #define TRUNCATE_FUNCTION_NAME "truncate"
895 #define TRUNCATE64_FUNCTION_NAME "truncate64"
896 #define FTRUNCATE_FUNCTION_NAME "ftruncate"
897 #define FTRUNCATE64_FUNCTION_NAME "ftruncate64"
898 #define BRK_FUNCTION_NAME "brk"
899 #define SBRK_FUNCTION_NAME "sbrk"
900 #define SYSCALL_FUNCTION_NAME "syscall"
901 #define LOCKF_FUNCTION_NAME "lockf"
902 #define LOCKF64_FUNCTION_NAME "lockf64"
903 #define FDATASYNC_FUNCTION_NAME "fdatasync"
904 #define CRYPT_FUNCTION_NAME "crypt"
905 #define ENCRYPT_FUNCTION_NAME "encrypt"
906 #define SWAB_FUNCTION_NAME "swab"
907 #define CTERMID_FUNCTION_NAME "ctermid"
912 #define C_OPEN_FUNCTION_NAME "open"
916 #define PRINTF_FUNCTION_NAME "printf"
917 #define FPRINTF_FUNCTION_NAME "fprintf"
918 #define SCANF_FUNCTION_NAME "scanf"
919 #define ISOC99_SCANF_FUNCTION_NAME "__isoc99_scanf"
920 #define ISOC99_SCANF_USER_FUNCTION_NAME "scanf"
921 #define FSCANF_FUNCTION_NAME "fscanf"
922 #define ISOC99_FSCANF_FUNCTION_NAME "__isoc99_fscanf"
923 #define ISOC99_FSCANF_USER_FUNCTION_NAME "fscanf"
924 #define PUTS_FUNCTION_NAME "puts"
925 #define GETS_FUNCTION_NAME "gets"
926 #define FPUTS_FUNCTION_NAME "fputs"
927 #define FGETS_FUNCTION_NAME "fgets"
928 #define FPUTC_FUNCTION_NAME "fputc"
929 #define FGETC_FUNCTION_NAME "fgetc"
930 #define FOPEN_FUNCTION_NAME "fopen"
931 #define FDOPEN_FUNCTION_NAME "fdopen"
932 #define FREOPEN_FUNCTION_NAME "freopen"
933 #define FCLOSE_FUNCTION_NAME "fclose"
934 #define SNPRINTF_FUNCTION_NAME "snprintf"
935 #define SSCANF_FUNCTION_NAME "sscanf"
936 #define ISOC99_SSCANF_FUNCTION_NAME "__isoc99_sscanf"
937 #define ISOC99_SSCANF_USER_FUNCTION_NAME "sscanf"
938 #define VFPRINTF_FUNCTION_NAME "vfprintf"
939 #define VFSCANF_FUNCTION_NAME "vfscanf"
940 #define ISOC99_VFSCANF_FUNCTION_NAME "__isoc99_vfscanf"
941 #define ISOC99_VFSCANF_USER_FUNCTION_NAME "vfscanf"
942 #define VPRINTF_FUNCTION_NAME "vprintf"
943 #define VSCANF_FUNCTION_NAME "vscanf"
944 #define ISOC99_VSCANF_FUNCTION_NAME "__isoc99_vscanf"
945 #define ISOC99_VSCANF_USER_FUNCTION_NAME "vscanf"
946 #define VSSCANF_FUNCTION_NAME "vsscanf"
947 #define ISOC99_VSSCANF_FUNCTION_NAME "__isoc99_vsscanf"
948 #define ISOC99_VSSCANF_USER_FUNCTION_NAME "vsscanf"
949 #define VSNPRINTF_FUNCTION_NAME "vsnprintf"
950 #define VSPRINTF_FUNCTION_NAME "vsprintf"
951 #define SPRINTF_FUNCTION_NAME "sprintf"
952 #define GETC_FUNCTION_NAME "getc"
953 #define _IO_GETC_FUNCTION_NAME "_IO_getc"
954 #define GETCHAR_FUNCTION_NAME "getchar"
955 #define PUTC_FUNCTION_NAME "putc"
956 #define _IO_PUTC_FUNCTION_NAME "_IO_putc"
957 #define PUTCHAR_FUNCTION_NAME "putchar"
958 #define UNGETC_FUNCTION_NAME "ungetc"
959 #define FREAD_FUNCTION_NAME "fread"
960 #define FWRITE_FUNCTION_NAME "fwrite"
961 #define FGETPOS_FUNCTION_NAME "fgetpos"
962 #define FSEEK_FUNCTION_NAME "fseek"
963 #define FSETPOS_FUNCTION_NAME "fsetpos"
964 #define FTELL_FUNCTION_NAME "ftell"
965 #define C_REWIND_FUNCTION_NAME "rewind"
966 #define CLEARERR_FUNCTION_NAME "clearerr"
967 #define FEOF_FUNCTION_NAME "feof"
968 #define FERROR_FUNCTION_NAME "ferror"
969 #define FILENO_FUNCTION_NAME "fileno"
970 #define PERROR_FUNCTION_NAME "perror"
973 #define REMOVE_FUNCTION_NAME "remove"
974 #define RENAME_FUNCTION_NAME "rename"
975 #define TMPFILE_FUNCTION_NAME "tmpfile"
976 #define TMPNAM_FUNCTION_NAME "tmpnam"
977 #define FFLUSH_FUNCTION_NAME "fflush"
978 #define FREOPEN_FUNCTION_NAME "freopen"
979 #define SETBUF_FUNCTION_NAME "setbuf"
980 #define SETVBUF_FUNCTION_NAME "setvbuf"
981 #define __FILBUF_FUNCTION_NAME "__filbuf"
982 #define __FILSBUF_FUNCTION_NAME "__flsbuf"
983 #define SETBUFFER_FUNCTION_NAME "setbuffer"
984 #define SETLINEBUF_FUNCTION_NAME "setlinebuf"
985 #define FDOPEN_FUNCTION_NAME "fdopen"
986 #define CTERMID_FUNCTION_NAME "ctermid"
987 #define FILENO_FUNCTION_NAME "fileno"
988 #define POPEN_FUNCTION_NAME "popen"
989 #define CUSERID_FUNCTION_NAME "cuserid"
990 #define TEMPNAM_FUNCTION_NAME "tempnam"
991 #define GETW_FUNCTION_NAME "getw"
992 #define PUTW_FUNCTION_NAME "putw"
993 #define PCLOSE_FUNCTION_NAME "pclose"
994 #define FSEEKO_FUNCTION_NAME "fseeko"
995 #define FTELLO_FUNCTION_NAME "ftello"
996 #define FOPEN64_FUNCTION_NAME "fopen64"
997 #define FREOPEN64_FUNCTION_NAME "freopen64"
998 #define TMPFILE64_FUNCTION_NAME "tmpfile64"
999 #define FGETPOS64_FUNCTION_NAME "fgetpos64"
1000 #define FSETPOS64_FUNCTION_NAME "fsetpos64"
1001 #define FSEEKO64_FUNCTION_NAME "fseeko64"
1002 #define FTELLO64_FUNCTION_NAME "ftello64"
1003 #define EXITHANDLE_FUNCTION_NAME "exithandle"
1009 #define ATOF_FUNCTION_NAME "atof"
1010 #define ATOI_FUNCTION_NAME "atoi"
1011 #define ATOL_FUNCTION_NAME "atol"
1012 #define ATOLL_FUNCTION_NAME "atoll"
1013 #define STRTOD_FUNCTION_NAME "strtod"
1014 #define STRTOF_FUNCTION_NAME "strtof"
1015 #define STRTOLD_FUNCTION_NAME "strtold"
1016 #define STRTOL_FUNCTION_NAME "strtol"
1017 #define STRTOLL_FUNCTION_NAME "strtoll"
1018 #define STRTOUL_FUNCTION_NAME "strtoul"
1019 #define STRTOULL_FUNCTION_NAME "strtoull"
1020 #define RAND_FUNCTION_NAME "rand"
1021 #define SRAND_FUNCTION_NAME "srand"
1022 #define CALLOC_FUNCTION_NAME "calloc"
1023 #define FREE_FUNCTION_NAME "free"
1024 #define MALLOC_FUNCTION_NAME "malloc"
1025 #define REALLOC_FUNCTION_NAME "realloc"
1026 #define ALLOCA_FUNCTION_NAME "alloca"
1027 #define ABORT_FUNCTION_NAME "abort"
1028 #define ATEXIT_FUNCTION_NAME "atexit"
1029 #define EXIT_FUNCTION_NAME "exit"
1030 #define _EXIT_FUNCTION_NAME "_exit"
1031 #define GETENV_FUNCTION_NAME "getenv"
1032 #define SYSTEM_FUNCTION_NAME "system"
1033 #define BSEARCH_FUNCTION_NAME "bsearch"
1034 #define QSORT_FUNCTION_NAME "qsort"
1035 #define C_ABS_FUNCTION_NAME "abs"
1036 #define LABS_FUNCTION_NAME "labs"
1037 #define LLABS_FUNCTION_NAME "llabs"
1038 #define DIV_FUNCTION_NAME "div"
1039 #define LDIV_FUNCTION_NAME "ldiv"
1040 #define LLDIV_FUNCTION_NAME "lldiv"
1041 #define MBLEN_FUNCTION_NAME "mblen"
1042 #define MBTOWC_FUNCTION_NAME "mbtowc"
1043 #define WCTOMB_FUNCTION_NAME "wctomb"
1044 #define MBSTOWCS_FUNCTION_NAME "mbstowcs"
1045 #define WCSTOMBS_FUNCTION_NAME "wcstombs"
1051 #define MEMCPY_FUNCTION_NAME "memcpy"
1052 #define MEMMOVE_FUNCTION_NAME "memmove"
1053 #define STRCPY_FUNCTION_NAME "strcpy"
1054 #define STRDUP_FUNCTION_NAME "strdup"
1055 #define STRNCPY_FUNCTION_NAME "strncpy"
1056 #define STRCAT_FUNCTION_NAME "strcat"
1057 #define STRNCAT_FUNCTION_NAME "strncat"
1058 #define MEMCMP_FUNCTION_NAME "memcmp"
1059 #define STRCMP_FUNCTION_NAME "strcmp"
1060 #define STRCOLL_FUNCTION_NAME "strcoll"
1061 #define STRNCMP_FUNCTION_NAME "strncmp"
1062 #define STRXFRM_FUNCTION_NAME "strxfrm"
1063 #define MEMCHR_FUNCTION_NAME "memchr"
1064 #define STRCHR_FUNCTION_NAME "strchr"
1065 #define STRCSPN_FUNCTION_NAME "strcspn"
1066 #define STRPBRK_FUNCTION_NAME "strbprk"
1067 #define STRRCHR_FUNCTION_NAME "strrchr"
1068 #define STRSPN_FUNCTION_NAME "strspn"
1069 #define STRSTR_FUNCTION_NAME "strstr"
1070 #define STRTOK_FUNCTION_NAME "strtok"
1071 #define MEMSET_FUNCTION_NAME "memset"
1073 #define STRERROR_FUNCTION_NAME "strerror"
1074 #define STRERROR_R_FUNCTION_NAME "strerror_r"
1075 #define STRLEN_FUNCTION_NAME "strlen"
1079 #define TIME_FUNCTION_NAME "time"
1080 #define LOCALTIME_FUNCTION_NAME "localtime"
1081 #define DIFFTIME_FUNCTION_NAME "difftime"
1082 #define NANOSLEEP_FUNCTION_NAME "nanosleep"
1086 #define FWPRINTF_FUNCTION_NAME "fwprintf"
1087 #define FWSCANF_FUNCTION_NAME "fwscanf"
1088 #define SWPRINTF_FUNCTION_NAME "swprintf"
1089 #define SWSCANF_FUNCTION_NAME "swscanf"
1090 #define VFWPRINTF_FUNCTION_NAME "vfwprintf"
1091 #define VFWSCANF_FUNCTION_NAME "vfwscanf"
1092 #define VSWPRINTF_FUNCTION_NAME "vswprintf"
1093 #define VSWSCANF_FUNCTION_NAME "vswscanf"
1094 #define VWPRINTF_FUNCTION_NAME "vwprintf"
1095 #define VWSCANF_FUNCTION_NAME "vwscanf"
1096 #define WPRINTF_FUNCTION_NAME "wprintf"
1097 #define WSCANF_FUNCTION_NAME "wscanf"
1098 #define FGETWC_FUNCTION_NAME "fgetwc"
1099 #define FGETWS_FUNCTION_NAME "fgetws"
1100 #define FPUTWC_FUNCTION_NAME "fputwc"
1101 #define FPUTWS_FUNCTION_NAME "fputws"
1102 #define FWIDE_FUNCTION_NAME "fwide"
1103 #define GETWC_FUNCTION_NAME "getwc"
1104 #define GETWCHAR_FUNCTION_NAME "getwchar"
1105 #define PUTWC_FUNCTION_NAME "putwc"
1106 #define PUTWCHAR_FUNCTION_NAME "putwchar"
1107 #define UNGETWC_FUNCTION_NAME "ungetwc"
1108 #define WCSTOD_FUNCTION_NAME "wcstod"
1109 #define WCSTOF_FUNCTION_NAME "wcstof"
1110 #define WCSTOLD_FUNCTION_NAME "wcstold"
1111 #define WCSTOL_FUNCTION_NAME "wcstol"
1112 #define WCSTOLL_FUNCTION_NAME "wcstoll"
1113 #define WCSTOUL_FUNCTION_NAME "wcstoul"
1114 #define WCSTOULL_FUNCTION_NAME "wcstoull"
1115 #define WCSCPY_FUNCTION_NAME "wcscpy"
1116 #define WCSNCPY_FUNCTION_NAME "wcsncpy"
1117 #define WMEMCPY_FUNCTION_NAME "wmemcpy"
1118 #define WMEMMOVE_FUNCTION_NAME "wmemmove"
1119 #define WCSCAT_FUNCTION_NAME "wcscat"
1120 #define WCSNCAT_FUNCTION_NAME "wcsncat"
1121 #define WCSCMP_FUNCTION_NAME "wcscmp"
1122 #define WCSCOLL_FUNCTION_NAME "wcscoll"
1123 #define WCSNCMP_FUNCTION_NAME "wcsncmp"
1124 #define WCSXFRM_FUNCTION_NAME "wcsxfrm"
1125 #define WMEMCMP_FUNCTION_NAME "wmemcmp"
1126 #define WCSCHR_FUNCTION_NAME "wcschr"
1127 #define WCSCSPN_FUNCTION_NAME "wcscspn"
1128 #define WCSPBRK_FUNCTION_NAME "wcspbrk"
1129 #define WCSRCHR_FUNCTION_NAME "wcsrchr"
1130 #define WCSSPN_FUNCTION_NAME "wcsspn"
1131 #define WCSSTR_FUNCTION_NAME "wcsstr"
1132 #define WCSTOK_FUNCTION_NAME "wcstok"
1133 #define WMEMCHR_FUNCTION_NAME "wmemchr"
1134 #define WCSLEN_FUNCTION_NAME "wcslen"
1135 #define WMEMSET_FUNCTION_NAME "wmemset"
1136 #define WCSFTIME_FUNCTION_NAME "wcsftime"
1137 #define BTOWC_FUNCTION_NAME "btowc"
1138 #define WCTOB_FUNCTION_NAME "wctob"
1139 #define MBSINIT_FUNCTION_NAME "mbsinit"
1140 #define MBRLEN_FUNCTION_NAME "mbrlen"
1141 #define MBRTOWC_FUNCTION_NAME "mbrtowc"
1142 #define WCRTOMB_FUNCTION_NAME "wcrtomb"
1143 #define MBSRTOWCS_FUNCTION_NAME "mbsrtowcs"
1144 #define WCSRTOMBS_FUNCTION_NAME "wcsrtombs"
1149 #define ISWALNUM_OPERATOR_NAME "iswalnum"
1150 #define ISWALPHA_OPERATOR_NAME "iswalpha"
1151 #define ISWBLANK_OPERATOR_NAME "iswblank"
1152 #define ISWCNTRL_OPERATOR_NAME "iswcntrl"
1153 #define ISWDIGIT_OPERATOR_NAME "iswdigit"
1154 #define ISWGRAPH_OPERATOR_NAME "iswgraph"
1155 #define ISWLOWER_OPERATOR_NAME "iswlower"
1156 #define ISWPRINT_OPERATOR_NAME "iswprint"
1157 #define ISWPUNCT_OPERATOR_NAME "iswpunct"
1158 #define ISWSPACE_OPERATOR_NAME "iswspace"
1159 #define ISWUPPER_OPERATOR_NAME "iswupper"
1160 #define ISWXDIGIT_OPERATOR_NAME "iswxdigit"
1161 #define ISWCTYPE_OPERATOR_NAME "iswctype"
1162 #define WCTYPE_OPERATOR_NAME "wctype"
1163 #define TOWLOWER_OPERATOR_NAME "towlower"
1164 #define TOWUPPER_OPERATOR_NAME "towupper"
1165 #define TOWCTRANS_OPERATOR_NAME "towctrans"
1166 #define WCTRANS_OPERATOR_NAME "wctrans"
1171 #define FCNTL_FUNCTION_NAME "fcntl"
1172 #define CREAT_FUNCTION_NAME "creat"
1173 #define DIRECTIO_FUNCTION_NAME "directio"
1174 #define OPEN64_FUNCTION_NAME "open64"
1175 #define CREAT64_FUNCTION_NAME "creat64"
1178 #define FSYNC_FUNCTION_NAME "fsync"
1179 #define FDATASYNC_FUNCTION_NAME "fdatasync"
1180 #define IOCTL_FUNCTION_NAME "ioctl"
1181 #define SELECT_FUNCTION_NAME "select"
1182 #define PSELECT_FUNCTION_NAME "pselect"
1183 #define STAT_FUNCTION_NAME "stat"
1184 #define FSTAT_FUNCTION_NAME "fstat"
1185 #define LSTAT_FUNCTION_NAME "lstat"
1191 #define J0_OPERATOR_NAME "j0"
1192 #define J1_OPERATOR_NAME "j1"
1193 #define JN_OPERATOR_NAME "jn"
1194 #define Y0_OPERATOR_NAME "y0"
1195 #define Y1_OPERATOR_NAME "y1"
1196 #define YN_OPERATOR_NAME "yn"
1198 #define NEXTAFTER_OPERATOR_NAME "nextafter"
1199 #define REMAINDER_OPERATOR_NAME "remainder"
1202 #define MATHERR_OPERATOR_NAME "matherr"
1203 #define SIGNIFICAND_OPERATOR_NAME "significand"
1206 #define MODFF_OPERATOR_NAME "modff"
1207 #define SIGFPE_OPERATOR_NAME "sigfpe"
1208 #define SINGLE_TO_DECIMAL_OPERATOR_NAME "single_to_decimal"
1209 #define DOUBLE_TO_DECIMAL_OPERATOR_NAME "double_to_decimal"
1210 #define EXTENDED_TO_DECIMAL_OPERATOR_NAME "extended_to_decimal"
1211 #define QUADRUPLE_TO_DECIMAL_OPERATOR_NAME "quadruple_to_decimal"
1212 #define DECIMAL_TO_SINGLE_OPERATOR_NAME "decimal_to_single"
1213 #define DECIMAL_TO_DOUBLE_OPERATOR_NAME "decimal_to_double"
1214 #define DECIMAL_TO_EXTENDED_OPERATOR_NAME "decimal_to_extended"
1215 #define DECIMAL_TO_QUADRUPLE_OPERATOR_NAME "decimal_to_quadruple"
1216 #define STRING_TO_DECIMAL_OPERATOR_NAME "string_to_decimal"
1217 #define FUNC_TO_DECIMAL_OPERATOR_NAME "func_to_decimal"
1218 #define FILE_TO_DECIMAL_OPERATOR_NAME "file_to_decimal"
1219 #define SECONVERT_OPERATOR_NAME "seconvert"
1220 #define SFCONVERT_OPERATOR_NAME "sfconvert"
1221 #define SGCONVERT_OPERATOR_NAME "sgconvert"
1222 #define ECONVERT_OPERATOR_NAME "econvert"
1223 #define FCONVERT_OPERATOR_NAME "fconvert"
1224 #define GCONVERT_OPERATOR_NAME "gconvert"
1225 #define QECONVERT_OPERATOR_NAME "qeconvert"
1226 #define QFCONVERT_OPERATOR_NAME "qfconvert"
1227 #define QGCONVERT_OPERATOR_NAME "qgconvert"
1229 #define CLOCK_FUNCTION_NAME "clock"
1230 #define SECOND_FUNCTION_NAME "SECOND"
1231 #define CLOCK_GETTIME_FUNCTION_NAME "clock_gettime"
1232 #define GETTIMEOFDAY_FUNCTION_NAME "gettimeofday"
1235 #define __H_ERRNO_LOCATION_OPERATOR_NAME "__h_erno_location"
1242 #define EOLE_FMA_OPERATOR_NAME "EOLE-FMA-OP"
1243 #define EOLE_FMS_OPERATOR_NAME "EOLE-FMS-OP"
1244 #define EOLE_PROD_OPERATOR_NAME "EOLE-PROD-OP"
1245 #define EOLE_SUM_OPERATOR_NAME "EOLE-SUM-OP"
1249 #define IMA_OPERATOR_NAME "IMA-OP"
1250 #define IMS_OPERATOR_NAME "IMS-OP"
1255 #define LOOP_COUNTER_MODULE_NAME "LOOP-COUNTER"
1256 #define DI_VAR_MODULE_NAME "DI-VAR"
1259 #define PIPS_MEMORY_BARRIER_OPERATOR_NAME "__pips_memory_barrier"
1260 #define PIPS_IO_BARRIER_OPERATOR_NAME "__pips_io_barrier"
1265 #define entity_an_operator_p(e,name) \
1266 (same_string_p(global_name_to_user_name(entity_name(e)), name##_OPERATOR_NAME))
1267 #define entity_a_function_p(e,name) \
1268 (same_string_p(global_name_to_user_name(entity_name(e)), name##_FUNCTION_NAME))
1269 #define entity_a_special_entity_p(e,name) \
1270 (same_string_p(global_name_to_user_name(entity_name(e)), name))
1272 #define ENTITY_CONVERSION_P(e,name) \
1273 (strcmp(entity_local_name(e), name##_GENERIC_CONVERSION_NAME)==0)
1274 #define ENTITY_CONVERSION_CMPLX_P(e) ENTITY_CONVERSION_P(e, CMPLX)
1275 #define ENTITY_CONVERSION_DCMPLX_P(e) ENTITY_CONVERSION_P(e, DCMPLX)
1277 #define ENTITY_CONTINUE_P(e) entity_a_function_p(e, CONTINUE)
1278 #define ENTITY_STOP_P(e) entity_a_function_p(e, STOP)
1279 #define ENTITY_RETURN_P(e) entity_a_function_p(e, RETURN)
1280 #define ENTITY_C_RETURN_P(e) entity_a_function_p(e, C_RETURN)
1282 #define ENTITY_ASSIGN_P(e) entity_an_operator_p(e, ASSIGN)
1283 #define ENTITY_POST_INCREMENT_P(e) entity_an_operator_p(e, POST_INCREMENT)
1284 #define ENTITY_POST_DECREMENT_P(e) entity_an_operator_p(e, POST_DECREMENT)
1285 #define ENTITY_PRE_INCREMENT_P(e) entity_an_operator_p(e, PRE_INCREMENT)
1286 #define ENTITY_PRE_DECREMENT_P(e) entity_an_operator_p(e, PRE_DECREMENT)
1287 #define ENTITY_MULTIPLY_UPDATE_P(e) entity_an_operator_p(e, MULTIPLY_UPDATE)
1288 #define ENTITY_DIVIDE_UPDATE_P(e) entity_an_operator_p(e, DIVIDE_UPDATE)
1289 #define ENTITY_MODULO_UPDATE_P(e) entity_an_operator_p(e, MODULO_UPDATE)
1290 #define ENTITY_PLUS_UPDATE_P(e) entity_an_operator_p(e, PLUS_UPDATE)
1291 #define ENTITY_MINUS_UPDATE_P(e) entity_an_operator_p(e, MINUS_UPDATE)
1292 #define ENTITY_LEFT_SHIFT_UPDATE_P(e) entity_an_operator_p(e, LEFT_SHIFT_UPDATE)
1293 #define ENTITY_RIGHT_SHIFT_UPDATE_P(e) entity_an_operator_p(e, RIGHT_SHIFT_UPDATE)
1294 #define ENTITY_BITWISE_AND_UPDATE_P(e) entity_an_operator_p(e, BITWISE_AND_UPDATE)
1295 #define ENTITY_BITWISE_XOR_UPDATE_P(e) entity_an_operator_p(e, BITWISE_XOR_UPDATE)
1296 #define ENTITY_BITWISE_OR_UPDATE_P(e) entity_an_operator_p(e, BITWISE_OR_UPDATE)
1297 #define ENTITY_COMMA_P(e) entity_an_operator_p(e, COMMA)
1298 #define ENTITY_ADDRESS_OF_P(e) entity_an_operator_p(e, ADDRESS_OF)
1299 #define ENTITY_CONDITIONAL_P(e) entity_an_operator_p(e, CONDITIONAL)
1301 #define ENTITY_PLUS_P(e) entity_an_operator_p(e, PLUS)
1302 #define ENTITY_PLUS_C_P(e) entity_an_operator_p(e, PLUS_C)
1303 #define ENTITY_MINUS_P(e) entity_an_operator_p(e, MINUS)
1304 #define ENTITY_MINUS_C_P(e) entity_an_operator_p(e, MINUS_C)
1305 #define ENTITY_UNARY_MINUS_P(e) entity_an_operator_p(e, UNARY_MINUS)
1306 #define ENTITY_UNARY_PLUS_P(e) entity_an_operator_p(e, UNARY_PLUS)
1307 #define ENTITY_MULTIPLY_P(e) entity_an_operator_p(e, MULTIPLY)
1308 #define ENTITY_MODULO_P(e) entity_an_operator_p(e, MODULO)
1309 #define ENTITY_C_MODULO_P(e) entity_an_operator_p(e, C_MODULO)
1310 #define ENTITY_POWER_P(e) entity_an_operator_p(e, POWER)
1311 #define ENTITY_DIVIDE_P(e) entity_an_operator_p(e, DIVIDE)
1313 #define ENTITY_MIN_P(e) entity_an_operator_p(e, MIN)
1314 #define ENTITY_C_MIN_P(e) entity_an_operator_p(e,PIPS_C_MIN)
1315 #define ENTITY_MAX_P(e) entity_an_operator_p(e, MAX)
1316 #define ENTITY_C_MAX_P(e) entity_an_operator_p(e,PIPS_C_MAX)
1317 #define ENTITY_MIN0_P(e) entity_an_operator_p(e, MIN0)
1318 #define ENTITY_MAX0_P(e) entity_an_operator_p(e, MAX0)
1319 #define ENTITY_AMIN1_P(e) entity_an_operator_p(e, AMIN1)
1320 #define ENTITY_AMAX1_P(e) entity_an_operator_p(e, AMAX1)
1321 #define ENTITY_DMIN1_P(e) entity_an_operator_p(e, DMIN1)
1322 #define ENTITY_DMAX1_P(e) entity_an_operator_p(e, DMAX1)
1323 #define ENTITY_MIN_OR_MAX_P(e) (ENTITY_MIN_P(e) || ENTITY_MAX_P(e) )
1325 #define ENTITY_ABS_P(e) entity_an_operator_p(e, ABS)
1326 #define ENTITY_IABS_P(e) entity_an_operator_p(e, IABS)
1327 #define ENTITY_DABS_P(e) entity_an_operator_p(e, DABS)
1328 #define ENTITY_CABS_P(e) entity_an_operator_p(e, CABS)
1330 #define ENTITY_C_ABS_P(e) entity_a_function_p(e, C_ABS)
1331 #define ENTITY_LABS_P(e) entity_a_function_p(e, LABS)
1332 #define ENTITY_LLABS_P(e) entity_a_function_p(e, LLABS)
1334 #define ENTITY_IMAXABS_P(e) entity_a_function_p(e, IMAXABS)
1336 #define ENTITY_FABS_P(e) entity_an_operator_p(e, FABS)
1337 #define ENTITY_FABSF_P(e) entity_an_operator_p(e, FABSF)
1338 #define ENTITY_FABSL_P(e) entity_an_operator_p(e, FABSL)
1340 #define ENTITY_C_CABS_P(e) entity_an_operator_p(e, C_CABS)
1341 #define ENTITY_CABSF_P(e) entity_an_operator_p(e, CABSF)
1342 #define ENTITY_CABSL_P(e) entity_an_operator_p(e, CABSL)
1344 #define ENTITY_AND_P(e) (entity_an_operator_p(e, AND) || entity_an_operator_p(e, C_AND))
1345 #define ENTITY_OR_P(e) (entity_an_operator_p(e, OR) || entity_an_operator_p(e, C_OR))
1346 #define ENTITY_BITWISE_AND_P(e) (entity_an_operator_p(e, BITWISE_AND))
1347 #define ENTITY_BITWISE_OR_P(e) (entity_an_operator_p(e, BITWISE_OR))
1348 #define ENTITY_BITWISE_XOR_P(e) (entity_an_operator_p(e, BITWISE_XOR))
1349 #define ENTITY_NOT_P(e) (entity_an_operator_p(e, NOT) || entity_an_operator_p(e, C_NOT))
1351 #define ENTITY_NON_EQUAL_P(e) (entity_an_operator_p(e, NON_EQUAL) || entity_an_operator_p(e, NON_EQUIV) || entity_an_operator_p(e, C_NON_EQUAL))
1352 #define ENTITY_EQUIV_P(e) entity_an_operator_p(e, EQUIV)
1353 #define ENTITY_NON_EQUIV_P(e) entity_an_operator_p(e, NON_EQUIV)
1354 #define ENTITY_LEFT_SHIFT_P(e) entity_an_operator_p(e, LEFT_SHIFT)
1355 #define ENTITY_RIGHT_SHIFT_P(e) entity_an_operator_p(e, RIGHT_SHIFT)
1357 #define ENTITY_ADDRESS_OF_P(e) entity_an_operator_p(e, ADDRESS_OF)
1363 #define ENTITY_LOGICAL_OPERATOR_P(e) ( ENTITY_RELATIONAL_OPERATOR_P(e) || \
1364 ENTITY_AND_P(e) || \
1368 #define ENTITY_TRUE_P(e) entity_an_operator_p(e, TRUE)
1369 #define ENTITY_FALSE_P(e) entity_an_operator_p(e, FALSE)
1370 #define ENTITY_ONE_P(e) entity_an_operator_p(e, ONE)
1371 #define ENTITY_ZERO_P(e) entity_an_operator_p(e, ZERO)
1373 #define ENTITY_GREATER_OR_EQUAL_P(e) (entity_an_operator_p(e, GREATER_OR_EQUAL) || entity_an_operator_p(e, C_GREATER_OR_EQUAL))
1374 #define ENTITY_GREATER_THAN_P(e) (entity_an_operator_p(e, GREATER_THAN) || entity_an_operator_p(e, C_GREATER_THAN))
1375 #define ENTITY_LESS_OR_EQUAL_P(e) (entity_an_operator_p(e, LESS_OR_EQUAL) || entity_an_operator_p(e, C_LESS_OR_EQUAL))
1376 #define ENTITY_LESS_THAN_P(e) (entity_an_operator_p(e, LESS_THAN) || entity_an_operator_p(e, C_LESS_THAN))
1379 #define ENTITY_EQUAL_P(e) (entity_an_operator_p(e, EQUAL) || entity_an_operator_p(e, EQUIV) || entity_an_operator_p(e, C_EQUAL))
1381 #define ENTITY_RELATIONAL_OPERATOR_P(e) ( \
1382 ENTITY_GREATER_OR_EQUAL_P(e) || \
1383 ENTITY_GREATER_THAN_P(e) || \
1384 ENTITY_LESS_OR_EQUAL_P(e) || \
1385 ENTITY_LESS_THAN_P(e) || \
1386 ENTITY_NON_EQUAL_P(e) || \
1389 #define ENTITY_NAME_P(e, name)(same_string_p(entity_user_name(e),name))
1393 #define ENTITY_WRITE_P(e) ENTITY_NAME_P(e, "WRITE")
1394 #define ENTITY_REWIND_P(e) ENTITY_NAME_P(e, "REWIND")
1395 #define ENTITY_OPEN_P(e) ENTITY_NAME_P(e, "OPEN")
1396 #define ENTITY_CLOSE_P(e) ENTITY_NAME_P(e, "CLOSE")
1397 #define ENTITY_READ_P(e) ENTITY_NAME_P(e, READ_FUNCTION_NAME)
1398 #define ENTITY_BUFFERIN_P(e) ENTITY_NAME_P(e, "BUFFERIN")
1399 #define ENTITY_BUFFEROUT_P(e) ENTITY_NAME_P(e, "BUFFEROUT")
1400 #define ENTITY_ENDFILE_P(e) ENTITY_NAME_P(e, "ENDFILE")
1401 #define ENTITY_IMPLIEDDO_P(e) ENTITY_NAME_P(e, IMPLIED_DO_NAME)
1402 #define ENTITY_IO_LIST_P(e) ENTITY_NAME_P(e, IO_LIST_STRING_NAME)
1403 #define ENTITY_FORMAT_P(e) ENTITY_NAME_P(e, "FORMAT")
1406 #define ENTITY_ISHFT_P(e) ENTITY_NAME_P(e, "ISHFT")
1407 #define ENTITY_ISHFTC_P(e) ENTITY_NAME_P(e, "ISHFTC")
1408 #define ENTITY_IBITS_P(e) ENTITY_NAME_P(e, "IBITS")
1409 #define ENTITY_MVBITS_P(e) ENTITY_NAME_P(e, "MVBITS")
1410 #define ENTITY_BTEST_P(e) ENTITY_NAME_P(e, "BTEST")
1411 #define ENTITY_IBSET_P(e) ENTITY_NAME_P(e, "IBSET")
1412 #define ENTITY_IBCLR_P(e) ENTITY_NAME_P(e, "IBCLR")
1413 #define ENTITY_BIT_SIZE_P(e) ENTITY_NAME_P(e, "BIT_SIZE")
1414 #define ENTITY_IOR_P(e) ENTITY_NAME_P(e, "IOR")
1415 #define ENTITY_IEOR_P(e) ENTITY_NAME_P(e, "IEOR")
1416 #define ENTITY_IAND_P(e) ENTITY_NAME_P(e, "IAND")
1419 #define ENTITY_OMP_IF_P(e) ENTITY_NAME_P(e,OMP_IF_FUNCTION_NAME)
1420 #define ENTITY_OMP_OMP_P(e) ENTITY_NAME_P(e,OMP_OMP_FUNCTION_NAME)
1421 #define ENTITY_OMP_FOR_P(e) ENTITY_NAME_P(e,OMP_FOR_FUNCTION_NAME)
1422 #define ENTITY_OMP_PRIVATE_P(e) ENTITY_NAME_P(e,OMP_PRIVATE_FUNCTION_NAME)
1423 #define ENTITY_OMP_PARALLEL_P(e) ENTITY_NAME_P(e,OMP_PARALLEL_FUNCTION_NAME)
1424 #define ENTITY_OMP_REDUCTION_P(e) ENTITY_NAME_P(e,OMP_REDUCTION_FUNCTION_NAME)
1431 #define ENTITY_PRINTF_P(e) ENTITY_NAME_P(e, "printf")
1432 #define ENTITY_FPRINTF_P(e) ENTITY_NAME_P(e, "fprintf")
1433 #define ENTITY_SCANF_P(e) ENTITY_NAME_P(e, "scanf")
1434 #define ENTITY_ISOC99_SCANF_P(e) ENTITY_NAME_P(e, ISOC99_SCANF_FUNCTION_NAME)
1435 #define ENTITY_FSCANF_P(e) ENTITY_NAME_P(e, "fscanf")
1436 #define ENTITY_ISOC99_FSCANF_P(e) ENTITY_NAME_P(e, ISOC99_FSCANF_FUNCTION_NAME)
1437 #define ENTITY_PUTS_P(e) ENTITY_NAME_P(e, "puts")
1438 #define ENTITY_GETS_P(e) ENTITY_NAME_P(e, "gets")
1439 #define ENTITY_FPUTS_P(e) ENTITY_NAME_P(e, "fputs")
1440 #define ENTITY_FGETS_P(e) ENTITY_NAME_P(e, "fgets")
1441 #define ENTITY_FPUTC_P(e) ENTITY_NAME_P(e, "fputc")
1442 #define ENTITY_FGETC_P(e) ENTITY_NAME_P(e, "fgetc")
1443 #define ENTITY_FOPEN_P(e) ENTITY_NAME_P(e, "fopen")
1444 #define ENTITY_FDOPEN_P(e) ENTITY_NAME_P(e, "fdopen")
1445 #define ENTITY_FREOPEN_P(e) ENTITY_NAME_P(e, "freopen")
1446 #define ENTITY_FCLOSE_P(e) ENTITY_NAME_P(e, "fclose")
1447 #define ENTITY_SNPRINTF_P(e) ENTITY_NAME_P(e, "snprintf")
1448 #define ENTITY_SSCANF_P(e) ENTITY_NAME_P(e, "sscanf")
1449 #define ENTITY_ISOC99_SSCANF_P(e) ENTITY_NAME_P(e, ISOC99_SSCANF_FUNCTION_NAME)
1450 #define ENTITY_VFPRINTF_P(e) ENTITY_NAME_P(e, "vfprintf")
1451 #define ENTITY_VFSCANF_P(e) ENTITY_NAME_P(e, "vfscanf")
1452 #define ENTITY_ISOC99_VFSCANF_P(e) ENTITY_NAME_P(e, ISOC99_VFSCANF_FUNCTION_NAME)
1453 #define ENTITY_VPRINTF_P(e) ENTITY_NAME_P(e, "vprintf")
1454 #define ENTITY_VSCANF_P(e) ENTITY_NAME_P(e, "vscanf")
1455 #define ENTITY_ISOC99_VSCANF_P(e) ENTITY_NAME_P(e, ISOC99_VSCANF_FUNCTION_NAME)
1456 #define ENTITY_VSNPRINTF_P(e) ENTITY_NAME_P(e, "vsnprintf")
1457 #define ENTITY_VSPRINTF_P(e) ENTITY_NAME_P(e, "vsprintf")
1458 #define ENTITY_SPRINTF_P(e) ENTITY_NAME_P(e, "sprintf")
1459 #define ENTITY_VSSCANF_P(e) ENTITY_NAME_P(e, "vsscanf")
1460 #define ENTITY_ISOC99_VSSCANF_P(e) ENTITY_NAME_P(e, ISOC99_VSSCANF_FUNCTION_NAME)
1461 #define ENTITY_GETC_P(e) ENTITY_NAME_P(e, "getc")
1462 #define ENTITY__IO_GETC_P(e) ENTITY_NAME_P(e, "_IO_getc")
1463 #define ENTITY_GETCHAR_P(e) ENTITY_NAME_P(e, "getchar")
1464 #define ENTITY_PUTC_P(e) ENTITY_NAME_P(e, "putc")
1465 #define ENTITY__IO_PUTC_P(e) ENTITY_NAME_P(e, "_IO_putc")
1466 #define ENTITY_PUTCHAR_P(e) ENTITY_NAME_P(e, "putchar")
1467 #define ENTITY_UNGETC_P(e) ENTITY_NAME_P(e, "ungetc")
1468 #define ENTITY_FREAD_P(e) ENTITY_NAME_P(e, "fread")
1469 #define ENTITY_FWRITE_P(e) ENTITY_NAME_P(e, "fwrite")
1470 #define ENTITY_FGETPOS_P(e) ENTITY_NAME_P(e, "fgetpos")
1471 #define ENTITY_FSEEK_P(e) ENTITY_NAME_P(e, "fseek")
1472 #define ENTITY_FSETPOS_P(e) ENTITY_NAME_P(e, "fsetpos")
1473 #define ENTITY_FTELL_P(e) ENTITY_NAME_P(e, "ftell")
1474 #define ENTITY_C_REWIND_P(e) ENTITY_NAME_P(e, "rewind")
1475 #define ENTITY_CLEARERR_P(e) ENTITY_NAME_P(e, "clearer")
1476 #define ENTITY_FEOF_P(e) ENTITY_NAME_P(e, "feof")
1477 #define ENTITY_FERROR_P(e) ENTITY_NAME_P(e, "ferror")
1478 #define ENTITY_FILENO_P(e) ENTITY_NAME_P(e, "fileno")
1479 #define ENTITY_PERROR_P(e) ENTITY_NAME_P(e, "perror")
1483 #define ENTITY_C_OPEN_SYSTEM_P(e) ENTITY_NAME_P(e, C_OPEN_FUNCTION_NAME)
1484 #define ENTITY_C_CLOSE_SYSTEM_P(e) ENTITY_NAME_P(e, C_CLOSE_FUNCTION_NAME)
1485 #define ENTITY_C_READ_SYSTEM_P(e) ENTITY_NAME_P(e, C_READ_FUNCTION_NAME)
1486 #define ENTITY_C_WRITE_SYSTEM_P(e) ENTITY_NAME_P(e, C_WRITE_FUNCTION_NAME)
1487 #define ENTITY_LINK_SYSTEM_P(e) ENTITY_NAME_P(e, LINK_FUNCTION_NAME)
1488 #define ENTITY_SYMLINK_SYSTEM_P(e) ENTITY_NAME_P(e, SYMLINK_FUNCTION_NAME)
1489 #define ENTITY_UNLINK_SYSTEM_P(e) ENTITY_NAME_P(e, UNLINK_FUNCTION_NAME)
1492 #define ENTITY_FSYNC_SYSTEM_P(e) ENTITY_NAME_P(e, FSYNC_FUNCTION_NAME)
1493 #define ENTITY_FDATASYNC_SYSTEM_P(e) ENTITY_NAME_P(e, FDATASYNC_FUNCTION_NAME)
1494 #define ENTITY_IOCTL_SYSTEM_P(e) ENTITY_NAME_P(e, IOCTL_FUNCTION_NAME)
1495 #define ENTITY_SELECT_SYSTEM_P(e) ENTITY_NAME_P(e, SELECT_FUNCTION_NAME)
1496 #define ENTITY_PSELECT_SYSTEM_P(e) ENTITY_NAME_P(e, PSELECT_FUNCTION_NAME)
1497 #define ENTITY_STAT_SYSTEM_P(e) ENTITY_NAME_P(e, STAT_FUNCTION_NAME)
1498 #define ENTITY_FSTAT_SYSTEM_P(e) ENTITY_NAME_P(e, FSTAT_FUNCTION_NAME)
1499 #define ENTITY_LSTAT_SYSTEM_P(e) ENTITY_NAME_P(e, LSTAT_FUNCTION_NAME)
1501 #define ENTITY_REMOVE_SYSTEM_P(e) ENTITY_NAME_P(e, "remove")
1502 #define ENTITY_RENAME_SYSTEM_P(e) ENTITY_NAME_P(e, "rename")
1503 #define ENTITY_TMPFILE_SYSTEM_P(e) ENTITY_NAME_P(e, "tmpfile")
1504 #define ENTITY_TMPNAM_SYSTEM_P(e) ENTITY_NAME_P(e, "tmpnam")
1505 #define ENTITY_FFLUSH_SYSTEM_P(e) ENTITY_NAME_P(e, "fflush")
1506 #define ENTITY_FREOPEN_SYSTEM_P(e) ENTITY_NAME_P(e, "freopen")
1507 #define ENTITY_SETBUF_SYSTEM_P(e) ENTITY_NAME_P(e, "setbuf")
1508 #define ENTITY_SETVBUF_SYSTEM_P(e) ENTITY_NAME_P(e, "setvbuf")
1509 #define ENTITY__FILBUF_SYSTEM_P(e) ENTITY_NAME_P(e, "__filbuf")
1510 #define ENTITY__FILSBUF_SYSTEM_P(e) ENTITY_NAME_P(e, "__flsbuf")
1511 #define ENTITY_SETBUFFER_SYSTEM_P(e) ENTITY_NAME_P(e, "setbuffer")
1512 #define ENTITY_SETLINEBUF_SYSTEM_P(e) ENTITY_NAME_P(e, "setlinebuf")
1513 #define ENTITY_FDOPEN_SYSTEM_P(e) ENTITY_NAME_P(e, "fdopen")
1514 #define ENTITY_CTERMID_SYSTEM_P(e) ENTITY_NAME_P(e, "ctermid")
1515 #define ENTITY_FILENO_SYSTEM_P(e) ENTITY_NAME_P(e, "fileno")
1516 #define ENTITY_POPEN_SYSTEM_P(e) ENTITY_NAME_P(e, "popen")
1517 #define ENTITY_CUSERID_SYSTEM_P(e) ENTITY_NAME_P(e, "cuserid")
1518 #define ENTITY_TEMPNAM_SYSTEM_P(e) ENTITY_NAME_P(e, "tempnam")
1519 #define ENTITY_GETW_SYSTEM_P(e) ENTITY_NAME_P(e, "getw")
1520 #define ENTITY_PUTW_SYSTEM_P(e) ENTITY_NAME_P(e, "putw")
1521 #define ENTITY_PCLOSE_SYSTEM_P(e) ENTITY_NAME_P(e, "pclose")
1522 #define ENTITY_FSEEKO_SYSTEM_P(e) ENTITY_NAME_P(e, "fseeko")
1523 #define ENTITY_FTELLO_SYSTEM_P(e) ENTITY_NAME_P(e, "ftello")
1524 #define ENTITY_FOPEN64_SYSTEM_P(e) ENTITY_NAME_P(e, "fopen64")
1525 #define ENTITY_FREOPEN64_SYSTEM_P(e) ENTITY_NAME_P(e, "freopen64")
1526 #define ENTITY_TMPFILE64_SYSTEM_P(e) ENTITY_NAME_P(e, "tmpfile64")
1527 #define ENTITY_FGETPOS64_SYSTEM_P(e) ENTITY_NAME_P(e, "fgetpos64")
1528 #define ENTITY_FSETPOS64_SYSTEM_P(e) ENTITY_NAME_P(e, "fsetpos64")
1529 #define ENTITY_FSEEKO64_SYSTEM_P(e) ENTITY_NAME_P(e, "fseeko64")
1530 #define ENTITY_FTELLO64_SYSTEM_P(e) ENTITY_NAME_P(e, "ftello64")
1532 #define ENTITY_ABORT_SYSTEM_P(e) ENTITY_NAME_P(e, "abort")
1533 #define ENTITY_C_ABS_SYSTEM_P(e) ENTITY_NAME_P(e, "abs")
1534 #define ENTITY_ATEXIT_SYSTEM_P(e) ENTITY_NAME_P(e, "atexit")
1535 #define ENTITY_ATOF_SYSTEM_P(e) ENTITY_NAME_P(e, "atof")
1536 #define ENTITY_ATOI_SYSTEM_P(e) ENTITY_NAME_P(e, "atoi")
1537 #define ENTITY_BSEARCH_SYSTEM_P(e) ENTITY_NAME_P(e, "bsearch")
1538 #define ENTITY_CALLOC_SYSTEM_P(e) ENTITY_NAME_P(e, "calloc")
1539 #define ENTITY_DIV_SYSTEM_P(e) ENTITY_NAME_P(e, "div")
1540 #define ENTITY_EXIT_SYSTEM_P(e) ENTITY_NAME_P(e, "exit")
1541 #define ENTITY_FREE_SYSTEM_P(e) ENTITY_NAME_P(e, "free")
1542 #define ENTITY_GETENV_SYSTEM_P(e) ENTITY_NAME_P(e, "getenv")
1543 #define ENTITY_LABS_SYSTEM_P(e) ENTITY_NAME_P(e, "labs")
1544 #define ENTITY_LDIV_SYSTEM_P(e) ENTITY_NAME_P(e, "ldiv")
1545 #define ENTITY_MALLOC_SYSTEM_P(e) ENTITY_NAME_P(e, "malloc")
1546 #define ENTITY_MBLEN_SYSTEM_P(e) ENTITY_NAME_P(e, "mblen")
1547 #define ENTITY_MBSTOWCS_SYSTEM_P(e) ENTITY_NAME_P(e, "mbstowcs")
1548 #define ENTITY_MBTOWC_SYSTEM_P(e) ENTITY_NAME_P(e, "mbtowc")
1549 #define ENTITY_QSORT_SYSTEM_P(e) ENTITY_NAME_P(e, "qsort")
1550 #define ENTITY_REALLOC_SYSTEM_P(e) ENTITY_NAME_P(e, "realloc")
1551 #define ENTITY_STRTOD_SYSTEM_P(e) ENTITY_NAME_P(e, "strtod")
1552 #define ENTITY_STRTOL_SYSTEM_P(e) ENTITY_NAME_P(e, "strtol")
1553 #define ENTITY_STRTOUL_SYSTEM_P(e) ENTITY_NAME_P(e, "strtoul")
1554 #define ENTITY_SYSTEM_SYSTEM_P(e) ENTITY_NAME_P(e, "system")
1555 #define ENTITY_WCTOMB_SYSTEM_P(e) ENTITY_NAME_P(e, "wctomb")
1556 #define ENTITY_WCSTOMBS_SYSTEM_P(e) ENTITY_NAME_P(e, "wcstombs")
1557 #define ENTITY_EXITHANDLESYSTEM_P(e) ENTITY_NAME_P(e, "exithandle")
1558 #define ENTITY_DRAND48_SYSTEM_P(e) ENTITY_NAME_P(e, "drand48")
1559 #define ENTITY_ERAND48_SYSTEM_P(e) ENTITY_NAME_P(e, "erand48")
1560 #define ENTITY_JRAND48_SYSTEM_P(e) ENTITY_NAME_P(e, "jrand48")
1561 #define ENTITY_LCONG48_SYSTEM_P(e) ENTITY_NAME_P(e, "lcong48")
1562 #define ENTITY_LRAND48_SYSTEM_P(e) ENTITY_NAME_P(e, "lrand48")
1563 #define ENTITY_MRAND48_SYSTEM_P(e) ENTITY_NAME_P(e, "mrand48")
1564 #define ENTITY_NRAND48_SYSTEM_P(e) ENTITY_NAME_P(e, "nrand48")
1565 #define ENTITY_SEED48_SYSTEM_P(e) ENTITY_NAME_P(e, "seed48")
1566 #define ENTITY_SRAND48_SYSTEM_P(e) ENTITY_NAME_P(e, "srand48")
1567 #define ENTITY_PUTENV_SYSTEM_P(e) ENTITY_NAME_P(e, "putenv")
1568 #define ENTITY_SETKEY_SYSTEM_P(e) ENTITY_NAME_P(e, "setkey")
1569 #define ENTITY_SWAB_SYSTEM_P(e) ENTITY_NAME_P(e, "swab")
1570 #define ENTITY_MKSTEMP_SYSTEM_P(e) ENTITY_NAME_P(e, "mkstemp")
1571 #define ENTITY_MKSTEMP64_SYSTEM_P(e) ENTITY_NAME_P(e, "mkstemp64")
1572 #define ENTITY_A614_SYSTEM_P(e) ENTITY_NAME_P(e, "a64l")
1573 #define ENTITY_ECVT_SYSTEM_P(e) ENTITY_NAME_P(e, "ecvt")
1574 #define ENTITY_FCVT_SYSTEM_P(e) ENTITY_NAME_P(e, "fcvt")
1575 #define ENTITY_GCVT_SYSTEM_P(e) ENTITY_NAME_P(e, "gcvt")
1576 #define ENTITY_GETSUBOPT_SYSTEM_P(e) ENTITY_NAME_P(e, "getsubopt")
1577 #define ENTITY_GRANTPT_SYSTEM_P(e) ENTITY_NAME_P(e, "grantpt")
1578 #define ENTITY_INITSTATE_SYSTEM_P(e) ENTITY_NAME_P(e, "initstate")
1579 #define ENTITY_C_164A_SYSTEM_P(e) ENTITY_NAME_P(e, "l64a")
1580 #define ENTITY_MKTEMP_SYSTEM_P(e) ENTITY_NAME_P(e, "mktemp")
1581 #define ENTITY_PTSNAME_SYSTEM_P(e) ENTITY_NAME_P(e, "ptsname")
1582 #define ENTITY_REALPATH_SYSTEM_P(e) ENTITY_NAME_P(e, "realpath")
1583 #define ENTITY_SETSTATE_SYSTEM_P(e) ENTITY_NAME_P(e, "setstate")
1584 #define ENTITY_TTYSLOT_SYSTEM_P(e) ENTITY_NAME_P(e, "ttyslot")
1585 #define ENTITY_UNLOCKPT_SYSTEM_P(e) ENTITY_NAME_P(e, "unlockpt")
1586 #define ENTITY_VALLOC_SYSTEM_P(e) ENTITY_NAME_P(e, "valloc")
1587 #define ENTITY_DUP2_SYSTEM_P(e) ENTITY_NAME_P(e, "dup2")
1588 #define ENTITY_QECVT_SYSTEM_P(e) ENTITY_NAME_P(e, "qecvt")
1589 #define ENTITY_QFCVT_SYSTEM_P(e) ENTITY_NAME_P(e, "qfcvt")
1590 #define ENTITY_QGCVT_SYSTEM_P(e) ENTITY_NAME_P(e, "qgcvt")
1591 #define ENTITY_GETCWD_SYSTEM_P(e) ENTITY_NAME_P(e, "getcwd")
1592 #define ENTITY_GETEXECNAME_SYSTEM_P(e) ENTITY_NAME_P(e, "getexecname")
1593 #define ENTITY_GETLOGIN_SYSTEM_P(e) ENTITY_NAME_P(e, "getlogin")
1594 #define ENTITY_GETOPT_SYSTEM_P(e) ENTITY_NAME_P(e, "getopt")
1595 #define ENTITY_GETPASS_SYSTEM_P(e) ENTITY_NAME_P(e, "getpass")
1596 #define ENTITY_GETPASSPHRASE_SYSTEM_P(e) ENTITY_NAME_P(e, "getpassphrase")
1597 #define ENTITY_GETPW_SYSTEM_P(e) ENTITY_NAME_P(e, "getpw")
1598 #define ENTITY_ISATTY_SYSTEM_P(e) ENTITY_NAME_P(e, "isatty")
1599 #define ENTITY_MEMALIGN_SYSTEM_P(e) ENTITY_NAME_P(e, "memalign")
1600 #define ENTITY_TTYNAME_SYSTEM_P(e) ENTITY_NAME_P(e, "ttyname")
1601 #define ENTITY_ATOLL_SYSTEM_P(e) ENTITY_NAME_P(e, "atoll")
1602 #define ENTITY_LLABS_SYSTEM_P(e) ENTITY_NAME_P(e, "llabs")
1603 #define ENTITY_LLDIV_SYSTEM_P(e) ENTITY_NAME_P(e, "lldiv")
1604 #define ENTITY_LLTOSTR_SYSTEM_P(e) ENTITY_NAME_P(e, "lltostr")
1605 #define ENTITY_STROLL_SYSTEM_P(e) ENTITY_NAME_P(e, "strtoll")
1606 #define ENTITY_STROULL_SYSTEM_P(e) ENTITY_NAME_P(e, "strtoull")
1607 #define ENTITY_ULLOSTR_SYSTEM_P(e) ENTITY_NAME_P(e, "ulltostr")
1611 #define ENTITY_ASSERT_SYSTEM_P(e) ENTITY_NAME_P(e, ASSERT_FUNCTION_NAME)
1612 #define ENTITY_ASSERT_FAIL_SYSTEM_P(e) ENTITY_NAME_P(e, ASSERT_FAIL_FUNCTION_NAME)
1616 #define ENTITY_STRCMP_SYSTEM_P(e) ENTITY_NAME_P(e, "strcmp")
1617 #define ENTITY_STRNCMP_SYSTEM_P(e) ENTITY_NAME_P(e, "strncmp")
1618 #define ENTITY_STRCPY_SYSTEM_P(e) ENTITY_NAME_P(e, "strcpy")
1619 #define ENTITY_STRCAT_SYSTEM_P(e) ENTITY_NAME_P(e, "strcat")
1620 #define ENTITY_STRNCAT_SYSTEM_P(e) ENTITY_NAME_P(e, "strncat")
1621 #define ENTITY_STRLEN_SYSTEM_P(e) ENTITY_NAME_P(e, "strlen")
1622 #define ENTITY_STRERROR_SYSTEM_P(e) ENTITY_NAME_P(e, "strerror")
1623 #define ENTITY_STRERROR_R_SYSTEM_P(e) ENTITY_NAME_P(e, "strerror_r")
1626 #define ENTITY_FOPEN_SYSTEM_P(e) ENTITY_NAME_P(e, "fopen")
1630 #define ENTITY_FCNTL_SYSTEM_P(e) ENTITY_NAME_P(e,"fcntl")
1631 #define ENTITY_OPEN_SYSTEM_P(e) ENTITY_NAME_P(e,"open")
1632 #define ENTITY_CREAT_SYSTEM_P(e) ENTITY_NAME_P(e,"creat")
1633 #define ENTITY_DIRECTIO_SYSTEM_P(e) ENTITY_NAME_P(e,"directio")
1634 #define ENTITY_OPEN64_SYSTEM_P(e) ENTITY_NAME_P(e,"open64")
1635 #define ENTITY_CREAT64_SYSTEM_P(e) ENTITY_NAME_P(e,"creat64")
1639 #define ENTITY_RANDOM_P(e) ENTITY_NAME_P(e,"random")
1640 #define ENTITY_SRANDOM_P(e) ENTITY_NAME_P(e,"srandom")
1641 #define ENTITY_RAND_P(e) ENTITY_NAME_P(e,"rand")
1642 #define ENTITY_SRAND_P(e) ENTITY_NAME_P(e,"srand")
1645 #define ENTITY_SIGNAL_P(e) ENTITY_NAME_P(e,"signal")
1649 #define ENTITY_STATIC_INITIALIZATION_P(e) ENTITY_NAME_P(e, STATIC_INITIALIZATION_FUNCTION_NAME)
1650 #define ENTITY_REPEAT_VALUE_P(e) ENTITY_NAME_P(e, REPEAT_VALUE_FUNCTION_NAME)
1651 #define ENTITY_DATA_LIST_P(e) ENTITY_NAME_P(e, DATA_LIST_FUNCTION_NAME)
1655 #define ENTITY_BRACE_INTRINSIC_P(e) ENTITY_NAME_P(e, BRACE_INTRINSIC)
1657 #define ENTITY_IMPLIED_CMPLX_P(e) ENTITY_NAME_P(e, IMPLIED_COMPLEX_NAME)
1658 #define ENTITY_IMPLIED_DCMPLX_P(e) ENTITY_NAME_P(e, IMPLIED_DCOMPLEX_NAME)
1662 #define ENTITY_FIELD_P(e) entity_an_operator_p(e, FIELD)
1663 #define ENTITY_POINT_TO_P(e) entity_an_operator_p(e, POINT_TO)
1664 #define ENTITY_DEREFERENCING_P(e) entity_an_operator_p(e, DEREFERENCING)
1668 #define ENTITY_VA_END_P(e) ENTITY_NAME_P(e, BUILTIN_VA_END)
1669 #define ENTITY_VA_START_P(e) ENTITY_NAME_P(e, BUILTIN_VA_START)
1670 #define ENTITY_VA_COPY_P(e) ENTITY_NAME_P(e, BUILTIN_VA_COPY)
1673 #define ENTITY_FIVE_OPERATION_P(e) ( ENTITY_PLUS_P(e) || \
1674 ENTITY_PLUS_C_P(e) || \
1675 ENTITY_MINUS_P(e) || \
1676 ENTITY_MINUS_C_P(e) || \
1677 ENTITY_UNARY_MINUS_P(e) || \
1678 ENTITY_MULTIPLY_P(e) || \
1679 ENTITY_MODULO_P(e) ||\
1680 ENTITY_DIVIDE_P(e) )
1682 #define IO_CALL_P(call) io_intrinsic_p(call_function(call))
1687 #define ALLOCATABLE_PREFIX "__pips_allocatable__"
1688 #define ALLOCATABLE_LBOUND_PREFIX "__pips__allocatable__lbound__"
1689 #define ALLOCATABLE_UBOUND_PREFIX "__pips__allocatable__ubound__"
1690 #define ENTITY_ALLOCATABLE_BOUND_P(e) \
1691 (strncmp(entity_user_name(e), ALLOCATABLE_LBOUND_PREFIX, strlen(ALLOCATABLE_LBOUND_PREFIX)) == 0 \
1692 || strncmp(entity_user_name(e), ALLOCATABLE_UBOUND_PREFIX, strlen(ALLOCATABLE_UBOUND_PREFIX)) == 0 )
1697 #define basic_numeric_simple_p(b) (basic_int_p(b) || basic_float_p(b))
1698 #define basic_numeric_p(b) (basic_numeric_simple_p(b) || basic_complex_p(b))
1699 #define basic_compatible_simple_p(b1, b2) (\
1700 (basic_numeric_simple_p(b1) && basic_numeric_simple_p(b2)) ||\
1701 (basic_string_p(b1) && basic_string_p(b2)) ||\
1702 (basic_logical_p(b1) && basic_logical_p(b2)) ||\
1703 (basic_overloaded_p(b1) && basic_overloaded_p(b2)) ||\
1704 (basic_undefined_p(b1) && basic_undefined_p(b2)))
1705 #define basic_compatible_p(b1, b2) (\
1706 (basic_numeric_p(b1) && basic_numeric_p(b2)) ||\
1707 (basic_string_p(b1) && basic_string_p(b2)) ||\
1708 (basic_logical_p(b1) && basic_logical_p(b2)) ||\
1709 (basic_overloaded_p(b1) && basic_overloaded_p(b2)) ||\
1710 (basic_undefined_p(b1) && basic_undefined_p(b2)))
1714 #define LABEL_SIZE 5
1715 #define INDENTATION (get_int_property("PRETTYPRINT_INDENTATION"))
1716 #define INDENT_A_LIST_OF_WORDS(list_of_words) { \
1717 if(list_of_words) { \
1718 list blanks = NIL; \
1719 for(int i=0; i<INDENTATION; i++) { \
1720 blanks = CHAIN_SWORD(blanks, " "); \
1722 list_of_words = gen_nconc(blanks,list_of_words); \
1728 #define STATEMENT_NUMBER_UNDEFINED (-1)
1729 #define UNKNOWN_RAM_OFFSET (-1)
1731 #define UNDEFINED_RAM_OFFSET (-2)
1735 #define DYNAMIC_RAM_OFFSET (-3)
1742 #define MAKE_ORDERING(u,s) (u<<16|s)
1743 #define ORDERING_NUMBER(o) (o>>16)
1744 #define ORDERING_STATEMENT(o) (o & 0xffff)
1746 #define NORMALIZE_EXPRESSION(e) \
1747 ((expression_normalized(e) == normalized_undefined) ? \
1748 (expression_normalized(e) = NormalizeExpression(e)) : \
1749 (expression_normalized(e)))
1753 #define entity_declarations(e) (code_declarations(entity_code(e)))
1770 #define entity_variable_p(e) (type_variable_p(entity_type(e)))
1772 #define entity_symbolic_p(e) (type_functional_p(entity_type(e)) && \
1773 storage_rom_p(entity_storage(e)) && value_symbolic_p(entity_initial(e)))
1776 #define module_language(e)\
1777 code_language(value_code(entity_initial((e))))
1779 #define module_functional_parameters(func) \
1780 functional_parameters(type_functional(entity_type(func)))
1782 #define call_intrinsic_p(C) \
1783 value_intrinsic_p(entity_initial(call_function(C)))
1786 #define statement_block_p(stat) \
1787 (instruction_block_p(statement_instruction(stat)))
1789 #define entity_constant_p(e) (type_functional_p(entity_type(e)) && \
1790 storage_rom_p(entity_storage(e)) && value_constant_p(entity_initial(e)))
1792 #define loop_to_instruction make_instruction_loop
1793 #define test_to_instruction make_instruction_test
1794 #define call_to_instruction make_instruction_call
1796 #define loop_to_statement(l) instruction_to_statement(loop_to_instruction(l))
1797 #define test_to_statement(t) instruction_to_statement(test_to_instruction(t))
1798 #define call_to_statement(c) instruction_to_statement(call_to_instruction(c))
1805 #define unary_intrinsic_expression(name, e)\
1806 call_to_expression(make_call(entity_intrinsic(name),CONS(EXPRESSION,e,NIL)))
1808 #define binary_intrinsic_expression(name, e1, e2)\
1809 call_to_expression(make_call(entity_intrinsic(name),\
1810 CONS(EXPRESSION, e1, CONS(EXPRESSION, e2, NIL))))
1812 #define not_expression(e) \
1813 unary_intrinsic_expression(NOT_OPERATOR_NAME, e)
1814 #define or_expression(e1, e2) \
1815 binary_intrinsic_expression(OR_OPERATOR_NAME, e1, e2)
1816 #define and_expression(e1, e2) \
1817 binary_intrinsic_expression(AND_OPERATOR_NAME, e1, e2)
1818 #define ne_expression(e1, e2) \
1819 binary_intrinsic_expression(NON_EQUAL_OPERATOR_NAME, e1, e2)
1820 #define eq_expression(e1, e2) \
1821 binary_intrinsic_expression(EQUAL_OPERATOR_NAME, e1, e2)
1822 #define gt_expression(e1, e2) \
1823 binary_intrinsic_expression(GREATER_THAN_OPERATOR_NAME, e1, e2)
1824 #define ge_expression(e1, e2) \
1825 binary_intrinsic_expression(GREATER_OR_EQUAL_OPERATOR_NAME, e1, e2)
1826 #define lt_expression(e1, e2) \
1827 binary_intrinsic_expression(LESS_THAN_OPERATOR_NAME, e1, e2)
1828 #define le_expression(e1, e2) \
1829 binary_intrinsic_expression(LESS_OR_EQUAL_OPERATOR_NAME, e1, e2)
1852 #define DOUBLE_PRECISION_SIZE 8
1870 #define HPF_PREFIX "HPFC"
1874 #define BLOCK_SUFFIX "K"
1875 #define CYCLIC_SUFFIX "C"
1876 #define STAR_SUFFIX "S"
1880 #define ALIGN_SUFFIX "A"
1881 #define REALIGN_SUFFIX "B"
1882 #define DISTRIBUTE_SUFFIX "D"
1883 #define REDISTRIBUTE_SUFFIX "E"
1884 #define INDEPENDENT_SUFFIX "I"
1885 #define NEW_SUFFIX "N"
1886 #define REDUCTION_SUFFIX "R"
1887 #define PROCESSORS_SUFFIX "P"
1888 #define TEMPLATE_SUFFIX "T"
1889 #define PURE_SUFFIX "U"
1890 #define DYNAMIC_SUFFIX "Y"
1896 #define TELL_SUFFIX "0"
1897 #define SYNCHRO_SUFFIX "1"
1898 #define TIMEON_SUFFIX "2"
1899 #define TIMEOFF_SUFFIX "3"
1900 #define SETBOOL_SUFFIX "4"
1901 #define SETINT_SUFFIX "5"
1902 #define HPFCIO_SUFFIX "6"
1903 #define HOSTSECTION_SUFFIX "7"
1904 #define DEAD_SUFFIX "8"
1905 #define FAKE_SUFFIX "9"
1910 #define FCD_IGNORE_PREFIX "HPFC_IGNORE_FCD_"
1914 #define ASM_FUNCTION_NAME "__asm"
1918 #define is_instruction_block is_instruction_sequence
1919 #define instruction_block_p(i) instruction_sequence_p(i)
1920 #define instruction_block(i) sequence_statements(instruction_sequence(i))
1924 #define make_statement_list( stats... ) \
1925 (gen_make_list(statement_domain, ##stats, 0))
1926 #define make_expression_list( stats... ) \
1927 (gen_make_list(expression_domain, ##stats, 0))
1931 #define unstructured_control unstructured_entry
1935 #define DEFAULT_CHARACTER_TYPE_SIZE (1)
1936 #define DEFAULT_SHORT_INTEGER_TYPE_SIZE (2)
1937 #define DEFAULT_INTEGER_TYPE_SIZE (4)
1938 #define DEFAULT_LONG_INTEGER_TYPE_SIZE (6)
1939 #define DEFAULT_LONG_LONG_INTEGER_TYPE_SIZE (8)
1940 #define DEFAULT_LONG_LONG_LONG_INTEGER_TYPE_SIZE (9)
1944 #define DEFAULT_POINTER_TYPE_SIZE (8)
1945 #define DEFAULT_UNSIGNED_TYPE_SIZE (1)
1946 #define DEFAULT_SIGNED_TYPE_SIZE (2)
1972 #define DEFAULT_REAL_TYPE_SIZE (4)
1973 #define DEFAULT_DOUBLEPRECISION_TYPE_SIZE (8)
1974 #define DEFAULT_QUADPRECISION_TYPE_SIZE (16)
1975 #define DEFAULT_COMPLEX_TYPE_SIZE (8)
1976 #define DEFAULT_DOUBLECOMPLEX_TYPE_SIZE (16)
1977 #define DEFAULT_LONGDOUBLECOMPLEX_TYPE_SIZE (32)
1978 #define DEFAULT_LOGICAL_TYPE_SIZE (4)
1984 #define REGIONS_MODULE_NAME "REGIONS-PACKAGE"
1988 #define IO_EFFECTS_PACKAGE_NAME "__IO_EFFECTS"
1990 #define TIME_EFFECTS_PACKAGE_NAME "__TIME_EFFECTS"
1992 #define RAND_EFFECTS_PACKAGE_NAME "_RANDOM_EFFECTS"
1994 #define RAND_GEN_EFFECTS_NAME "GEN_SEED"
1996 #define MALLOC_EFFECTS_PACKAGE_NAME "_MALLOC_EFFECTS"
1998 #define MALLOC_EFFECTS_NAME "_MALLOC_"
2000 #define MEMMOVE_EFFECTS_PACKAGE_NAME "_MEMMOVE_EFFECTS"
2002 #define MEMMOVE_EFFECTS_NAME "_MEMMOVE_"
2004 #define IO_EFFECTS_ARRAY_NAME "LUNS"
2007 #define IO_EFFECTS_IO_FILE_NAME "IO_FILES"
2009 #define IO_EFFECTS_PTR_NAME "_C_IO_ptr"
2011 #define IO_EOF_ARRAY_NAME "END_LUNS"
2013 #define IO_ERROR_ARRAY_NAME "ERR_LUNS"
2015 #define TIME_EFFECTS_VARIABLE_NAME "KALI"
2016 #define TIME_EFFECTS_BUFFER_NAME "KALI-BUFFER"
2018 #define IO_EFFECTS_UNIT_SPECIFIER_LENGTH 4
2020 #define STDERR_LUN (0)
2021 #define STDERR_NAME "stderr"
2022 #define ENTITY_STDERR_P(e) entity_a_special_entity_p(e, STDERR_NAME)
2023 #define STDIN_LUN (5)
2024 #define STDIN_NAME "stdin"
2025 #define ENTITY_STDIN_P(e) entity_a_special_entity_p(e, STDIN_NAME)
2026 #define STDOUT_LUN (6)
2027 #define STDOUT_NAME "stdout"
2028 #define ENTITY_STDOUT_P(e) entity_a_special_entity_p(e, STDOUT_NAME)
2031 #if !defined(HAVE_UNISTD_H) && !defined(_UNISTD_H)
2032 #define STDIN_FILENO (0)
2033 #define STDOUT_FILENO (1)
2034 #define STDERR_FILENO (2)
2039 #define IMPLICIT_VARIABLE_NAME_1 "__FUNCTION__"
2040 #define IMPLICIT_VARIABLE_NAME_2 "__func__"
2046 #define empty_comments string_undefined
2049 #define make_empty_statement make_empty_block_statement
2052 #define make_nop_statement make_empty_block_statement
2079 #define CONTROL_MAP( ctl, code, c, list ) \
2081 GENERIC_CONTROL_MAP( control_map_get_blocs, ctl, code, c, list ) \
2110 #define UNSTRUCTURED_CONTROL_MAP(c, u, l, code) \
2115 control_map_get_blocs(unstructured_entry(u), &l); \
2118 control_map_get_blocs(unstructured_exit(u), &l); \
2121 l = gen_nreverse(l); \
2123 FOREACH(CONTROL, c, l) \
2150 #define FORWARD_CONTROL_MAP( ctl, code, c, list ) \
2152 GENERIC_CONTROL_MAP( forward_control_map_get_blocs, ctl, code, c, list ) \
2178 #define BACKWARD_CONTROL_MAP( ctl, code, c, list ) \
2180 GENERIC_CONTROL_MAP( backward_control_map_get_blocs, ctl, code, c, list ) \
2205 #define WIDE_FORWARD_CONTROL_MAP( ctl, code, c, list ) \
2207 GENERIC_CONTROL_MAP(wide_forward_control_map_get_blocs, \
2208 ctl, code, c, list ) \
2213 #define GENERIC_CONTROL_MAP( get_controls, ctl, code, c, list ) \
2215 cons *_cm_list_init = (list) ; \
2216 cons *_cm_list = _cm_list_init ; \
2217 if( _cm_list == NIL ) {\
2218 get_controls( c, &_cm_list ) ; \
2219 _cm_list = gen_nreverse( _cm_list ) ; \
2221 MAPL( _cm_ctls, {control ctl = CONTROL( CAR( _cm_ctls )) ; \
2225 if( _cm_list_init == NIL ) \
2253 #define PIPS_PHASE_PRELUDE(module_name, debug_env_var) \
2257 set_current_module_statement((statement) \
2258 db_get_memory_resource(DBR_CODE, \
2264 set_current_module_entity(module_name_to_entity(module_name)); \
2267 debug_on(debug_env_var); \
2268 pips_debug(1, "Entering...\n"); \
2269 pips_assert("Statement should be OK at entry...", \
2270 statement_consistent_p(get_current_module_statement()))
2279 #define PIPS_PHASE_POSTLUDE(new_module_statement) \
2280 pips_assert("Statement should be OK at exit...", \
2281 statement_consistent_p(new_module_statement)); \
2282 pips_debug(1, "done\n"); \
2287 module_reorder(new_module_statement); \
2290 DB_PUT_MEMORY_RESOURCE(DBR_CODE, \
2291 get_current_module_name(), \
2292 new_module_statement); \
2295 reset_current_module_statement(); \
2296 reset_current_module_entity(); \
2305 #define INSTANCE_OF(type,value) ( (_int)((value)->u) == (_int)(type##_domain) )
2307 #define binary_call_lhs(c) (EXPRESSION(CAR(call_arguments((c)))))
2308 #define binary_call_rhs(c) (EXPRESSION(CAR(CDR(call_arguments((c))))))
2309 #define expression_scalar_p(e) (expression_reference_p((e)) && reference_scalar_p(expression_reference((e))))
2310 #define hash_contains_p(htp, key) (hash_get(htp, key) != HASH_UNDEFINED_VALUE)
2316 #define range_to_distance_p(e) ((e) == range_to_distance)
2317 #define range_to_nbiter_p(e) ((e) == range_to_nbiter)
2320 #define GENERATED_LABEL_MODULE_NAME "__GENSYM"
2349 #define make_entity(n,t,s,i) make_entity(n,t,s,i,DEFAULT_ENTITY_KIND)
2352 #define SEND_FUNCTION_NAME "send"
2353 #define RECV_FUNCTION_NAME "recv"
2354 #define SIGNAL_FUNCTION_NAME "signal"
2355 #define WAIT_FUNCTION_NAME "wait"
2359 #define MPI_INIT_FUNCTION_NAME "MPI_Init"
2360 #define MPI_FINALIZE_FUNCTION_NAME "MPI_Finalize"
2361 #define MPI_ISEND_FUNCTION_NAME "MPI_Isend"
2362 #define MPI_RECV_FUNCTION_NAME "MPI_Recv"
2363 #define MPI_BARRIER_FUNCTION_NAME "MPI_Barrier"
2365 #define MPI_COMM_SIZE_FUNCTION_NAME "MPI_Comm_size"
2366 #define MPI_COMM_RANK_FUNCTION_NAME "MPI_Comm_rank"
2367 #define MPI_SEND_FUNCTION_NAME "MPI_Send"
2368 #define MPI_SSEND_FUNCTION_NAME "MPI_Ssend"
2369 #define MPI_RSEND_FUNCTION_NAME "MPI_Rsend"
2370 #define MPI_BSEND_FUNCTION_NAME "MPI_Bsend"
2371 #define MPI_ISEND_FUNCTION_NAME "MPI_Isend"
2372 #define MPI_ISSEND_FUNCTION_NAME "MPI_Issend"
2373 #define MPI_IRSEND_FUNCTION_NAME "MPI_Irsend"
2374 #define MPI_IBSEND_FUNCTION_NAME "MPI_Ibsend"
2375 #define MPI_RECV_FUNCTION_NAME "MPI_Recv"
2376 #define MPI_IRECV_FUNCTION_NAME "MPI_Irecv"
2379 #define MPI_SENDRECV_FUNCTION_NAME "MPI_Sendrecv"
2383 #define MPI_STATUS "MPI_Status"
2384 #define MPI_REQUEST "MPI_Request"
2385 #define MPI_COMM "MPI_Comm"
2386 #define MPI_DATATYPE "MPI_Datatype"
2389 #define ENTITY_SEND_P(e) ENTITY_NAME_P(e, "send")
2409 extern int ipow(
int ,
int );
void const char const char const int
statement make_statement_from_statement_list_or_empty_block(list)
Build a statement sequence from a statement list.
statement make_block_statement(list)
Make a block statement from a list of statement.
statement make_statement_from_statement_list(list)
Build a statement sequence from a statement list.
statement instruction_to_statement(instruction)
Build a statement from a give instruction.
statement make_statement_from_statement_varargs_list(statement,...)
Build a statement sequence from a statement NULL-terminated varargs list.
void copy_statement_attributes(statement, statement)
Copy all the attributes from one statement to another one.
statement make_empty_statement_with_declarations_and_comments(list, string, string)
Build an empty statement with declaration list, declaration text and comment.
statement make_empty_block_statement(void)
Build an empty statement (block/sequence)
void move_statement_attributes(statement, statement)
Move all the attributes from one statement to another one.
statement make_block_with_stmt_if_not_already(statement)
Build a statement block from a statement if not already a statement block.
void remove_some_unreachable_controls_of_an_unstructured(unstructured)
Remove all the control sequences that are unreachable and that begin with a node without any predeces...
void insert_control_in_arc(control, control, control)
Insert a control node between 2 connected control nodes.
void unlink_2_control_nodes(control, control)
Remove all edged between 2 control nodes.
void remove_all_unreachable_controls_of_an_unstructured(unstructured)
Remove all control nodes that are not forward reachable from the entry node.
void display_linked_control_nodes(control)
Display all the control nodes reached or reachable from c for debugging purpose.
void transfer_control_successor(control, control, control)
Transfer a control node as a successor of one node to another one.
void display_address_of_control_nodes(list)
Display the adresses a list of control nodes.
void remove_a_control_from_a_list_and_relink(control, list, list, remove_a_control_from_a_list_and_relink_direction)
Replace each occurence of c in a_source_control_list_of_c with a a_dest_control_list_of_c:
void remove_unreachable_following_control(control, control, control)
Remove all the control nodes (with their statements) from c in the successor tree of c up to the node...
void link_3_control_nodes(control, control, control)
Add an edge between 2 control nodes.
void link_2_control_nodes(control, control)
Add an edge between 2 control nodes.
void print_control_node(control)
void remove_a_control_from_an_unstructured_without_relinking(control)
It removes a control node from its successor and predecessor.
void transfer_control_predecessor(control, control, control)
Transfer a control node as a predecessor from one node to another one.
void discard_an_unstructured_without_its_statements(unstructured)
Used to discard an unstructured without touching its statements.
void replace_control_related_to_a_list(control, control, list)
Replace all the references to a control node by a new one in the successors & predecessors of a list ...
bool is_control_in_list_p(control, list)
Test if a control node is in a list of control nodes.
void free_a_control_without_its_statement(control)
Remove a control node without touching its statement, its predecessors and successors,...
void remove_a_control_from_an_unstructured(control)
Remove a control node from a control graph.
void control_list_patch(list, control, control)
Replace in a list of control nodes all the instance of a control node by another one.
void discard_a_control_sequence_without_its_statements(control, control)
Remove a control sequence without touching its statements.
void print_control_nodes(list)
Display identification of a list of control nodes.
void fuse_2_control_nodes(control, control)
Fuse a 2 control nodes.
void check_control_coherency(control)
Test the coherency of a control node network from a control node.
list generate_a_statement_list_from_a_control_sequence(control, control)
Take a control sequence and return a list of all the statements in the sequence (in the same order....
int occurences_in_control_list(control, list)
Count the number of occurences of a control node in a list of control nodes.
void backward_control_map_get_blocs_but(control, control, list *)
Transitive closure of c's predecessors, but for control f.
void control_map_get_blocs(control, list *)
Build recursively the list of all controls reachable from a control of an unstructured.
void forward_control_map_get_blocs_but(control, control, list *)
Transitive closure of c's successors, but for control f.
void find_a_control_path(control, control, list *, list *, int)
Build recursively a control path from b to e.
void set_current_module_declarations(list)
list get_current_module_declarations(void)
void reset_current_module_entity(void)
Reset the current module entity.
void reset_current_module_statement(void)
Reset the current module statement.
const char * get_current_module_name(void)
Get the name of the current module.
statement set_current_module_statement(statement)
Set the current module statement.
void push_current_module_statement(statement)
Set the statement of the current module and push the statement of the previous one on a stack.
statement get_current_module_statement(void)
Get the current module statement.
void reset_current_module_declarations(void)
entity set_current_module_entity(entity)
static.c
entity get_current_module_entity(void)
Get the entity of the current module.
void pop_current_module_statement(void)
Pop the current module statement stack and use it as the current module statement.
void replace_entity_by_expression_with_filter(void *, entity, expression, bool(*)(expression))
void replace_entities(void *, hash_table)
replace.c
void replace_reference(void *, reference, entity)
Replace an old reference by a reference to a new entity in a statement.
void replace_entity(void *, entity, entity)
per variable version of replace_entities.
void replace_entity_by_expression(void *, entity, expression)
replace all reference to entity ent by expression exp in s.
void replace_entities_by_expression(void *, hash_table)
instruction make_instruction_block(list)
Build an instruction block from a list of statements.
instruction make_continue_instruction(void)
Creates a CONTINUE instruction, that is the FORTRAN nop, the ";" in C or the "pass" in Python for exa...
instruction make_assign_instruction(expression, expression)
instruction make_call_instruction(entity, list)
instruction.c
instruction MakeUnaryCallInst(entity, expression)
Creates a call instruction to a function with one argument.
instruction MakeNullaryCallInst(entity)
Creates a call instruction to a function with no argument.
bool instruction_assign_p(instruction)
Test if an instruction is an assignment.
bool instruction_stop_p(instruction)
Test if an instruction is a Fortran STOP.
bool assignment_block_p(instruction)
Checks if an instruction block is a list of assignments, possibly followed by a continue.
bool exit_instruction_p(instruction)
bool abort_instruction_p(instruction)
bool instruction_format_p(instruction)
Test if an instruction is a Fortran FORMAT.
bool native_instruction_p(instruction, string)
Test if an instruction is a native instruction of the language.
bool instruction_continue_p(instruction)
Test if an instruction is a CONTINUE, that is the FORTRAN nop, the ";" in C or the "pass" in Python....
bool return_instruction_p(instruction)
Test if an instruction is a C or Fortran "return".
bool C_return_instruction_p(instruction)
bool native_call_p(call, string)
Test if a call is a native instruction of the language.
bool fortran_return_instruction_p(instruction)
set distributable_loop(statement)
this functions checks if Kennedy's algorithm can be applied on the loop passed as argument.
void print_number_of_loop_statistics(FILE *, string, statement)
Compute the number of parallel and sequential loops found in a statement and output them on a stream ...
set region_of_loop(statement)
this function returns the set of all statements belonging to the given loop even if the loop contains...
bool range_contains_at_least_one_point_p(range)
bool loop_sequential_p(loop)
Test if a loop is sequential.
bool loop_parallel_p(loop)
Test if a loop is parallel.
bool loop_executed_never_p(loop)
Check if loop bound are constant and then if upper < lower.
bool parallel_loop_statement_p(statement)
Test if a statement is a parallel loop.
bool constant_step_loop_p(loop)
Test if a loop has a constant step loop.
bool normal_loop_p(loop)
Test if a loop does have a 1-increment step.
entity perfectly_nested_loop_index_at_depth(statement, int)
Get the index of the loop at a given depth inside a loop-nest.
bool loop_executed_at_least_once_p(loop)
Check if loop bound are constant and then if upper >= lower.
statement make_new_loop_statement(entity, expression, expression, expression, statement, execution)
This is an ad'hoc function designed for do_loop_unroll_with_epilogue().
int loop_increment_value(loop)
statement perfectly_nested_loop_to_body(statement)
Extract the body of a perfectly nested loop body.
bool index_private_p(loop)
returns true if loop lo's index is private for this loop
void clean_enclosing_loops(void)
int depth_of_perfect_loop_nest(statement)
Compute the depth of a perfect loop-nest.
statement perfectly_nested_loop_to_body_at_depth(statement, int)
Extract the loop-body of a perfect loop-nest at a given depth.
list copy_loops(list)
Duplicate a loop list.
void region_of_statement(statement, set)
Should be rewritten with a gen_recurse to deal with the recent RI...
list loop_private_variables_as_entites(loop, bool, bool)
Get the variables local or private to a loop.
void sort_all_loop_locals(statement)
bool range_contains_nothing_p(range)
list statement_to_loop_statement_list(statement)
If statement s is a perfectly loop nest, return the corresponding loop list.
void print_parallelization_statistics(const char *, const char *, statement)
Print out the number of sequential versus parallel loops.
void number_of_sequential_and_parallel_loops(statement, int *, int *)
Compute the number of parallel and sequential loops found in a statement and update given variables.
bool index_of_a_loop_p(Variable, list)
Check if variable v is an index for an enclosing loop.
statement get_first_inner_perfectly_nested_loop(statement)
Return the inner loop in a perfect loop-nest.
statement_mapping loops_mapping_of_statement(statement)
bool perfectly_nested_loop_p(statement)
Test if a statement is a perfect loop-nest.
int depth_of_parallel_perfect_loop_nest(statement)
Compute the depth of a parallel perfect loop-nest.
expression statement_expression(statement)
Get the expression of a statement.
sequence statement_sequence(statement)
Get the sequence of a statement sequence.
multitest statement_multitest(statement)
Get the multitest of a statement.
statement effective_test_true(test)
returns the effective true branch of a test by skipping a possible sequence of one element.
list statement_block(statement)
Get the list of block statements of a statement sequence.
loop statement_loop(statement)
Get the loop of a statement.
test statement_test(statement)
Get the test of a statement.
call statement_call(statement)
Get the call of a statement.
whileloop statement_whileloop(statement)
Get the whileloop of a statement.
statement statement_goto(statement)
Get the goto of a statement.
forloop statement_forloop(statement)
Get the forloop of a statement.
unstructured statement_unstructured(statement)
Get the unstructured of a statement.
bool empty_statement_or_labelless_continue_p(statement)
Return true if the statement is an empty instruction block without label or a continue without label ...
bool statement_expression_p(statement)
bool unlabelled_statement_p(statement)
bool statement_goto_p(statement)
bool statement_multitest_p(statement)
bool statement_whileloop_p(statement)
bool statement_test_p(statement)
bool statement_call_p(statement)
bool statement_forloop_p(statement)
bool nop_statement_p(statement)
bool empty_statement_or_continue_p(statement)
Return true if the statement is an empty instruction block or a continue or a recursive combination o...
bool check_io_statement_p(statement)
bool empty_statement_p(statement)
Test if a statement is empty.
bool statement_loop_p(statement)
bool empty_statement_or_continue_without_comment_p(statement)
Return true if the statement is an empty instruction block or a continue without comments or without ...
bool statement_sequence_p(statement)
Statement classes induced from instruction type.
bool statement_unstructured_p(statement)
list gather_and_remove_all_format_statements(statement)
Used to keep aside the FORMAT before many code transformation that could remove them either.
statement apply_number_to_statement(hash_table, _int)
bool format_statement_p(statement)
Test if a statement is a Fortran FORMAT.
hash_table allocate_number_to_statement(void)
statement make_any_print_statement(string)
Generate a print of a constant character string on stderr for C or on stdout for Fortran.
list statement_to_implicit_target_labels(statement)
Look for labels appearing in END= or ERR= IO clauses and allocate a label list.
statement make_assign_statement(expression, expression)
statement add_initialization_information_to_declaration_statement(statement, list)
The initialization expression list is integrated into the internal representation as an argument list...
int count_references_to_variable(statement, entity)
entity statement_to_label(statement)
See if statement s is labelled and can be reached by a GO TO.
bool comments_equal_p(string, string)
statement add_declaration_statement_at_beginning(statement, entity)
void append_statement_to_block_statement(statement, statement)
list statement_to_referenced_entities(statement)
Get a list of all variables referenced recursively within a statement:
void insert_comments_to_statement(statement, const char *)
Insert a comment string (if non empty) at the beginning of the comments of a statement.
bool statement_contains_user_call_p(statement)
statement update_statement_instruction(statement, instruction)
Replace the instruction in statement s by instruction i.
void put_a_comment_on_a_statement(statement, string)
Similar to try_to_put_a_comment_on_a_statement() but insert a CONTINUE to put the comment on it if th...
int count_references_to_variable_element(statement, entity)
char ** find_first_statement_comment(statement)
Find the first non-empty comment of a statement, if any returns a pointer to the comment if found,...
int count_static_references_to_variable(statement, entity)
statement make_print_statement(string)
Make a Fortran print statement.
statement make_whileloop_statement(expression, statement, int, bool)
Build a while loop statement.
void put_formats_at_module_beginning(statement)
Transfer all the FORMATs at the very beginning of a module:
statement makeloopbody(loop, statement, bool)
statement makeloopbody(l, s_old) make a statement for a loop body, using the fields of a previously e...
bool statement_substatement_walker(statement, statement)
void fix_block_statement_declarations(statement)
s is assumed to be a block statement and its declarations field is assumed to be correct,...
statement make_loop_statement(entity, expression, expression, expression, statement)
Build a loop statement.
bool all_statements_defined_p(statement)
bool unstructured_does_return(unstructured)
void append_comments_to_statement(statement, string)
Append a comment string (if non empty) to the comments of a statement, if the c.
bool try_to_put_a_comment_on_a_statement(statement, string)
Put a comment on a statement in a safe way.
statement make_expression_statement(expression)
Build a statement from a given expression.
string statement_identification(statement)
Like external_statement_identification(), but with internal information, the hexadecimal address of t...
statement make_stop_statement(string)
This function returns a Fortran stop statement with an error message.
statement remove_declaration_statement(statement, entity)
Declarations are not only lists of entities, but also statement to carry the line number,...
list statements_to_declarations(list)
Returns the declarations contained in a list of statement.
bool declaration_statements_p(list)
Check that all statements contained in statement list sl are declaration statements.
bool return_statement_p(statement)
Test if a statement is a C or Fortran "return".
bool statement_may_have_control_effects_p(statement)
void put_formats_at_module_end(statement)
Transfer all the FORMATs at the very end of a module:
bool exit_statement_p(statement)
list statement_to_called_user_entities(statement)
Get a list of all user function called recursively within a statement:
int statement_to_comment_length(statement)
Number of comment line directly attached to a statement.
string decls_text_dup(string)
Duplicate statement decls_text.
list statement_to_declarations(void *)
Get a list of all variables declared recursively within a statement.
string generated_variable_comment(entity)
list statement_to_labels(statement)
Look for non-empty labels appearing directly or indirectly and allocate a label list.
list find_statements_with_pragma(statement, const char *)
Get a list of statements with pragma begining with a prefix.
statement make_declaration_statement(entity, int, string)
Make one declaration statement.
statement make_call_statement(string, list, entity, string)
This function is limited to intrinsics calls...
list instruction_to_declarations(instruction)
Get a list of all variables declared recursively within an instruction.
bool statement_with_pragma_p(statement)
Test if a statement has some pragma.
bool write_statement_p(statement)
bool figure_out_if_it_is_a_format(instruction, bool *)
void pop_generated_variable_commenter(void)
reference find_reference_to_variable(statement, entity)
bool stop_statement_p(statement)
Test if a statement is a Fortran STOP.
void add_one_line_of_comment(statement, string,...)
string external_statement_identification(statement)
Does work neither with undefined statements nor with defined statements with undefined instructions.
statement add_comment_and_line_number(statement, string, int)
Since block cannot carry comments nor line numbers, they must be moved to an internal continue statem...
bool fortran_return_statement_p(statement)
Test if a statement is a Fortran "return".
list statement_to_direct_declarations(statement)
Returns the declarations contained directly in a statement s.
statement make_C_print_statement(string)
bool continue_statement_p(statement)
Test if a statement is a CONTINUE, that is the FORTRAN nop, the ";" in C or the "pass" in Python....
statement find_statement_from_label(statement, entity)
find a statement in s with entity label
statement make_declarations_statement(list, int, string)
Make a declaration(s) statement.
void insert_statement(statement, statement, bool)
This is the normal entry point.
bool empty_code_list_p(list)
persistant_statement_to_int statement_to_line_number(statement)
string safe_statement_identification(statement)
statement make_return_statement(entity)
bool empty_code_p(statement)
statement.c
hash_table build_number_to_statement(hash_table, statement)
bool assignment_statement_p(statement)
Test if a statement is an assignment.
void insert_statement_no_matter_what(statement, statement, bool)
Break the IR consistency or, at the very least, do not insert new declarations at the usual place,...
list statement_pragmas(statement)
get the list of pragma of a statement s
instruction make_simple_Fortran_io_instruction(bool, expression, list)
Derived from the Fortran parser code.
statement add_declaration_statement_here(statement, statement, entity, bool)
Add a new declaration statement (inspired by generic_add_declaration_statement)
statement make_exit_statement(int, string)
This function returns a statement ending with a C exit statement.
string comments_dup(string)
functions to generate statements
bool statement_possible_less_p(statement, statement)
bool statement_less_p(statement, statement)
statement make_continue_statement(entity)
bool forloop_statement_p(statement)
string gather_all_comments_of_a_statement(statement)
Gather all the comments recursively found in the given statement and return them in a strduped string...
extension get_extension_from_statement_with_pragma(statement, const char *)
Get the extension of a statement with pragma beginning with a prefix.
bool C_return_statement_p(statement)
Test if a statement is a C "return".
void fix_statement_attributes_if_sequence(statement)
Apply fix_sequence_statement_attributes() on the statement only if it really a sequence.
list statements_to_direct_declarations(list)
Returns the declarations contained directly in the declaration statements of a list of statements.
list declaration_statement_to_initializations(statement)
bool statement_replace_in_root_statement(statement, statement, statement)
replace old_stat by new_stat in root_stat this pass does not free old_stat similar to replace_in_sequ...
int get_statement_depth(statement, statement)
computes the block-depth of a statement NOT INTENDED to generate entity name declared at particular b...
statement add_declaration_statement(statement, entity)
bool assignment_block_or_statement_p(statement)
bool statement_in_statement_p(statement, statement)
statement clear_labels(statement)
Get rid of all labels in controlized code before duplication.
bool empty_comments_p(const char *)
bool statement_with_empty_comment_p(statement)
Return true if the statement has an empty statement:
void clear_label(statement)
statement normalize_statement(statement)
Make (a bit more) sure that s is gen_defined_p in spite of poor decision for empty fields and that st...
statement find_statement_from_label_name(statement, const char *, const char *)
statement make_test_statement(expression, statement, statement)
bool abort_statement_p(statement)
void gather_and_remove_all_format_statements_rewrite(statement, list *)
statement make_plain_continue_statement(void)
Make a simple continue statement to be used as a NOP or ";" in C.
bool statement_may_contain_exiting_intrinsic_call_p(statement)
void push_generated_variable_commenter(string(*)(entity))
statement add_label_to_statement(entity, statement, statement *)
Add a label to a statement.
statement st_make_nice_test(expression, list, list)
bool continue_statements_p(list)
Check that all statements contained in statement list sl are a continue statements.
bool format_inside_statement_p(statement)
statement make_forloop_statement(expression, expression, expression, statement)
void statement_replace_with_statement_list(statement, statement, list)
Assume that statement rs appears in statement as and replaced it by a statement list.
bool statement_substatement_p(statement, statement)
search a statement inside a statement
bool statement_does_return(statement)
Returns false is no syntactic control path exits s (i.e.
void fix_sequence_statement_attributes(statement)
Since blocks are not represented in Fortran, they cannot carry a label.
bool statement_in_statements_p(statement, list)
bool declaration_statement_p(statement)
Had to be optimized according to Beatrice Creusillet.
void statement_remove_extensions(statement)
That's all folks.
bool belong_to_statement(statement, statement, bool)
return true if s is enclosed in stmt NL: What is the difference with statement_in_statement_p?
entity find_final_statement_label(statement)
Find the label associated with the last statement executed within s.
string comment_sentinel(tag)
Start a single line comment.
void statement_remove_useless_label(statement, bool *)
remove the label of a statement if the statement is not unstructured.
int bool
we cannot use an enum or stdbool because we need to be compatible with newgen, thus boolean need to h...
int f(int off1, int off2, int n, float r[n], float a[n], float b[n])
remove_a_control_from_a_list_and_relink_direction
For the control graph modifiers:
entity find_enum_of_member(entity)
void update_expression_syntax(expression, syntax)
frees expression syntax of e and replace it by the new syntax s
bool typedef_entity_p(entity)
int storage_space_of_variable(entity)
expression substitute_entity_in_expression(entity, entity, expression)
This function replaces all the occurences of an old entity in the expression exp by the new entity.
bool formal_label_replacement_p(entity)
int IsBinaryOperator(entity)
FI: These string constants are defined in ri-util.h and the tokens in ri-util/operator....
expression make_vecteur_expression(Pvecteur)
make expression for vector (Pvecteur)
bool clean_up_sequences(statement)
Recursively clean up the statement sequences by fusing them if possible and by removing useless one.
bool commutative_call_p(call)
Test if we are allowed to commute operations.
dimension entity_ith_dimension(entity, int)
Another semantics would be: is this reference r to e a kill for e? In general, this cannot be answere...
bool array_reference_p(reference)
predicates on references
bool char_star_constant_function_type_p(type)
Beware of typedefs.
bool expression_address_of_p(expression)
entity basic_to_generic_conversion(basic)
returns the corresponding generic conversion entity, if any.
bool rand_effects_entity_p(entity)
expression int_to_expression(_int)
transform an int into an expression and generate the corresponding entity if necessary; it is not cle...
bool expression_is_C_rhs_p(expression)
Not all expressions can be used as right-hand side (rhs) in C assignments.
bool const_variable_p(entity)
expression add_integer_to_expression(expression, int)
entity make_stderr_variable(void)
If the parser has not (yet) encountered "stderr", a PIPS transformation or instrumentation phase may ...
string string_fuse_final_linefeeds(string)
Get rid of extra linefeed/newline at the end of a string.
basic simple_basic_dup(basic)
string empty_scope(void)
Functions used to manage the block scoping in conjunction with ContextStack and yco ntext.
void reset_static_entities(void)
bool expression_constant_p(expression)
================================================================
basic basic_of_expression(expression)
basic basic_of_expression(expression exp): Makes a basic of the same basic as the expression "exp".
bool fortran_language_module_p(entity)
expression make_assign_expression(expression, expression)
Make an assign expression, since in C the assignment is a side effect operator.
bool true_expression_p(expression)
parameter MakeDoubleprecisionParameter(void)
expression pragma_private_as_expr(list)
bool reference_with_constant_indices_p(reference)
void fprint_environment(FILE *, entity)
entity MakeConstant(string, tag)
Make a Fortran constant.
dimension find_ith_dimension(list, int)
This function returns the ith dimension of a list of dimensions.
bool expression_list_directed_p(expression)
set get_referenced_entities(void *)
retrieves the set of entities used in elem beware that this entities may be formal parameters,...
list load_statement_enclosing_loops(statement)
bool variable_length_array_type_p(type)
Is this equivalent to dependent_type_p()?
normalized NormalizeCall(call)
bool call_compatible_type_p(type)
end of basic_concrete_types
type make_standard_long_integer_type(type)
type MakeLongLongIntegerResult(void)
MB.
bool expression_subscript_p(expression)
void remove_variable_entity(entity)
Value ValueNumberOfElements(list)
expression expression_mult(expression)
list functional_type_supporting_entities(list, functional)
expression make_unbounded_expression(void)
expression MakeCharacterConstantExpression(string)
END_EOLE.
entity entity_to_module_entity(entity)
Find the enclosing module of an entity.
bool SizeOfArray(entity, int *)
This function computes the total size of a variable in bytes, ie.
entity get_allocatable_data_entity(entity)
Get the entity inside the struct corresponding to the array, mostly for correct prettyprint.
void print_ordering_to_statement(void)
Dump the ordering with the corresponding statement address.
void free_arguments(cons *)
bool cabs_expression_p(expression)
bool min0_expression_p(expression)
entity module_to_heap_area(entity)
Returns the heap area "a" associated to module "f".
bool default_complex_type_p(type)
bool logical_constant_p(entity)
bool intrinsic_entity_p(entity)
list generic_symbolic_supporting_entities(list, set, symbolic, bool)
void reset_std_static_entities(void)
void GenericCleanLocalEntities(entity, bool)
bool expression_brace_p(expression)
predicates and short cut accessors on expressions
void reset_unstructured_number(void)
reorder.c
type array_type_to_pointer_type(type)
Allocate a new type that is the type of an array constant.
basic MakeBasic(int)
END_EOLE.
bool qualifiers_restrict_p(list)
Check that a qualifier list contains the restrict qualifier.
bool dependent_type_p(type)
A type is dependent in many ways according to definitions given in Wikipedia.
bool fixed_length_array_type_p(type)
entity make_empty_program(const char *, language)
entity any_function_to_return_value(entity)
Same as function_to_return_value(), but returns value_undefined when m is a C void function or a Fort...
bool explicit_extern_entity_p(entity, entity)
bool reference_scalar_p(reference)
This function returns true if Reference r is scalar.
entity CreateEntity(const char *, const char *)
BEGIN_EOLE.
void reference_complete_with_zero_subscripts(reference)
Reference r to an array maybe partial, as is possible in C: with declaration "int a[10][10]",...
void set_keyword_typedef_table(hash_table)
void print_type(type)
For debugging.
entity get_stdin_entity(void)
bool stderr_entity_p(entity)
bool expression_pointer_p(expression)
we get the type of the expression by calling expression_to_type() which allocates a new one.
expression make_op_exp(char *, expression, expression)
================================================================
basic basic_of_intrinsic(call, bool, bool)
basic basic_of_intrinsic(call c): returns the basic of the result given by call to an intrinsic funct...
string module_predicat_fortranfilename(entity)
bool reference_with_unbounded_indices_p(reference)
indices can be constant or unbounded: they are store independent.
bool arguments_set_equal_p(list, list)
Set equality of lists a1 and a2.
bool sub_expression_p(expression)
list constant_expression_supporting_references(list, expression)
Only applicable to C expressions.
bool entity_local_variable_p(entity, entity)
Check if a variable "var" is local to a module "module".
bool call_constant_p(call)
bool call_constant_p(call c): Returns true if "c" is a call to a constant, that is,...
type MakeDoublecomplexResult(void)
void error_reset_current_module_statement(void)
To be called by an error management routine only.
bool expression_similar_p(expression, expression)
compare if two expressions are similar that is can we exchange target and pattern by substituing vari...
entity entity_field_to_entity_struct(entity)
expression SizeOfDimensions(list)
computes the product of all dimensions in dims
int effect_basic_depth(basic)
bool expression_implied_do_p(expression)
void CleanLocalEntities(entity)
Fortran version.
dimension FindIthDimension(entity, int)
basic constant_basic(entity)
bool references_do_not_conflict_p(reference, reference)
If true is returned, the two references cannot conflict unless array bound declarations are violated.
bool reference_equal_p(reference, reference)
bool qualifiers_equal_p(list, list)
bool entity_array_p(entity)
Is e a variable with an array type?
bool formal_context_variable_p(entity)
Such pseudo-variables are generated by the points-to analysis.
bool NumberOfElements(basic, list, int *)
type make_scalar_char_pointer_type(void)
Allocate a char * pointer type.
entity make_entity_copy(entity)
Create a copy of an entity, with (almost) identical type, storage and initial value if move_initializ...
list type_supporting_types(type)
Return the list of types used to define type t.
bool integer_constant_p(entity, int *)
Returns the double value associated to a PIPS constant.
bool logical_operator_expression_p(expression)
C xor is missing.
bool stack_area_p(entity)
bool string_block_scope_p(string)
type MakeLongIntegerResult(void)
MB.
cons * arguments_union(cons *, cons *)
cons * arguments_union(cons * a1, cons * a2): returns a = union(a1, a2) where a1 and a2 are lists of ...
entity make_new_entity(basic, int)
type array_type_to_sub_array_type(type)
Allocate a new type, the sub-array type of "t".
bool stdin_entity_p(entity)
Pvecteur vect_product(Pvecteur *, Pvecteur *)
returns a Pvecteur equal to (*pv1) * (*pv2) if this product is linear or NULL otherwise.
entity int_to_entity(_int)
type MakeLongDoublecomplexResult(void)
MB.
Ppolynome expression_to_polynome(expression)
===========================================================================
bool entity_static_variable_p(entity)
return true if the entity is declared with the keyword static
int effect_type_depth(type)
Number of steps to access the lowest leave of type t.
bool expression_equal_in_list_p(expression, list)
This function returns true, if there exists an expression equal in the list false,...
list concat_new_entities(list, list)
returns l1 after elements of l2 but not of l1 have been appended to l1.
void backward_control_map_get_blocs(control, cons **)
bool entity_unbounded_p(entity)
bool entity_unbounded_p(entity e) input : an array entity output : true if the last dimension of the ...
bool variable_is_a_module_formal_parameter_p(entity, entity)
entity make_new_label(entity)
This function returns a new label.
bool ultimate_type_equal_p(type, type)
parameter MakeAnyScalarParameter(tag, _int)
For Fortran.
bool expression_opposite_p(expression, expression)
e1+e2==0, i.e.
int IsNaryOperator(entity)
bool unary_minus_expression_p(expression)
list base_to_entities(Pvecteur)
generate a Newgen list with all entities refered in vector b
bool same_entity_p(entity, entity)
predicates on entities
expression entity_ith_bounds(entity, int)
FIND_MODULE returns entity.
entity global_name_to_entity(const char *)
Find an entity, if it exists, from its global name, a.k.a.
bool expression_reference_p(expression)
Test if an expression is a reference.
entity get_stderr_entity(void)
list subscript_expressions_to_constant_subscript_expressions(list)
make a full copy of the subscript expression list, preserve constant subscripts, replace non-constant...
list struct_initialization_expression_to_expressions(expression)
Returns a list of expressions hidden by the brace function.
const string FORTRAN_PRAGMA_HEADER
pragma.c
int ExpressionToInt(expression)
this function computes the value of an integer constant expression and returns it to the calling func...
type MakeUnsignedIntegerResult(void)
void CCleanLocalEntities(entity)
C language version.
bool variable_equal_p(variable, variable)
bool entity_enum_p(entity)
normalized NormalizeSyntax(syntax)
int current_offset_of_area(entity, entity)
entity FindOrCreateEntityLikeModel(const char *, const char *, entity)
hmmm...
string storage_to_string(storage)
type make_standard_integer_type(type, int)
value EvalNaryOp(int, list)
bool static_module_p(entity)
Check if the given module entity is a static module.
expression expression_list_to_binary_operator_call(list, entity)
list recursive_functional_type_supporting_entities(list, set, functional)
bool fcd_directive_p(entity)
bool range_count(range, intptr_t *)
The range count only can be evaluated if the three range expressions are constant and if the incremen...
type call_compatible_type(type)
returns the type necessary to generate or check a call to an object of type t.
void AddLocalEntityToDeclarationsOnly(entity, entity, statement)
Add the variable entity e to the list of variables of the function module.
expression make_true_expression(void)
bool expression_sizeofexpression_p(expression)
string string_strip_final_linefeeds(string)
Get rid of linefeed/newline at the end of a string.
bool clean_up_sequences_internal(statement)
An entry point for internal usage, such as from take_out_the_exit_node_if_not_a_continue():
hash_table statement_to_goto_table
clean_up_sequences.c
int basic_type_size(basic)
See also SizeOfElements()
basic basic_of_external(call)
basic basic_of_external(call c): returns the basic of the result given by the call to an external fun...
range expression_range(expression)
void free_keyword_typedef_table(void)
char vcid_ri_util_control[]
control.c
bool type_void_star_p(type)
bool entity_equivalence_p(entity)
checks if an entity is an equivalent
const char * entity_name_or_TCST(entity)
Return a name valid for sorting variables in vectors and constraint systems.
bool expression_with_constant_signed_integer_value_p(expression)
The expression may be complicated but all its leaves are constants or parameters.
value EvalConditionalOp(list)
bool entity_enum_variable_p(entity)
value MakeValueSymbolic(expression)
this function creates a value for a symbolic constant.
expression Value_to_expression(Value)
added interface for linear stuff.
type make_scalar_complex_type(_int)
void AddLocalEntityToDeclarations(entity, entity, statement)
Add the variable entity e to the list of variables of the function module.
reference reference_with_store_independent_indices(reference)
Return by side effect a reference whose memory locations includes the memory locations of r in case t...
type make_char_array_type(int)
expression float_to_expression(float)
expression MakeTernaryCall(entity, expression, expression, expression)
Creates a call expression to a function with 3 arguments.
char * AddPackageToName(string, string)
This function concatenate a package name and a local name to produce a global entity name.
void variable_declaration_verify(reference)
bool type_used_in_type_declarations_p(entity, list)
check if e is used to declare one of the entities in entity list ldecl
void reset_label_counter(void)
constant expression_constant(expression)
This function returns a "constant" object if the expression is a constant such as 10,...
bool label_string_defined_in_statement_p(string, statement)
list entity_qualifiers(entity)
return the qualifiers associated to entity e if it's a variable NIL otherwise
void fprint_C_environment(FILE *, entity)
bool entities_p(list)
Make sure that an list is an homogeneous list of entities.
entity make_scalar_entity(const char *, const char *, basic)
entity make_scalar_entity(name, module_name, base)
bool array_with_numerical_bounds_p(entity)
bool array_with_numerical_bounds_p(entity a) input : an array entity output : true if all bounds of a...
list filter_variables_in_pragma_expr(list, list)
filter out a pragma (expression list) removing all requested variables @params l_expr is the list of ...
set get_referenced_entities_filtered(void *, bool(*)(void *), bool(*)(entity))
Same as get_referenced_entities, but will only consider entities that fulfills entity_filter and will...
list make_unbounded_subscripts(int)
FI: this piece of code must have been duplicated somewhere else in an effect library.
bool std_file_entity_p(entity)
void add_non_declared_reference_to_declaration(reference)
expression MakeNullaryCall(entity)
Creates a call expression to a function with zero arguments.
void flatten_block_if_necessary(instruction)
Flatten an instruction block if necessary.
list module_all_declarations(entity)
The function itself is not in its declarations.
bool enclosing_loops_map_undefined_p(void)
list brace_expression_to_statements(entity, expression)
converts a brace expression used to initialize an array (not a struct yet) into a statement sequence
list functional_type_supporting_references(list, functional)
expression make_max_expression(expression, expression, enum language_utype)
int signed_integer_constant_expression_value(expression)
bool entity_non_pointer_scalar_p(entity)
bool entity_main_module_p(entity)
expression syntax_to_expression(syntax)
generates an expression from a syntax
bool brace_expression_p(expression)
Return bool indicating if expression e is a brace expression.
sentence get_header_comments(entity)
Get the header comments (before PROGRAM, FUNCTION,...) from the text declaration:
type expression_to_type(expression)
For an array declared as int a[10][20], the type returned for a[i] is int [20].
bool time_effect_entity_p(entity)
bool entity_volatile_variable_p(entity)
dimension dimension_dup(dimension)
void initialize_clean_up_sequences_statistics(void)
bool generic_basic_equal_p(basic, basic, bool, bool, hash_table)
void safe_reset_entity_to_size(void)
In case of error handling, PIPS may try to reset this table twice.
bool compatible_basic_p(basic, basic)
check if two basics are similar.
bool same_field_entity_p(const entity, const entity)
type make_scalar_overloaded_type(void)
bool area_equal_p(area, area)
string entity_global_name(entity)
Used instead of the macro to pass as formal argument.
const char * module_local_name(entity)
Returns the module local user name.
bool keep_directive_in_code_p(const char *)
whether an entity must be kept in the code.
list pragma_omp_parallel_as_exprs(void)
parameter MakeLongDoublecomplexParameter(void)
MB.
mode MakeModeReference(void)
bool expression_equal_p(expression, expression)
Syntactic equality e1==e2.
expression make_address_of_expression(expression)
generate a newly allocated expression for &(e)
string entity_name_without_scope(entity)
allocates a new string
bool comment_string_p(const string)
Test if a string can be a Fortran 77 comment:
expression make_subscript_expression(expression, list)
bool mode_equal_p(mode, mode)
Pbase entity_list_to_base(list)
bool entity_scalar_p(entity)
The concrete type of e is a scalar type.
bool call_equal_p(call, call)
list get_common_members(entity, entity, bool)
bool void_function_p(entity)
Check if m is a C void function or a Fortran subroutine.
cons * arguments_difference(cons *, cons *)
set difference: a1 - a2 ; similar to set intersection
list fortran_constant_expression_supporting_entities(list, expression)
Fortran version.
bool subscript_equal_p(subscript, subscript)
list declaration_supporting_references(list)
Find all references in the declaration list.
entity make_new_array_variable_with_prefix(const char *, entity, basic, list)
J'ai ameliore la fonction make_new_scalar_variable_with_prefix
bool add_ordering_of_the_statement_to_current_mapping(statement)
Add the statement for its ordering, if any, in the hash-map.
expression expression_list_to_conjonction(list)
void update_dummy_parameter(parameter, entity)
bool reference_with_unbounded_subscript_p(reference)
See if the reference uses the unbounded function '*'.
expression make_lin_op_exp(entity, expression, expression)
================================================================
bool entity_basic_p(entity, enum basic_utype)
return true if the basic associated with entity e matchs the passed tag
void wide_forward_control_map_get_blocs(control, cons **)
bool entity_register_p(entity)
bool array_element_type_p(type, type)
is "et" the type of an element of an array of type "at"?
expression MakeSizeofType(type)
entity make_new_module_variable(entity, int)
Make a new module integer variable of name X<d>.
bool parameter_equal_p(parameter, parameter)
bool divide_expression_p(expression)
entity make_new_scalar_variable(entity, basic)
entity std_file_entity_to_pointed_file_entity(entity)
Dummy standard files targets.
void reset_keyword_typedef_table(void)
bool expression_linear_p(expression)
returns if e is already normalized and linear.
expression pragma_if_as_expr(expression)
entity make_entity_copy_with_new_name_and_suffix(entity, string, bool)
Create a copy of an entity, with (almost) identical type, storage and initial value if move_initializ...
entity FindEntityFromUserName(const char *, const char *)
bool array_of_derived_type_p(type)
bool parameter_passing_mode_p(entity, int tag)
Returns true when f has no parameters.
expression make_constraint_expression(Pvecteur, Variable)
Make an expression from a constraint v for a given index.
void add_pragma_strings_to_statement(statement, list, bool)
Add a list of strings as as many pragmas to a statement.
string module_codefilename(entity)
To find resources (this should be located in workspace-util as it depends both on pipsdbm and ri-util...
bool unstructured_reorder(unstructured)
Reorder an unstructured.
entity make_label(const char *, const char *)
tag suggest_basic_for_expression(expression)
a BASIC tag is returned for the expression this is a preliminary version.
Psysteme cute_convex_union(Psysteme, Psysteme)
convex_hull.c
basic entity_basic(entity)
return the basic associated to entity e if it's a function/variable/constant basic_undefined otherwis...
bool empty_static_area_p(entity)
bool variable_return_p(entity)
True if a variable is the pseudo-variable used to store value returned by a function:
expression make_factor_expression(int, entity)
Some functions to generate expressions from vectors and constraint systems.
void reset_enclosing_loops_map(void)
bool array_of_pointers_type_p(type)
statement clone_statement(statement, clone_context)
clone_statement.c
statement pop_statement_global_stack(void)
int dimension_size(dimension)
this function computes the size of a dimension.
int number_of_initial_values(list)
size.c
type expression_to_uncasted_type(expression)
If the expression is casted, return its type before cast.
bool empty_scope_p(string)
void fprint_entity_list(FILE *, list)
void fprint_entity_list(FILE *fp,list l): prints a list of entities on file fp.
bool variable_in_common_p(entity)
true if v is in a common.
list basic_supporting_entities(list, set, basic)
expression bool_to_expression(bool)
bool unbounded_entity_p(entity)
type intrinsic_call_to_type(call)
END_EOLE.
bool label_string_defined_in_current_module_p(string)
int element_number(basic, list)
END_EOLE.
list make_unbounded_dimensions(int)
Minimal information to build a d-dimensional array type.
bool scalar_integer_type_p(type)
void update_statement_enclosing_loops(statement, list)
expression MakeBinaryCall(entity, expression, expression)
Creates a call expression to a function with 2 arguments.
bool label_name_conflict_with_labels(const char *, list)
type MakeLogicalResult(void)
cast expression_cast(expression)
bool derived_entity_p(entity)
bool place_holder_variable_p(entity)
bool variable_entity_p(entity)
variable.c
normalized NormalizeExpression(expression)
normalize.c
remove_a_control_from_a_list_and_relink_direction
For the control graph modifiers:
@ source_is_predecessor_and_dest_is_successor
Put some strange number to avoid random clash as much as possible...
@ source_is_successor_and_dest_is_predecessor
type expression_to_concrete_type(expression)
A new type is allocated.
set get_declared_entities(void *)
retrieves the set of entities declared in elem
bool abs_expression_p(expression)
void split_initializations_in_statement(statement)
Transform a declaration with an initialization statement into 2 parts, a declaration statement and an...
expression make_contrainte_expression(Pcontrainte, Variable)
A wrapper around make_constraint_expression() for compatibility.
bool realign_directive_p(entity)
parameter MakeDoublecomplexParameter(void)
bool arguments_subset_p(list, list)
Check if a1 is a subset of a2.
application expression_application(expression)
bool field_expression_p(expression)
The expression is of kind "a", where "a" is a field of some struct "s".
bool variable_entities_may_conflict_p(entity, entity)
code EntityCode(entity)
this function checks that e has an initial value code.
bool unbounded_dimension_p(dimension)
bool unbounded_dimension_p(dim) input : a dimension of an array entity.
entity make_temporary_pointer_to_array_entity(entity, expression, entity)
bool global_variable_p(entity)
Is v a global variable such as "int i;".
_int TK_CHARCON_to__int(const char *)
expression expression_verbose_reduction_p_and_return_increment(expression, bool(expression))
bool symbolic_entity_p(entity)
bool compilation_unit_entity_p(entity)
Check if the given module entity is a compilation unit.
void reference_add_unbounded_subscripts(reference, type)
bool hpf_directive_entity_p(entity)
bool substraction_expression_p(expression)
Test if an expression is an substraction.
list pragma_omp_parallel_for_as_exprs(void)
int module_to_declaration_length(entity)
Number of user declaration lines for a module.
if_clause_policy
that is all for ri-util-local.h
string basic_to_string(basic)
Warning! Do not modify this file that is automatically generated!
bool enum_type_p(type)
Returns true if t is of type derived and if the derived type is a enum.
void reference_add_zero_subscript(reference)
No check on reference r.
list derived_type_fields(type)
bool entity_module_p(entity)
bool dynamic_area_p(entity)
expression make_zero_expression(void)
Make a zero expression.
string module_entitiesfilename(entity)
type C_type_to_pointed_type(type)
returns a copy of t if t is not a pointer type, and the pointed type if t is a pointer type or.
void expression_normalize_subscripts(expression)
To be used for initialization expressions.
bool expression_one_p(expression)
bool entity_blockdata_p(entity)
expression range_to_expression(range, enum range_to_expression_mode mode)
computes the distance between the lower bound and the upper bound of the range
void AddEntityToDeclarations(entity, entity)
END_EOLE.
type MakeTypeUnknown(void)
void davinci_dump_all_expressions(FILE *, statement)
dump all expressions in s to out.
normalized NormalizeConstant(constant)
statement get_current_statement_from_statement_global_stack(void)
bool type_fundamental_basic_p(type)
type ultimate_array_type(type)
type type_to_array_type(type)
convert a type "t" into a newly allocated array type "at" whose elements are of type "t",...
type MakeComplexResult(void)
bool thread_safe_variable_p(entity)
list make_list_of_constant(int, int)
of expression
entity make_empty_blockdata(const char *, language)
bool statement_global_stack_defined_p(void)
entity generate_pseudo_formal_variable_for_formal_label(const char *, int)
bool arguments_equal_p(list, list)
Check the syntactic equality of lists a1 and a2.
hash_table set_ordering_to_statement(statement)
To be used instead of initialize_ordering_to_statement() to make sure that the hash table ots is in s...
void add_thread_safe_variable(entity)
list type_supporting_references(list, type)
const string FORTRAN_OMP_CONTINUATION
bool static_global_variable_p(entity)
Is v a global variable declared local to a C file such "static int i;".
type type_to_pointer_type(type)
allocate a new type "pt" which includes directly "t".
const char * label_local_name(entity)
END_EOLE.
bool expression_string_constant_p(expression)
entity make_loop_label(int, entity)
bool local_entity_of_module_p(entity, entity)
This test shows that "e" has been declared in "module".
void control_node_reorder(control, set)
type call_to_functional_type(call, bool)
The function called can have a functional type, or a typedef type or a pointer type to a functional t...
int number_of_fields(type)
Recursive number of fields in a data structure...
void normalize_first_expressions_of(void *)
entity get_stdout_entity(void)
entity make_new_derived_entity_with_prefix(const char *, entity, type)
derived from make_new_scalar_variable_with_prefix
expression MakeCastExpression(type, expression)
bool function_return_value_p(entity, entity)
Is entity v the return value of function f?
expression make_entity_expression(entity, cons *)
float expression_to_float(expression)
Same as above for floating point constants.
list extract_references_from_declarations(list)
FI: this function has not yet been extended for C types!!!
list enum_supporting_entities(list, set, entity)
entity entity_empty_label(void)
bool variable_dynamic_p(entity)
entity CreateIntrinsic(string)
this function does not create an intrinsic function because they must all be created beforehand by th...
bool hpf_directive_string_p(const char *)
hpfc.c
void statement_normalize_subscripts(statement)
To be used for module statements.
void free_enclosing_loops_map(void)
extensions empty_extensions(void)
extension.c
bool entity_not_constant_or_intrinsic_p(entity)
Default entity filter for get_referenced_entities()
parameter MakePointerParameter(void)
bool fortran95_language_module_p(entity)
bool expression_is_constant_p(expression)
BEGIN_EOLE.
bool memmove_effect_entity_p(entity)
bool same_type_name_p(type, type)
For naming homogeneity: expression_to_string(), reference_to_string()...
int SizeOfIthDimension(entity, int)
this function returns the size of the ith dimension of a variable e.
bool arithmetic_intrinsic_p(entity)
true if e is an arithmetic instrinsic
expression reference_ith_index(reference, int)
functions for references
void discard_statement_to_goto_table(void)
Discard the statement_to_goto_table map:
bool qualifiers_const_p(list)
Check that a qualifier list contains the const qualifier.
basic some_basic_of_any_expression(expression, bool, bool)
basic basic_of_any_expression(expression exp, bool apply_p): Makes a basic of the same basic as the e...
int variable_dimension_number(variable)
bool constant_string_entity_p(entity)
entity make_constant_entity(string, tag, size_t)
For historical reason, call the Fortran version.
void check_fortran_declaration_dependencies(list)
declarations.c
void compute_statement_to_goto_table(statement)
Since clean_up_sequences() is called before the controlizer, there may be some GOTO.
value EvalConstant(constant)
Constant c is returned as field of value v.
bool same_basic_p(basic, basic)
check if two basics are similar.
void forward_control_map_get_blocs(control, cons **)
int entity_field_rank(entity)
f is a field of a structure or of an union: what is its rank?
bool entity_pointer_p(entity)
bool comma_expression_p(expression)
void RemoveLocalEntities(entity)
Useful for ParserError()?
string string_remove_trailing_line_feeds(string)
Remove trailing line feeds.
normalized NormalizeIntrinsic(entity, list)
void fprint_any_environment(FILE *, entity, bool)
int add_C_variable_to_area(entity, entity)
bool parameter_passing_by_value_p(entity)
basic basic_of_any_expression(expression, bool)
string safe_type_to_string(const type)
basic basic_union(expression, expression)
basic basic_union(expression exp1 exp2): returns the basic of the expression which has the most globa...
expression substitute_entity_variable_in_expression(entity, entity, expression)
(This function isn't use for the moment) This function replaces all the occurrences of an old entity ...
type MakeVoidPointerResult(void)
entity entity_field_to_entity_union(entity)
list generic_constant_expression_supporting_entities(list, set, expression, bool)
expression size_of_actual_array(entity, list, int)
bool actual_label_replacement_p(expression)
Assumes that eap is a call.
entity FindEntity(const char *, const char *)
Retrieve an entity from its package/module name and its local name.
bool dabs_expression_p(expression)
list basic_supporting_references(list, basic)
bool dummy_parameter_entity_p(entity)
is p a dummy parameter?
expression dereference_expression(expression)
generate a newly allocated expression for *(e)
parameter MakeOverloadedParameter(void)
bool overloaded_parameters_p(list)
bool entity_union_p(entity)
Is entity e an entity representing the union declaration?
bool label_defined_in_statement_p(entity, statement)
type type_to_final_pointed_type(type)
returns t if t is not a pointer type, and the first indirectly pointed type that is not a pointer if ...
bool do_get_declared_entities(statement, set)
Helper for get_declared_entities() Add all locally declared entity to the set given in argument.
int number_of_items(type)
Same as above, but arrays in struct are taken into account.
void store_statement_enclosing_loops(statement, list)
bool basic_type_p(type)
Safer than the other implementation? bool pointer_type_p(type t) { bool is_pointer = false;.
bool entity_in_common_p(entity)
void AddEntityToCurrentModuleWithoutDeclaration(entity)
Add a variable entity to the current module declarations.
bool type_equal_p(type, type)
int DefaultLengthOfBasic(tag)
constant.c
void reset_unique_variable_numbers(void)
_int is_c_keyword_typedef(char *)
This function checks if s is a C keyword or typedef name and returns the token number thanks to the h...
bool member_entity_p(entity)
bool module_body_reorder(statement)
Reorder a module.
bool power_expression_p(expression)
bool return_value_p(entity)
Is entity v the return value of some function?
bool variable_in_module_p(entity, entity)
This test can only be applied to variables, not to functions, subroutines or commons visible from a m...
bool generic_variable_equal_p(variable, variable, bool, bool, hash_table)
void set_std_static_entities(void)
entity.c
bool io_luns_entity_p(entity)
void discard_module_declaration_text(entity)
Discard the decls_text string of the module code to make the prettyprinter ignoring the textual decla...
void set_entity_to_size(void)
size_t maximal_type_depth(type)
Number of steps to access the lowest leave of type t without a recursive test.
type expression_to_user_type(expression)
Preserve typedef'ed types when possible.
parameter MakeCharacterParameter(void)
void declare_new_typedef(const string)
entity AddEntityToModule(entity, entity)
!!! caution, it may not be a module, but a common...
bool basic_equal_p(basic, basic)
string build_new_top_level_module_name(const char *, bool)
module.c
void fprint_functional(FILE *, functional)
This function is called from c_parse() via ResetCurrentModule() and fprint_environment()
bool generic_parameter_equal_p(parameter, parameter, bool, bool, hash_table)
entity expression_to_entity(expression)
just returns the entity of an expression, or entity_undefined
value EvalIntrinsic(entity, list)
This function tries to evaluate a call to an intrinsic function.
bool integer_scalar_entity_p(entity)
integer_scalar_entity_p() is obsolete; use entity_integer_scalar_p()
bool malloc_effect_entity_p(entity)
basic basic_of_any_reference(reference, bool, bool)
Retrieves the basic of a reference in a newly allocated basic object.
list syntax_to_reference_list(syntax, list)
expression pragma_build_if_condition(expression, language)
build the expression to be put in the if clause.
bool entity_f95use_p(entity)
void add_abstract_state_variable(entity)
bool complex_constant_expression_p(expression)
expression complex_to_expression(float, float)
const char * entity_user_name(entity)
Since entity_local_name may contain PIPS special characters such as prefixes (label,...
void add_pragma_str_to_statement(statement, const char *, bool)
Add a string as a pragma to a statement.
bool integer_type_p(type)
bool extended_integer_constant_expression_p(expression)
More extensive than next function.
statement Pvecteur_to_assign_statement(entity, Pvecteur)
generates var = linear expression from the Pvecteur.
expression make_call_expression(entity, list)
Build an expression that call an function entity with an argument list.
bool type_equal_up_to_qualifiers_p(type, type)
bool syntax_equal_p(syntax, syntax)
void AddEntityToCurrentModule(entity)
Add a variable entity to the current module declarations.
bool unnormalized_array_p(entity)
int type_memory_size(type)
entity module_name_to_entity(const char *)
This is an alias for local_name_to_top_level_entity.
bool assumed_size_array_p(entity)
type MakeCharacterResult(void)
bool concrete_type_equal_p(type, type)
Expand typedefs before the type comparison.
int bound_generation_compare_vector_component(Pvecteur *, Pvecteur *)
bound_generation.c
bool expression_integer_constant_p(expression)
bool abstract_state_variable_p(entity)
type MakeTypeArray(basic, cons *)
functions on types
int new_add_any_variable_to_area(entity, entity, bool)
bool vecteur_nul_p(Pvecteur)
const char * entity_and_common_name(entity)
See next function!
list type_supporting_entities(list, type)
basic MakeBasicOverloaded(void)
bool same_type_name_p(const type t0, const type t1) {
void RemoveLocalEntityFromDeclarations(entity, entity, statement)
bool lexicographic_order_p(entity, entity)
true if var1 <= var2
bool same_entity_name_p(entity, entity)
compare entity names
entity update_operator_to_regular_operator(entity)
Returns the binary operator associated to a C update operator such as +=.
reference constant_reference_to_normalized_constant_reference(reference)
Allocate a new reference with evaluated subscripts.
type type_to_pointed_type(type)
returns t if t is not a pointer type, and the pointed type if t is a pointer type.
bool formal_area_p(entity)
void free_expressions(list)
Free a list of expressions.
void symbolic_constant_declaration_verify(call)
bool check_C_function_type(entity, list)
Check that an effective parameter list is compatible with a function type.
Value ValueSizeOfDimension(dimension)
FI: I do not understand the "Value" cast.
bool expression_field_p(expression)
The expression is of kind "s.a", where "s" is a struct and a "a" field.
type entity_basic_concrete_type(entity)
retrieves or computes and then returns the basic concrete type of an entity
cons * dup_arguments(cons *)
bool cast_equal_p(cast, cast)
expression reference_offset(reference)
computes the offset of a C reference with its origin
const char * module_resource_name(entity)
Returns a pointer towards the resource name.
entity FindOrCreateTopLevelEntity(const char *)
Return a top-level entity.
bool is_expression_reference_to_entity_p(expression, entity)
Test if an expression is a reference to a given variable entity.
void dump_arguments(cons *)
entity_name is a macro, hence the code replication
void simplify_expressions(void *)
bool extern_entity_p(entity, entity)
int entity_memory_size(entity)
type pointed_type(type)
returns the type pointed by the input type if it is a pointer or an array of pointers
bool unsigned_type_p(type)
Predicates on types.
bool intrinsic_name_p(const char *)
int integer_constant_expression_value(expression)
bool statement_to_goto_table_flt(instruction)
End: clean up sequences context.
bool dimension_equal_p(dimension, dimension)
bool allocatable_area_p(entity)
entity MakeComplexConstant(expression, expression)
make a complex constant from two calls to real or integer constants
normalized NormalizeCast(cast)
Value ValueSizeOfArray(entity)
bool signed_constant_expression_p(expression)
bool basic_concrete_type_leads_to_pointer_p(type)
returns true when the input type successors may be pointers
cons * arguments_rm_entity(cons *, entity)
bool declarable_type_p(type, list)
Are all types necessary to define fully type "t" listed in list "pdl"?
bool variable_stack_p(entity)
bool io_entity_p(entity)
Several implicit entities are declared to define the implicit effects of IO statements.
const char * entity_module_name(entity)
See comments about module_name().
bool max0_expression_p(expression)
void entity_basic_concrete_types_init(void)
type MakeAnyScalarResult(tag, _int)
expression get_allocatable_data_expr(entity)
This function produce an expression that is an access to the array inside the allocatable structure.
const char * entity_local_name(entity)
entity_local_name modified so that it does not core when used in vect_fprint, since someone thought t...
type MakeIntegerResult(void)
bool signed_integer_constant_expression_p(expression)
expression find_ith_expression(list, int)
find_ith_expression() is obsolet; use find_ith_argument() instead
void register_static_entity(entity *)
add given entity to the set of entities that must reset upon workspace deletion practically,...
type subscripted_type_to_type(type, expression)
Returns the type of an object of type t subscripted by expression se.
bool entity_used_in_declarations_p(entity, list)
check if e is used to declare one of the entities in entity list ldecl
int trivial_expression_p(expression)
This function returns:
void GenericCleanEntities(list, entity, bool)
clean.c
void sort_list_of_entities(list)
sorted in place.
int IsUnaryOperator(entity)
bool FILE_star_type_p(type)
bool same_scalar_location_p(entity, entity)
FI: transferred from semantics (should be used for effect translation as well)
subscript expression_subscript(expression)
bool c_module_p(entity)
Test if a module "m" is written in C.
expression generate_string_for_alternate_return_argument(string)
bool variable_declaration_coherency_p(entity, statement)
bool unbounded_expression_p(expression)
value EvalBinaryOp(int, list)
t defines the operator and la is a list to two sub-expressions.
type array_type_projection(type)
T is assumed to be an array type.
value EvalUnaryOp(int, list)
void unnormalize_expression(void *)
void unnormalize_expression(expression exp): puts all the normalized field of expressions in "st" to ...
list variable_type_supporting_entities(list, set, variable)
bool integer_constant_name_p(string)
bool union_type_p(type)
Returns true if t is of type derived and if the derived type is a union.
bool statement_enclosing_loops_undefined_p(statement)
bool pointer_type_p(type)
Check for scalar pointers.
bool array_entity_p(entity)
bool integer_constant_expression_p(expression)
positive integer constant expression: call to a positive constant or to a sum of positive integer con...
bool top_level_entity_p(entity)
Check if the scope of entity e is global.
void adjust_goto_from_to(statement, statement)
Adjust all the GOTOs pointing s1 to s2:
bool expression_equal_integer_p(expression, int)
================================================================
unsigned int array_type_dimension(type)
string qualifier_to_string(qualifier)
list enum_supporting_references(list, entity)
list derived_type_to_fields(type)
bool dimensions_equal_p(list, list)
entity make_new_common(string, entity)
This function creates a common for a given name in a given module.
bool module_reorder(statement)
Reorder a module and recompute order to statement if any.
bool type_structurally_equal_p(type, type)
Type t1 and t2 are equal if their basic concrete components are equal.
expression entity_to_expression(entity)
if v is a constant, returns a constant call.
void normalize_subscript_expression(expression)
Normalization of subscript in expressions.
entity entity_intrinsic(const char *)
FI: I do not understand this function name (see next one!).
bool array_pointer_type_equal_p(type, type)
assume that a pointer to type x is equal to a 1-D array of x
reference expression_to_reference(expression)
entity make_scalar_integer_entity(const char *, const char *)
Create an integer variable of name "name" in module of name "module_name".
bool simplify_expression(expression *)
use polynomials to simplify an expression in some cases this operation can change the basic of the ex...
type MakeRealResult(void)
size_t type_depth(type)
Number of steps to access the lowest leave of type t without dereferencing.
bool type_union_variable_p(type)
type MakeTypeStatement(void)
bool derived_type_p(type)
Returns true if t is of type struct, union or enum.
expression make_false_expression(void)
type MakeDoubleprecisionResult(void)
bool c_language_module_p(entity)
type make_scalar_integer_type(_int)
bool positive_expression_p(expression)
Use constants and type information to decide if the value of sigma(e) is always positive,...
bool formal_parameter_p(entity)
int compare_entities(const entity *, const entity *)
Comparison function for qsort.
bool simplify_C_expression(expression)
Replace C operators "+C" and "-C" which can handle pointers by arithmetic operators "+" and "-" when ...
expression variable_initial_expression(entity)
Returns a copy of the initial (i.e.
bool store_independent_reference_p(reference)
Does this reference define the same set of memory locations regardless of the current (environment an...
void generic_reference_add_fixed_subscripts(reference, type, bool)
Add a set of zero subscripts to a reference "r" by side effect.
hash_table make_keyword_typedef_table(int)
entity make_C_or_Fortran_constant_entity(const char *, tag, size_t, bool, bool(*)(const char *, const char *))
This function creates a constant.
bool unsigned_basic_p(basic)
void set_register_qualifier(entity)
Assuming that v is of type variable, add a qualifier register.
list struct_type_to_fields(type)
bool extended_expression_constant_p(expression)
Returns true if the value of the expression does not depend syntactically on the current store.
normalized binary_to_normalized(list, int)
entity make_empty_function(const char *, type, language)
bool entity_is_argument_p(entity, cons *)
parameter MakeIntegerParameter(void)
entity generic_clone_variable_with_unique_name(entity, statement, string, string, entity, bool)
clone a variable with a new name.
bool dead_fcd_directive_p(entity)
bool operator_expression_p(expression, string)
expression expressions_to_operation(const list, entity)
take a list of expression and apply a binary operator between all of them and return it as an express...
bool call_contains_alternate_returns_p(call)
string module_par_codefilename(entity)
void print_entity_set(set)
entity make_new_array_variable(entity, basic, list)
hash_table keyword_typedef_table
Because of typedefs, the C lexers need help to decide if a character string such as toto is a type na...
bool entity_atomic_reference_p(entity)
Any reference r such that reference_variable(r)==e accesses all bytes (or bits) allocated to variable...
bool io_intrinsic_p(entity)
rue is a statement s is an io intrinsic
list arguments_intersection(list, list)
Build a new list with all entities occuring in both a1 and a2.
bool assignment_expression_p(expression)
Test if an expression is an assignment operation.
char * new_label_local_name(entity)
list module_formal_parameters(entity)
list module_formal_parameters(entity func) input : an entity representing a function.
bool empty_extensions_p(extensions)
list variable_type_supporting_references(list, variable)
bool entity_in_list_p(entity, list)
look for ent in ent_l
list dimensions_to_normalized_dimensions(list)
evaluate constant expressions appearing in dimensions of list dl
bool variable_in_list_p(entity, list)
bool iabs_expression_p(expression)
_int SizeOfElements(basic)
This function returns the length in bytes of the Fortran or C type represented by a basic,...
bool entity_return_label_p(entity)
void print_homogeneous_arguments(list, const char *(entity))
arguments.c
entity function_to_return_value(entity)
Returns the entity rv that carries the value returned by module m, when m is not a C void function or...
bool expression_null_p(expression)
returns true if the expression is equal to zero or NULL (even if there is a cast before such as in (v...
bool effects_package_entity_p(entity)
checks if an entity is an IO_EFFECTS_PACKAGE_NAME, a MALLOC_EFFECTS_NAME or a RAND_EFFECTS_PACKAGE_NA...
entity module_name_to_runtime_entity(const char *)
similar to module_name_to_entity but generates a warning and a stub if the entity is not found
bool array_pointer_string_type_equal_p(type, type)
Assume that a pointer to type x is equal to a 1-D array of x.
type MakeTypeOverloaded(void)
entity SafeMakeConstant(string, tag, bool(*)(const char *, const char *))
END_EOLE.
bool struct_type_p(type)
Returns true if t is of type derived and if the derived type is a struct.
type MakeQuadprecisionResult(void)
MB.
parameter MakeUnsignedIntegerParameter(void)
expression MakeCommaExpression(list)
entity operator_neutral_element(entity)
bool qualified_variable_p(entity, unsigned int)
The variable may turn out to be a function.
expression MakeBraceExpression(list)
entity make_derived_entity(const char *, const char *, type)
bool same_expression_p(expression, expression)
this is slightly different from expression_equal_p, as it will return true for a+b vs b+a
char * expression_string_constant(expression)
returns a newly allocated string!
entity MakeCompilationUnitEntity(const char *)
This is useful for the C language only.
basic basic_of_call(call, bool, bool)
basic basic_of_call(call c): returns the basic of the result given by the call "c".
bool expression_intrinsic_operation_p(expression)
bool expression_intrinsic_operation_p(expression exp): Returns true if "exp" is an expression with a ...
expression MakeSizeofExpression(expression)
value EvalCall(call)
only calls to constant, symbolic or intrinsic functions might be evaluated.
void push_statement_on_statement_global_stack(statement)
parameter MakeVoidPointerParameter(void)
void reset_internal_static_entities(void)
entity find_or_create_typed_entity(string, const char *, tag)
Looks for an entity of the specified basic.
bool generic_functional_equal_p(functional, functional, bool, bool, hash_table)
entity make_empty_module(const char *, type, language)
The source language is not specified.
bool false_expression_p(expression)
entity make_new_scalar_variable_with_prefix(const char *, entity, basic)
Create a new scalar variable of type b in the given module.
value EvalExpression(expression)
cproto-generated files
void make_bound_expression(Variable, Pbase, Psysteme, expression *, expression *)
void make_bound_expression(variable index, Pbase base, Psysteme sc, expression *lower,...
void add_pragma_expr_to_statement(statement, list)
Add a pragma as a list of expression to a statement.
bool extended_integer_constant_expression_p_to_int(expression, int *)
bool type_with_const_qualifier_p(type)
Is there a const qualifier associated to type t.
entity find_label_entity(const char *, const char *)
util.c
sentence get_declaration_comments(entity)
Get all the declaration comments, that are comments from the PROGRAM, FUNCTION,...
type array_type_to_element_type(type)
returns the type of the elements of an array type, as a newly allocated type.
bool entity_list_p(list)
Checks that el only contains entity.
parameter MakeRealParameter(void)
int NumberOfDimension(entity)
entity make_entity_copy_with_new_name(entity, string, bool)
Create a copy of an entity, with (almost) identical type, storage and initial value if move_initializ...
bool entity_formal_p(entity)
is p a formal parameter?
int expression_to_int(expression)
================================================================
list integer_entities
Make a new variable entity which name is one letter prefix + one incrementing number.
void reference_add_zero_subscripts(reference, type)
bool redistribute_directive_p(entity)
void display_clean_up_sequences_statistics(void)
void brace_expression_to_updated_type(entity, expression)
use a brace expression to update the type of array "arr" if the dimensions are implicit
bool sizeofexpression_equal_p(sizeofexpression, sizeofexpression)
list entities_to_expressions(list)
build a list of expressions from a list of entities
expression expression_to_dereferencing_expression(expression)
Reuse expression e to build expression *(e) without cheking the legality of the construct.
bool integer_expression_p(expression)
string local_name_to_scope(const char *)
allocates a new string
type MakeOverloadedResult(void)
this function creates a default fortran operator result, i.e.
bool fortran_module_p(entity)
Test if a module is in Fortran.
string module_pp_fortranfilename(entity)
bool expression_minmax_p(expression)
entity generic_function_to_return_value(entity, bool)
Returns the entity rv that carries the value returned by module m, when m is not a C void function or...
bool C_initialization_expression_p(expression)
bool negative_expression_p(expression)
Use constants and type information to decide if the value of sigma(e) is always negative,...
void reset_ordering_to_statement(void)
Reset the mapping from ordering to statement.
expression convert_bound_expression(expression, bool, bool)
Replace a C expression used as FOR bound by a Fortran DO bound expression, taking into account the C ...
bool array_argument_p(expression)
parameter MakeLogicalParameter(void)
string module_par_fortranfilename(entity)
bool ith_parameter_p(entity, entity, int)
returns true if v is the ith formal parameter of function f
parameter MakeLongIntegerParameter(void)
type compute_basic_concrete_type(type)
computes a new type which is the basic concrete type of the input type (this new type is not stored i...
string safe_entity_name(entity)
predicates and functions for entities
void make_enclosing_loops_map(void)
bool overloaded_type_p(type)
Returns true if t is a variable type with a basic overloaded.
bool implicit_c_variable_p(entity)
reference expression_reference(expression)
Short cut, meaningful only if expression_reference_p(e) holds.
bool expression_similar_get_context_p(expression, expression, hash_table *)
similar to expression_similar_p but the hash_map containing the crossref value is retured for further...
entity make_new_integer_scalar_common_variable(string, entity, entity)
This function creates a common variable in a given common in a given module.
entity module_to_dynamic_area(entity)
entity clone_variable_with_unique_name(entity, statement, string, string, entity)
Clone a variable with a new user name.
bool variable_heap_p(entity)
bool expression_application_p(expression)
Duplicate bool expression_subscript_p(expression e) { return(syntax_subscript_p(expression_syntax(e))...
list ldimensions_dup(list)
bool expression_equal_or_opposite_p(expression, expression)
e1==e2 or -e1==e2 or e1==-e2 syntactically
bool entity_continue_p(entity)
expression update_range(entity, range, expression, expression, expression, bool)
fortran90.c
sizeofexpression expression_sizeofexpression(expression)
statement_mapping get_enclosing_loops_map(void)
basic basic_ultimate(basic)
get the ultimate basic from a basic typedef
bool stdout_entity_p(entity)
entity get_continue_entity(void)
true if continue.
void normalize_all_expressions_of(void *)
int add_variable_to_area(entity, entity)
bool zero_expression_p(expression)
void davinci_dump_expression(FILE *, expression)
dump expression e in file out as a davinci graph.
bool entity_label_p(entity)
bool entity_subroutine_p(entity)
bool expression_integer_value(expression, intptr_t *)
bool entity_enum_member_p(entity)
entity make_empty_f95module(const char *, language)
list fortran_type_supporting_entities(list, type)
expression make_min_expression(expression, expression, enum language_utype)
bool expression_cast_p(expression)
string module_fortranfilename(entity)
void set_internal_static_entities(void)
beware: cannot be called on creating the database
expression make_ref_expr(entity, list)
entity make_new_index_entity(entity, string)
bool pointer_type_array_p(entity)
bool char_star_type_p(type)
Beware of typedefs.
void print_common_layout(FILE *, entity, bool)
type reference_to_type(reference)
entity make_empty_subroutine(const char *, language)
expression pointer_reference_to_expression(reference)
Assume p is a pointer.
reference add_subscript_to_reference(reference, expression)
Add a last subscript expression s to a reference r.
bool expression_allocatable_data_access_p(expression)
Check if an expression is a reference to an allocatable array.
void error_reset_current_module_entity(void)
To be called by an error management routine only.
expression normalize_integer_constant_expression(expression)
Allocate a new expression equivalent to e, but constant expressions are evaluated.
@ ENTITY_POINTER_DUMMY_TARGETS_AREA
bool pointer_dummy_targets_area_p(entity)
bool string_struct_scope_p(string)
same kind of testing required for union as well
int string_type_size(basic)
expression find_ith_argument(list, int)
bool entity_struct_p(entity)
Is entity e the entity corresponding to a struct declaration?
entity generate_variable_with_unique_name_to_module(const char *, const char *, const char *, entity)
Generate a new variable name from a seed name to a module.
bool expression_call_p(expression)
expression Pvecteur_to_expression(Pvecteur)
AP, sep 25th 95 : some usefull functions moved from static_controlize/utils.c.
void free_expression_normalized(expression)
parameter MakeLongLongIntegerParameter(void)
MB.
list common_members_of_module(entity, entity, bool)
returns the list of entity to appear in the common declaration.
bool fcd_directive_string_p(const char *)
list symbolic_supporting_references(list, symbolic)
bool self_initialization_p(entity)
Check if a variable is initialized by itself as "int a = a;" is legal C code according to gcc.
type MakeTypeVariable(basic, cons *)
BEGIN_EOLE.
void free_statement_global_stack(void)
int add_any_variable_to_area(entity, entity, bool)
statement ordering_to_statement(int)
Get the statement associated to a given ordering.
expression subscript_value_stride(entity, list)
list symbolic_supporting_entities(list, set, symbolic)
C version.
bool typedef_type_p(type)
Returns true if t is a typedefED type.
normalized normalize_reference(reference)
expression monome_to_expression(Pmonome)
converts a monome to an expression
bool entity_special_area_p(entity)
bool entity_function_p(entity)
string safe_instruction_identification(instruction)
bool array_of_struct_type_p(type)
bool char_type_p(type)
return true whether ‘t’ is a char or an unsigned char
expression SizeOfDimension(dimension)
void delete_statement_enclosing_loops(statement)
entity local_name_to_top_level_entity(const char *)
This function try to find a top-level entity from a local name.
bool integer_symbolic_constant_p(entity, int *)
(*int_p) gets integer constant if any
void entity_basic_concrete_types_reset(void)
bool add_expression_p(expression)
Test if an expression is an addition.
bool user_call_p(call)
Test if a call is a user call.
list dependence_of_dependent_type(type)
similar to dependent_type_p but return a list of reference on which the type depend.
bool type_struct_variable_p(type)
void set_enclosing_loops_map(statement_mapping)
cons * arguments_add_entity(cons *, entity)
entity entity_field_to_entity_struct_or_union(entity)
bool type_pointer_on_struct_variable_p(type)
bool entity_in_formal_area_p(entity)
Formal parameters do not use the standard ram storage.
bool same_expression_in_list_p(expression, list)
This function returns true, if there exists a same expression in the list false, otherwise.
bool symbolic_constant_entity_p(entity)
BEGIN_EOLE.
entity find_ith_formal_parameter(entity, int)
This function gives back the ith formal parameter, which is found in the declarations of a call or a ...
bool overwrite_ordering_of_the_statement_to_current_mapping(statement)
Overwrite the statement for its ordering, if any, in the hash-map.
list expressions_to_entities(list)
map expression_to_entity on expressions
bool entity_integer_scalar_p(entity)
for variables (like I), not constants (like 1)! use integer_constant_p() for constants
string string_of_type(type)
parameter MakeQuadprecisionParameter(void)
MB.
bool standard_long_integer_type_p(type)
Used to encode the long keyword in the parser.
list string_to_user_modules(const char *)
Build a list of functions from a string s containing SPACE separated function names.
entity get_ith_dummy(string, string, int)
Returns a numbered entity the name of which is suffix + number, the module of which is prefix.
bool C_pointer_type_p(type)
Returns OK for "char[]" as well as for "char *".
bool ordering_to_statement_initialized_p(void)
ordering.c
void FreeNormalized(normalized)
value EvalSizeofexpression(sizeofexpression)
void vect_debug(Pvecteur)
constraint.c
bool relational_expression_p(expression)
bool volatile_variable_p(variable)
expression MakeUnaryCall(entity, expression)
Creates a call expression to a function with one argument.
expression reference_to_expression(reference)
entity make_global_entity_from_local(entity)
void clean_all_normalized(expression)
bool modulo_expression_p(expression)
void dump_functional(functional, string_buffer)
call expression_call(expression)
bool functional_equal_p(functional, functional)
int ipow(int, int)
FI: such a function should exist in Linear/arithmetique.
bool expression_negative_integer_value_p(expression)
Return true iff the expression has an integer value known statically and this value is negative.
basic expression_basic(expression)
bool variable_static_p(entity)
true if v appears in a SAVE statement, or in a DATA statement, or is declared static i C.
Pvecteur expression_to_affine(expression)
expression MakeComplexConstantExpression(expression, expression)
list recursive_type_supporting_entities(list, set, type)
bool expression_lists_equal_p(list, list)
bool parameter_passing_by_reference_p(entity)
int compare_Pvecteur(Pvecteur *, Pvecteur *)
comparison function for Pvecteur in pips, to be used by qsort.
list functional_type_supporting_types(functional)
FI: I'm not sure this function is of any use.
expression pragma_private_as_expr_with_args(list)
int fortran_string_compare(string, string)
expression.c
bool entity_f95module_p(entity)
void reset_entity_to_size(void)
bool entity_field_p(entity)
e is the field of a structure
int variable_entity_dimension(entity)
variable_entity_dimension(entity v): returns the dimension of variable v; scalar have dimension 0.
entity FindOrCreateEntity(const char *, const char *)
Problem: A functional global entity may be referenced without parenthesis or CALL keyword in a functi...
normalized NormalizeReference(reference)
entity find_field_in_field_list(entity, list)
To deal with fields declared in different C files.
void add_symbolic_constant_to_declaration(call)
bool type_equal_up_to_typedefs_and_qualifiers_p(type, type)
bool range_equal_p(range, range)
bool is_inferior_basic(basic, basic)
bool is_inferior_basic(basic1, basic2) return true if basic1 is less complex than basic2 ex: int is l...
list constant_expression_supporting_entities(list, set, expression)
C version.
bool entity_common_p(entity)
basic basic_of_expressions(list, bool)
entity find_or_create_scalar_entity(const char *, const char *, tag)
Looks for an entity which should be a scalar of the specified basic.
bool entity_variable_length_array_p(entity)
void print_C_common_layout(FILE *, entity, bool)
string string_remove_trailing_line_feed(string)
Remove trailing line feed if any.
void make_statement_global_stack(void)
bool label_defined_in_current_module_p(entity)
entity make_place_holder_variable(entity)
void local_assign_expression(expression, expression)
replace expression caller by expression field , where field is contained by caller
bool entity_allocatable_p(entity)
allocatable.c
bool expression_range_p(expression)
bool static_area_p(entity)
bool logical_type_p(type)
bool same_type_p(type, type)
Type equality and equivalence.
expression call_to_expression(call)
Build an expression that call a function or procedure.
double float_constant_to_double(entity)
bool EvalNormalized(normalized, int *)
entity float_to_entity(float)
bool entity_empty_label_p(entity)
bool logical_expression_p(expression)
expression replace_expression_content(expression, expression)
Use side effects to move the content of e2, s2 and n2, into e1; s1 and n1 are freed,...
basic basic_of_constant(call)
basic basic_of_constant(call c): returns the basic of the call to a constant.
bool qualifier_equal_p(qualifier, qualifier)
type type_to_returned_type(type)
returns t if t is not a functoional type, and the returned type if t is a functional type.
entity expression_variable(expression)
entity find_ith_parameter(entity, int)
bool variable_in_module_p2(entity, entity)
entity make_integer_constant_entity(_int)
entity make_integer_constant_entity(int c) make entity for integer constant c
list pragma_omp_merge_expr(list, list, language)
merge omp pragma.
string instruction_identification(instruction)
Return a constant string representing symbolically the instruction type.
bool same_struct_entity_p(const entity, const entity)
list expression_to_reference_list(expression, list)
conversion of an expression into a list of references; references are appended to list lr as they are...
parameter MakeComplexParameter(void)
string type_to_string(const type)
type.c
basic basic_of_reference(reference)
Retrieves the basic of a reference in a newly allocated basic object.
bool float_constant_p(entity)
ent can be either a numerical or a symbolic float constant
bool entity_area_p(entity)
basic basic_maximum(basic, basic)
bool user_function_call_p(expression)
bool concrete_array_pointer_type_equal_p(type, type)
Same as above, but resolve typedefs first.
list string_to_entity_list(string, string)
of entity
void print_entities(list)
int CSafeSizeOfArray(entity)
BEGIN_EOLE.
expression polynome_to_expression(Ppolynome)
converts a polynomial to expression
entity make_temporary_pointer_to_array_entity_with_prefix(char *, entity, entity, expression)
list struct_variable_to_fields(entity)
Assume that v is declared as a struct.
struct _newgen_struct_call_ * call
le type des coefficients dans les vecteurs: Value est defini dans le package arithmetique
internally defined structure.
FI: I do not understand why the type is duplicated at the set level.
The structure used to build lists in NewGen.
for intrinsic registration
void * Variable
arithmetique is a requirement for vecteur, but I do not want to inforce it in all pips files....