3 * File name: ir/ir/irgraph.c
4 * Purpose: Flags to control optimizations, inline implementation.
8 * Copyright: (c) 1998-2004 Universität Karlsruhe
9 * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
15 * Inline implementation of Optimization flags.
17 * @author Michael Beck
25 * current libFIRM optimizations
28 #define E_FLAG(name, value, def) irf_##name = (1 << value),
29 #define I_FLAG(name, value, def) irf_##name = (1 << value),
31 #include "irflag_t.def"
37 extern optimization_state_t libFIRM_opt;
38 extern optimization_state_t libFIRM_verb;
40 extern int firm_verbosity_level;
42 /* generate the getter functions for external access */
43 #define E_FLAG(name, value, def) \
44 static INLINE int _get_opt_##name(void) { \
45 return libFIRM_opt & irf_##name; \
47 static INLINE int get_opt_##name##_verbose(void) { \
48 return libFIRM_verb & irf_##name; \
51 /* generate the getter functions for internal access */
52 #define I_FLAG(name, value, def) \
53 static INLINE int get_opt_##name(void) { \
54 return libFIRM_opt & irf_##name; \
56 static INLINE int get_opt_##name##_verbose(void) { \
57 return libFIRM_verb & irf_##name; \
60 #include "irflag_t.def"
66 static INLINE int _get_firm_verbosity (void) {
67 return firm_verbosity_level;
70 static INLINE int _get_optimize (void) {
71 return get_opt_optimize();
74 #define get_optimize() _get_optimize()
75 #define get_opt_cse() _get_opt_cse()
76 #define get_firm_verbosity() _get_firm_verbosity()
77 #define get_opt_dyn_meth_dispatch() _get_opt_dyn_meth_dispatch()
78 #define get_opt_optimize_class_casts() _get_opt_optimize_class_casts()
79 #define get_opt_suppress_downcast_optimization() _get_opt_suppress_downcast_optimization()
81 #endif /* _IRFLAG_T_H_ */