X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firopt_dbg.h;h=07828796cb28f431f439a15b0f46ad5cc75df7e5;hb=e5bab593a4048c0a320d7794fb2cb17697da8389;hp=9f64a7c5129eecdeca4b5525935134d4cb9682cd;hpb=f283b8916eda69293a868706304bd8c9e43b5075;p=libfirm diff --git a/ir/ir/iropt_dbg.h b/ir/ir/iropt_dbg.h index 9f64a7c51..07828796c 100644 --- a/ir/ir/iropt_dbg.h +++ b/ir/ir/iropt_dbg.h @@ -16,6 +16,20 @@ #define SIZ(x) sizeof(x)/sizeof((x)[0]) + +/** + * Merge the debug info due to dead code elimination + */ +#define DBG_OPT_DEAD \ + do { \ + ir_node *ons[2]; \ + ons[0] = oldn; \ + ons[1] = get_Block_cfgpred(oldn, 0); \ + stat_merge_nodes(&n, 1, ons, SIZ(ons), STAT_OPT_STG); \ + __dbg_info_merge_sets(&n, 1, ons, SIZ(ons), dbg_dead_code); \ + } while(0) + + /** * Merge the debug info due to a straightening optimization */ @@ -24,6 +38,7 @@ ir_node *ons[2]; \ ons[0] = oldn; \ ons[1] = get_Block_cfgpred(oldn, 0); \ + stat_merge_nodes(&n, 1, ons, SIZ(ons), STAT_OPT_STG); \ __dbg_info_merge_sets(&n, 1, ons, SIZ(ons), dbg_straightening); \ } while(0) @@ -37,27 +52,36 @@ ons[1] = a; \ ons[2] = b; \ ons[3] = get_Proj_pred(a); \ + stat_merge_nodes(&n, 1, ons, SIZ(ons), STAT_OPT_IFSIM); \ __dbg_info_merge_sets(&n, 1, ons, SIZ(ons), dbg_if_simplification); \ } while(0) /** * Merge the debug info due to an algebraic_simplification */ +#define DBG_OPT_ALGSIM0 \ + do { \ + stat_merge_nodes(&n, 1, &oldn, 1, STAT_OPT_CONST_EVAL); \ + __dbg_info_merge_pair(n, oldn, dbg_const_eval); \ + } while(0) + #define DBG_OPT_ALGSIM1 \ do { \ ir_node *ons[3]; \ ons[0] = oldn; \ ons[1] = a; \ ons[2] = b; \ + stat_merge_nodes(&n, 1, ons, SIZ(ons), STAT_OPT_ALGSIM); \ __dbg_info_merge_sets(&n, 1, ons, SIZ(ons), dbg_algebraic_simplification); \ } while(0) #define DBG_OPT_ALGSIM2 \ - do { \ + do { \ ir_node *ons[3]; \ ons[0] = oldn; \ - ons[1] = get_unop_op(n); \ + ons[1] = get_unop_op(oldn); \ ons[2] = n; \ + stat_merge_nodes(&n, 1, ons, SIZ(ons), STAT_OPT_ALGSIM); \ __dbg_info_merge_sets(&n, 1, ons, SIZ(ons), dbg_algebraic_simplification); \ } while(0) @@ -66,6 +90,7 @@ ir_node *ons[2]; \ ons[0] = oldn; \ ons[1] = a; \ + stat_merge_nodes(&n, 1, ons, SIZ(ons), STAT_OPT_ALGSIM); \ __dbg_info_merge_sets(&n, 1, ons, SIZ(ons), dbg_algebraic_simplification); \ } while(0) @@ -74,7 +99,8 @@ ir_node *ons[2]; \ ons[0] = oldn; \ ons[1] = first_val; \ - __dbg_info_merge_sets(&n, 1, ons, SIZ(ons), dbg_opt_ssa); \ + stat_merge_nodes(&n, 1, ons, SIZ(ons), STAT_OPT_PHI); \ + __dbg_info_merge_sets(&n, 1, ons, SIZ(ons), dbg_opt_ssa); \ } while(0) @@ -83,6 +109,7 @@ ir_node *ons[2]; \ ons[0] = oldn; \ ons[1] = n; \ + stat_merge_nodes(&n, 1, ons, SIZ(ons), STAT_OPT_WAW); \ __dbg_info_merge_sets(&n, 1, ons, SIZ(ons), dbg_write_after_write);\ } while(0) @@ -91,15 +118,26 @@ ir_node *ons[2]; \ ons[0] = oldn; \ ons[1] = c; \ + stat_merge_nodes(&n, 1, ons, SIZ(ons), STAT_OPT_WAR); \ __dbg_info_merge_sets(&c, 1, ons, SIZ(ons), dbg_write_after_read); \ } while(0) +#define DBG_OPT_RAW \ + do { \ + ir_node *ons[2]; \ + ons[0] = oldn; \ + ons[1] = c; \ + stat_merge_nodes(&n, 1, ons, SIZ(ons), STAT_OPT_RAW); \ + __dbg_info_merge_sets(&c, 1, ons, SIZ(ons), dbg_read_after_write); \ + } while(0) + #define DBG_OPT_TUPLE \ do { \ ir_node *ons[3]; \ ons[0] = oldn; \ ons[1] = a; \ ons[2] = n; \ + stat_merge_nodes(&n, 1, ons, SIZ(ons), STAT_OPT_TUPLE); \ __dbg_info_merge_sets(&n, 1, ons, SIZ(ons), dbg_opt_auxnode); \ } while(0) @@ -108,5 +146,6 @@ ir_node *ons[2]; \ ons[0] = oldn; \ ons[1] = n; \ + stat_merge_nodes(&n, 1, ons, SIZ(ons), STAT_OPT_ID); \ __dbg_info_merge_sets(&n, 1, ons, SIZ(ons), dbg_opt_auxnode); \ } while(0)