X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=sidebyside;f=ir%2Fbe%2Fbe_types.h;h=b62bf574744460394e3631c164a6ad47694e379a;hb=342720ec49991f59ea0d32d0751cb66624f4f0cc;hp=f326293bf8b5301fa3cbc7e633a8ce39443b7b06;hpb=44dd4365d606bc60bbbf97200b89c903d788ce45;p=libfirm diff --git a/ir/be/be_types.h b/ir/be/be_types.h index f326293bf..b62bf5747 100644 --- a/ir/be/be_types.h +++ b/ir/be/be_types.h @@ -26,8 +26,9 @@ #ifndef FIRM_BE_TYPES_H #define FIRM_BE_TYPES_H +#include "firm_types.h" + typedef unsigned int sched_timestep_t; -typedef struct be_irg_t be_irg_t; typedef struct arch_register_class_t arch_register_class_t; typedef struct arch_register_req_t arch_register_req_t; @@ -36,8 +37,6 @@ typedef struct arch_flag_t arch_flag_t; typedef struct arch_inverse_t arch_inverse_t; typedef struct arch_isa_if_t arch_isa_if_t; typedef struct arch_env_t arch_env_t; -typedef struct arch_code_generator_t arch_code_generator_t; -typedef struct arch_code_generator_if_t arch_code_generator_if_t; /** * Some flags describing a node in more detail. @@ -46,32 +45,43 @@ typedef enum arch_irn_flags_t { arch_irn_flags_none = 0, /**< Node flags. */ arch_irn_flags_dont_spill = 1U << 0, /**< This must not be spilled. */ arch_irn_flags_rematerializable = 1U << 1, /**< This can be replicated instead of spilled/reloaded. */ - arch_irn_flags_modify_flags = 1U << 2, /**< I modify flags. */ + arch_irn_flags_modify_flags = 1U << 2, /**< I modify flags, used by the + default check_modifies + implementation in beflags */ + arch_irn_flags_simple_jump = 1U << 3, /**< a simple jump instruction */ + arch_irn_flags_not_scheduled = 1U << 4, /**< node must not be scheduled*/ + /** mark node as belonging to the prolog. No spill instructions must appear + * in a schedule before a prolog node */ + arch_irn_flags_prolog = 1U << 5, + /** mark node as belonging to the epilog. No spill instructions must appear + * after an epilog node */ + arch_irn_flags_epilog = 1U << 6, + arch_irn_flags_backend = 1U << 7, /**< begin of custom backend + flags */ } arch_irn_flags_t; +ENUM_BITSET(arch_irn_flags_t) -typedef struct _be_lv_t be_lv_t; -typedef struct _be_lv_info_t be_lv_info_t; - -typedef struct _be_abi_call_flags_bits_t be_abi_call_flags_bits_t; -typedef union _be_abi_call_flags_t be_abi_call_flags_t; -typedef struct _be_abi_callbacks_t be_abi_callbacks_t; -typedef struct _be_abi_call_t be_abi_call_t; -typedef struct _be_abi_irg_t be_abi_irg_t; -typedef struct _be_stack_layout_t be_stack_layout_t; +typedef struct be_lv_t be_lv_t; +typedef struct be_lv_info_t be_lv_info_t; -typedef struct _be_dom_front_info_t be_dom_front_info_t; +typedef struct be_abi_call_flags_bits_t be_abi_call_flags_bits_t; +typedef union be_abi_call_flags_t be_abi_call_flags_t; +typedef struct be_abi_callbacks_t be_abi_callbacks_t; +typedef struct be_abi_call_t be_abi_call_t; +typedef struct be_abi_irg_t be_abi_irg_t; +typedef struct be_stack_layout_t be_stack_layout_t; -typedef struct _list_sched_selector_t list_sched_selector_t; +typedef struct be_dom_front_info_t be_dom_front_info_t; -typedef struct _ilp_sched_selector_t ilp_sched_selector_t; -typedef struct _ilp_sched_selector_if_t ilp_sched_selector_if_t; +typedef struct be_execution_unit_type_t be_execution_unit_type_t; +typedef struct be_execution_unit_t be_execution_unit_t; +typedef struct be_machine_t be_machine_t; -typedef struct _be_execution_unit_type_t be_execution_unit_type_t; -typedef struct _be_execution_unit_t be_execution_unit_t; -typedef struct _be_machine_t be_machine_t; +typedef struct backend_info_t backend_info_t; +typedef struct sched_info_t sched_info_t; +typedef struct reg_out_info_t reg_out_info_t; -typedef struct backend_info_t backend_info_t; -typedef struct sched_info_t sched_info_t; -typedef struct reg_out_info_t reg_out_info_t; +typedef struct be_main_env_t be_main_env_t; +typedef struct be_options_t be_options_t; #endif