X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbe_t.h;h=320b013fa36e996cd7ea089d68c11d091384bd80;hb=4ed245f5007168dab7850942a7ee6b6b29a19817;hp=dea956c0c2fcad010c69f738f80e03073d7105bc;hpb=7015c9ba23a61991d846b318b607025e8081bdfb;p=libfirm diff --git a/ir/be/be_t.h b/ir/be/be_t.h index dea956c0c..320b013fa 100644 --- a/ir/be/be_t.h +++ b/ir/be/be_t.h @@ -7,20 +7,65 @@ #ifndef _BE_T_H #define _BE_T_H +#include "firm_types.h" #include "obst.h" #include "debug.h" -typedef struct _be_main_env_t { +#include "be.h" +#include "bearch.h" +#include "beirgmod.h" + +#define DUMP_NONE 0 +#define DUMP_INITIAL (1 << 0) +#define DUMP_ABI (1 << 1) +#define DUMP_SCHED (1 << 2) +#define DUMP_PREPARED (1 << 3) +#define DUMP_RA (1 << 4) +#define DUMP_FINAL (1 << 5) +#define DUMP_BE (1 << 6) + +enum { + BE_TIME_OFF, + BE_TIME_ON +}; + +enum { + BE_VRFY_OFF, + BE_VRFY_WARN, + BE_VRFY_ASSERT +}; + +enum { + BE_SCHED_SELECT_ISA = 0, + BE_SCHED_SELECT_MUCHNIK = 1, + BE_SCHED_SELECT_HEUR = 2, + BE_SCHED_SELECT_HMUCHNIK = 3 +}; + +struct _be_options_t { + int dump_flags; + int timing; + int sched_select; + int mris; + char ilp_server[128]; + char ilp_solver[128]; +}; + +struct _be_main_env_t { struct obstack obst; struct _be_node_factory_t *node_factory; struct _arch_env_t *arch_env; - firm_dbg_module_t *dbg; -} be_main_env_t; + struct _be_options_t *options; + struct _arch_code_generator_t *cg; + struct _arch_irn_handler_t *phi_handler; + DEBUG_ONLY(firm_dbg_module_t *dbg;) +}; -typedef struct _be_main_session_env_t { - const be_main_env_t *main_env; - ir_graph *irg; - struct _dom_front_info_t *dom_front; -} be_main_session_env_t; +struct _be_irg_t { + ir_graph *irg; + struct _be_main_env_t *main_env; + struct _be_abi_irg_t *abi; + struct _arch_code_generator_t *cg; +}; -#endif +#endif /* _BE_T_H */