X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbe.h;h=f0895c45a9bff01ee8bea1fd24b03d7dd34eb9b8;hb=4ed245f5007168dab7850942a7ee6b6b29a19817;hp=a12f9a5289e0e97d9e106f3129a3868ec4055905;hpb=85e2d40e218eafce8423fcaee137ed78e2dcd838;p=libfirm diff --git a/ir/be/be.h b/ir/be/be.h index a12f9a528..f0895c45a 100644 --- a/ir/be/be.h +++ b/ir/be/be.h @@ -1,7 +1,36 @@ - #ifndef _BE_MAIN_H #define _BE_MAIN_H +#include +#include "irarch.h" +#include "archop.h" +#include "lower_dw.h" +#include "dbginfo.h" + +#define LC_STOP_AND_RESET_TIMER(timer) do { lc_timer_stop(timer); lc_timer_reset(timer); } while(0) + +/** + * This structure contains parameters that should be + * propagated to the libFirm parameter set. + */ +typedef struct backend_params { + /** Additional opcodes settings. */ + const arch_ops_info *arch_op_settings; + + /** Settings for architecture dependent optimizations */ + const arch_dep_params_t *dep_param; + + /** if set, the backend cannot handle DWORD access */ + unsigned do_dw_lowering; + + /** the architecture specific intrinsic function creator */ + create_intrinsic_fkt *arch_create_intrinsic_fkt; + + /** the context parameter for the create intrinsic function */ + void *create_intrinsic_ctx; + +} backend_params; + /** * Register the Firm backend command line options. */ @@ -14,8 +43,11 @@ int be_parse_arg(const char *arg); /** * Initialize the Firm backend. Must be run BEFORE init_firm()! + * + * @return libFirm configuration parameters for the selected + * backend */ -void be_init(void); +const backend_params *be_init(void); /** * Main interface to the frontend.