X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbe_t.h;h=4a56e7dc28d36e25fc675f6928c3fb5637804a66;hb=3db23eee84cbabb3f399f1ca820948114a9c837c;hp=db6cced6322b88ee2351cfddc21e1da031641f1c;hpb=ce6161a7e42a48f7422b7babcc64d8ace18e2687;p=libfirm diff --git a/ir/be/be_t.h b/ir/be/be_t.h index db6cced63..4a56e7dc2 100644 --- a/ir/be/be_t.h +++ b/ir/be/be_t.h @@ -21,20 +21,16 @@ * @file * @brief Internal backend global data structures. * @author Sebastian Hack - * @version $Id$ */ #ifndef FIRM_BE_BE_T_H #define FIRM_BE_BE_T_H -#include "firm_types.h" -#include "obst.h" -#include "debug.h" -#include "bitset.h" -#include "timing.h" -#include "pmap.h" - #include "be.h" #include "be_types.h" +#include "bitset.h" +#include "firm_types.h" +#include "pmap.h" +#include "timing.h" enum { DUMP_NONE = 0, @@ -60,23 +56,23 @@ enum { /** Backend options */ struct be_options_t { - unsigned dump_flags; /**< backend dumping flags */ - int timing; /**< time the backend phases */ - int opt_profile; /**< instrument code for profiling */ - int omit_fp; /**< try to omit the frame pointer */ - int pic; /**< create position independent code */ - int gprof; /**< create gprof compatible profiling code */ - int verify_option; /**< backend verify option */ - char target_os[128]; /**< target operating system name */ - char ilp_server[128]; /**< the ilp server name */ - char ilp_solver[128]; /**< the ilp solver name */ - int statev; /**< enable stat event dumping */ - char filtev[128]; /**< filter mask for stat events (regex is supported) */ + unsigned dump_flags; /**< backend dumping flags */ + int timing; /**< time the backend phases */ + int opt_profile_generate; /**< instrument code for profiling */ + int opt_profile_use; /**< use existing profile data */ + int omit_fp; /**< try to omit the frame pointer */ + int pic; /**< create position independent code */ + int verify_option; /**< backend verify option */ + char ilp_server[128]; /**< the ilp server name */ + char ilp_solver[128]; /**< the ilp solver name */ + int statev; /**< enable stat event dumping */ + char filtev[128]; /**< filter mask for stat events */ + int verbose_asm; /**< dump verbose assembler */ }; +extern be_options_t be_options; struct be_main_env_t { arch_env_t *arch_env; - be_options_t *options; /**< backend options */ const char *cup_name; /**< name of the compilation unit */ pmap *ent_trampoline_map; /**< A map containing PIC trampolines for methods. */ ir_type *pic_trampolines_type; /**< Class type containing all trampolines */ @@ -121,7 +117,6 @@ typedef enum { T_LIVE, T_EXECFREQ, T_SSA_CONSTR, - T_RA_PROLOG, T_RA_EPILOG, T_RA_CONSTR, T_RA_SPILL, @@ -138,26 +133,18 @@ extern ir_timer_t *be_timers[T_LAST+1]; static inline void be_timer_push(be_timer_id_t id) { - int res; + assert(id <= T_LAST); if (!be_timing) return; - - assert(id <= T_LAST); - res = ir_timer_push(be_timers[id]); - (void) res; - assert(res && "Timer already on stack, cannot be pushed twice."); + ir_timer_push(be_timers[id]); } static inline void be_timer_pop(be_timer_id_t id) { - ir_timer_t *tmp; + assert(id <= T_LAST); if (!be_timing) return; - - tmp = ir_timer_pop(); - (void) tmp; - (void) id; - assert(tmp == be_timers[id] && "Attempt to pop wrong timer."); + ir_timer_pop(be_timers[id]); } #endif