From c3e48b153136c5786da9aa903e34b551e798b74d Mon Sep 17 00:00:00 2001 From: Michael Beck Date: Mon, 19 Nov 2007 15:40:59 +0000 Subject: [PATCH] moved be_retrieve_dbg_info() into middleend and rename it to ir_retrieve_dbg_info() [r16804] --- include/libfirm/be.h | 15 --------------- include/libfirm/dbginfo.h | 15 +++++++++++++++ ir/be/arm/arm_emitter.c | 3 ++- ir/be/beemitter.c | 3 ++- ir/be/bemain.c | 27 +++++---------------------- ir/be/bespillremat.c | 4 ++-- ir/be/ia32/ia32_emitter.c | 3 ++- ir/debug/dbginfo.c | 17 +++++++++++++++++ 8 files changed, 45 insertions(+), 42 deletions(-) diff --git a/include/libfirm/be.h b/include/libfirm/be.h index 9f39a804e..f7938f496 100644 --- a/include/libfirm/be.h +++ b/include/libfirm/be.h @@ -83,21 +83,6 @@ const backend_params *be_init(void); */ void be_main(FILE *file_handle, const char *cup_name); -/** The type of the debug info retriever function. */ -typedef const char *(*retrieve_dbg_func)(const dbg_info *dbg, unsigned *line); - -/** - * Sets a debug info retriever. - * - * @param func the debug retriever function. - */ -void be_set_debug_retrieve(retrieve_dbg_func func); - -/** - * Retrieve the debug info. - */ -const char *be_retrieve_dbg_info(const dbg_info *dbg, unsigned *line); - typedef struct be_main_env_t be_main_env_t; typedef struct be_options_t be_options_t; diff --git a/include/libfirm/dbginfo.h b/include/libfirm/dbginfo.h index ce8441dfc..44b4c99bf 100644 --- a/include/libfirm/dbginfo.h +++ b/include/libfirm/dbginfo.h @@ -195,6 +195,21 @@ void default_dbg_info_merge_sets(ir_node **new_nodes, int n_new_nodes, /** @} */ +/** The type of the debug info retriever function. */ +typedef const char *(*retrieve_dbg_func)(const dbg_info *dbg, unsigned *line); + +/** + * Sets a debug info retriever. + * + * @param func the debug retriever function. + */ +void ir_set_debug_retrieve(retrieve_dbg_func func); + +/** + * Retrieve the debug info. + */ +const char *ir_retrieve_dbg_info(const dbg_info *dbg, unsigned *line); + #ifdef __cplusplus } #endif diff --git a/ir/be/arm/arm_emitter.c b/ir/be/arm/arm_emitter.c index bc673e2b5..7c81988b5 100644 --- a/ir/be/arm/arm_emitter.c +++ b/ir/be/arm/arm_emitter.c @@ -43,6 +43,7 @@ #include "irargs_t.h" #include "error.h" #include "raw_bitset.h" +#include "dbginfo.h" #include "../besched.h" #include "../beblocksched.h" @@ -994,7 +995,7 @@ static unsigned num = -1; static void arm_emit_dbg(const ir_node *irn) { dbg_info *db = get_irn_dbg_info(irn); unsigned lineno; - const char *fname = be_retrieve_dbg_info(db, &lineno); + const char *fname = ir_retrieve_dbg_info(db, &lineno); if (! cg->birg->main_env->options->stabs_debug_support) return; diff --git a/ir/be/beemitter.c b/ir/be/beemitter.c index 3de970a08..f173d4006 100644 --- a/ir/be/beemitter.c +++ b/ir/be/beemitter.c @@ -32,6 +32,7 @@ #include "irprintf.h" #include "ident.h" #include "tv.h" +#include "dbginfo.h" FILE *emit_file; struct obstack emit_obst; @@ -116,7 +117,7 @@ void be_emit_finish_line_gas(const ir_node *node) be_emit_irprintf("%+F ", node); dbg = get_irn_dbg_info(node); - sourcefile = be_retrieve_dbg_info(dbg, &lineno); + sourcefile = ir_retrieve_dbg_info(dbg, &lineno); if(sourcefile != NULL) { be_emit_string(sourcefile); be_emit_irprintf(":%u", lineno); diff --git a/ir/be/bemain.c b/ir/be/bemain.c index cced20f2b..61e8e09a0 100644 --- a/ir/be/bemain.c +++ b/ir/be/bemain.c @@ -434,12 +434,12 @@ static void be_main_loop(FILE *file_handle, const char *cup_name) or try to read in profile data for current translation unit. */ if (be_options.opt_profile) { - ir_graph *prof_init_irg = be_profile_instrument(prof_filename, profile_default); + ir_graph *prof_init_irg = ir_profile_instrument(prof_filename, profile_default); initialize_birg(&birgs[num_birgs], prof_init_irg, &env); num_birgs++; set_method_img_section(get_irg_entity(prof_init_irg), section_constructors); } else { - be_profile_read(prof_filename); + ir_profile_read(prof_filename); } /* For all graphs */ @@ -535,8 +535,8 @@ static void be_main_loop(FILE *file_handle, const char *cup_name) /** * Create execution frequencies from profile data or estimate some */ - if (be_profile_has_data()) - birg->exec_freq = be_create_execfreqs_from_profile(irg); + if (ir_profile_has_data()) + birg->exec_freq = ir_create_execfreqs_from_profile(irg); else birg->exec_freq = compute_execfreq(irg, 10); @@ -736,7 +736,7 @@ static void be_main_loop(FILE *file_handle, const char *cup_name) #endif /* if 0 */ stat_ev_ctx_pop("bemain_irg"); } - be_profile_free(); + ir_profile_free(); be_done_env(&env); #undef BE_TIMER_POP @@ -802,23 +802,6 @@ void be_main(FILE *file_handle, const char *cup_name) #endif } -/** The debug info retriever function. */ -static retrieve_dbg_func retrieve_dbg = NULL; - -/* Sets a debug info retriever. */ -void be_set_debug_retrieve(retrieve_dbg_func func) { - retrieve_dbg = func; -} - -/* Retrieve the debug info. */ -const char *be_retrieve_dbg_info(const dbg_info *dbg, unsigned *line) { - if (retrieve_dbg) - return retrieve_dbg(dbg, line); - - *line = 0; - return NULL; -} - unsigned be_put_ignore_regs(const be_irg_t *birg, const arch_register_class_t *cls, bitset_t *bs) { if (bs == NULL) diff --git a/ir/be/bespillremat.c b/ir/be/bespillremat.c index be7499b8f..5ab9f4b03 100644 --- a/ir/be/bespillremat.c +++ b/ir/be/bespillremat.c @@ -440,8 +440,8 @@ static double execution_frequency(const spill_ilp_t *si, const ir_node * irn) { #define FUDGE 0.001 - if(be_profile_has_data()) - return ((double)be_profile_get_block_execcount(get_block_const(irn))) + FUDGE; + if(ir_profile_has_data()) + return ((double)ir_profile_get_block_execcount(get_block_const(irn))) + FUDGE; #ifndef EXECFREQ_LOOPDEPH return get_block_execfreq(si->birg->exec_freq, get_block_const(irn)) + FUDGE; diff --git a/ir/be/ia32/ia32_emitter.c b/ir/be/ia32/ia32_emitter.c index 3d5741271..28539aacb 100644 --- a/ir/be/ia32/ia32_emitter.c +++ b/ir/be/ia32/ia32_emitter.c @@ -42,6 +42,7 @@ #include "execfreq.h" #include "error.h" #include "raw_bitset.h" +#include "dbginfo.h" #include "../besched_t.h" #include "../benode_t.h" @@ -1915,7 +1916,7 @@ static void ia32_emit_dbg(const ir_node *node) { dbg_info *db = get_irn_dbg_info(node); unsigned lineno; - const char *fname = be_retrieve_dbg_info(db, &lineno); + const char *fname = ir_retrieve_dbg_info(db, &lineno); if (! cg->birg->main_env->options->stabs_debug_support) return; diff --git a/ir/debug/dbginfo.c b/ir/debug/dbginfo.c index 9ed9658d9..bc82e8f3b 100644 --- a/ir/debug/dbginfo.c +++ b/ir/debug/dbginfo.c @@ -101,3 +101,20 @@ void default_dbg_info_merge_sets(ir_node **new_nodes, int n_new_nodes, set_irn_dbg_info(new_nodes[i], old_db); } } /* default_dbg_info_merge_sets */ + +/** The debug info retriever function. */ +static retrieve_dbg_func retrieve_dbg = NULL; + +/* Sets a debug info retriever. */ +void ir_set_debug_retrieve(retrieve_dbg_func func) { + retrieve_dbg = func; +} + +/* Retrieve the debug info. */ +const char *ir_retrieve_dbg_info(const dbg_info *dbg, unsigned *line) { + if (retrieve_dbg) + return retrieve_dbg(dbg, line); + + *line = 0; + return NULL; +} -- 2.20.1