X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fopt%2Firopt_dbg.h;h=7068661a83de3e49721f596765d7c2c6fb57b741;hb=b7cff2afb7eb19817425b554b1786509f67435f1;hp=9157301f50c8b2bac689739d5054f0fce77b2b9a;hpb=91bc1cda07fcc6539380f96109254c20976cfd6f;p=libfirm diff --git a/ir/opt/iropt_dbg.h b/ir/opt/iropt_dbg.h index 9157301f5..7068661a8 100644 --- a/ir/opt/iropt_dbg.h +++ b/ir/opt/iropt_dbg.h @@ -21,7 +21,6 @@ * @file * @brief Debug macros used in iropt. * @author Goetz Lindenmaier, Michael Beck - * @version $Id$ */ #ifndef FIRM_IR_IROPT_DBG_H #define FIRM_IR_IROPT_DBG_H @@ -29,10 +28,7 @@ #include "dbginfo_t.h" #include "irhooks.h" #include "firmstat.h" - -/* This file contains makros that generate the calls to - update the debug information after a transformation. */ -#define SIZ(x) sizeof(x)/sizeof(x[0]) +#include "util.h" /** * Merge the debug info due to dead block elimination. @@ -54,13 +50,13 @@ * @param oldn the old block * @param n the new block the merges with oldn */ -#define DBG_OPT_STG(oldn, n) \ - do { \ - ir_node *ons[2]; \ - ons[0] = oldn; \ - ons[1] = get_Block_cfgpred(oldn, 0); \ - hook_merge_nodes(&n, 1, ons, SIZ(ons), HOOK_OPT_STG); \ - __dbg_info_merge_sets(&n, 1, ons, SIZ(ons), dbg_straightening); \ +#define DBG_OPT_STG(oldn, n) \ + do { \ + ir_node *ons[2]; \ + ons[0] = oldn; \ + ons[1] = get_Block_cfgpred(oldn, 0); \ + hook_merge_nodes(&n, 1, ons, ARRAY_SIZE(ons), HOOK_OPT_STG); \ + __dbg_info_merge_sets(&n, 1, ons, ARRAY_SIZE(ons), dbg_straightening); \ } while(0) /** @@ -71,15 +67,15 @@ * @param proj2 the second ProjX predecessor * @param n the new Block */ -#define DBG_OPT_IFSIM1(oldn, proj1, proj2, n) \ - do { \ - ir_node *ons[4]; \ - ons[0] = oldn; \ - ons[1] = proj1; \ - ons[2] = proj2; \ - ons[3] = get_Proj_pred(proj1); \ - hook_merge_nodes(&n, 1, ons, SIZ(ons), HOOK_OPT_IFSIM); \ - __dbg_info_merge_sets(&n, 1, ons, SIZ(ons), dbg_if_simplification); \ +#define DBG_OPT_IFSIM1(oldn, proj1, proj2, n) \ + do { \ + ir_node *ons[4]; \ + ons[0] = oldn; \ + ons[1] = proj1; \ + ons[2] = proj2; \ + ons[3] = get_Proj_pred(proj1); \ + hook_merge_nodes(&n, 1, ons, ARRAY_SIZE(ons), HOOK_OPT_IFSIM); \ + __dbg_info_merge_sets(&n, 1, ons, ARRAY_SIZE(ons), dbg_if_simplification); \ } while(0) /** @@ -115,7 +111,7 @@ */ #define DBG_OPT_ALGSIM0(oldn, n, flag) \ do { \ - hook_merge_nodes(&n, 1, &oldn, 1, flag); \ + hook_merge_nodes(&n, 1, &oldn, 1, (hook_opt_kind)flag); \ __dbg_info_merge_pair(n, oldn, dbg_algebraic_simplification); \ } while(0) @@ -134,8 +130,8 @@ ons[0] = oldn; \ ons[1] = a; \ ons[2] = b; \ - hook_merge_nodes(&n, 1, ons, SIZ(ons), flag); \ - __dbg_info_merge_sets(&n, 1, ons, SIZ(ons), dbg_algebraic_simplification); \ + hook_merge_nodes(&n, 1, ons, ARRAY_SIZE(ons), (hook_opt_kind)flag); \ + __dbg_info_merge_sets(&n, 1, ons, ARRAY_SIZE(ons), dbg_algebraic_simplification); \ } while(0) /** @@ -152,8 +148,8 @@ ons[0] = oldn; \ ons[1] = pred; \ ons[2] = n; \ - hook_merge_nodes(&n, 1, ons, SIZ(ons), flag); \ - __dbg_info_merge_sets(&n, 1, ons, SIZ(ons), dbg_algebraic_simplification); \ + hook_merge_nodes(&n, 1, ons, ARRAY_SIZE(ons), (hook_opt_kind)flag); \ + __dbg_info_merge_sets(&n, 1, ons, ARRAY_SIZE(ons), dbg_algebraic_simplification); \ } while(0) /** @@ -164,8 +160,8 @@ ir_node *ons[2]; \ ons[0] = oldn; \ ons[1] = a; \ - hook_merge_nodes(&n, 1, ons, SIZ(ons), flag); \ - __dbg_info_merge_sets(&n, 1, ons, SIZ(ons), dbg_algebraic_simplification); \ + hook_merge_nodes(&n, 1, ons, ARRAY_SIZE(ons), flag); \ + __dbg_info_merge_sets(&n, 1, ons, ARRAY_SIZE(ons), dbg_algebraic_simplification); \ } while(0) /** @@ -203,13 +199,13 @@ * @param oldst the old store that will be removed * @param st the other store that overwrites oldst */ -#define DBG_OPT_WAW(oldst, st) \ - do { \ - ir_node *ons[2]; \ - ons[0] = oldst; \ - ons[1] = st; \ - hook_merge_nodes(&st, 1, ons, SIZ(ons), HOOK_OPT_WAW); \ - __dbg_info_merge_sets(&st, 1, ons, SIZ(ons), dbg_write_after_write); \ +#define DBG_OPT_WAW(oldst, st) \ + do { \ + ir_node *ons[2]; \ + ons[0] = oldst; \ + ons[1] = st; \ + hook_merge_nodes(&st, 1, ons, ARRAY_SIZE(ons), HOOK_OPT_WAW); \ + __dbg_info_merge_sets(&st, 1, ons, ARRAY_SIZE(ons), dbg_write_after_write); \ } while(0) /** @@ -219,13 +215,13 @@ * @param store the store that will be removed * @param load the load that produces the value that store will write back */ -#define DBG_OPT_WAR(store, load) \ - do { \ - ir_node *ons[2]; \ - ons[0] = store; \ - ons[1] = load; \ - hook_merge_nodes(&load, 1, ons, SIZ(ons), HOOK_OPT_WAR); \ - __dbg_info_merge_sets(&load, 1, ons, SIZ(ons), dbg_write_after_read); \ +#define DBG_OPT_WAR(store, load) \ + do { \ + ir_node *ons[2]; \ + ons[0] = store; \ + ons[1] = load; \ + hook_merge_nodes(&load, 1, ons, ARRAY_SIZE(ons), HOOK_OPT_WAR); \ + __dbg_info_merge_sets(&load, 1, ons, ARRAY_SIZE(ons), dbg_write_after_read); \ } while(0) /** @@ -235,13 +231,13 @@ * @param load the load that will be replaced * @param value the value that will replace the load */ -#define DBG_OPT_RAW(load, value) \ - do { \ - ir_node *ons[2]; \ - ons[0] = load; \ - ons[1] = value; \ - hook_merge_nodes(&value, 1, ons, SIZ(ons), HOOK_OPT_RAW); \ - __dbg_info_merge_sets(&value, 1, ons, SIZ(ons), dbg_read_after_write); \ +#define DBG_OPT_RAW(load, value) \ + do { \ + ir_node *ons[2]; \ + ons[0] = load; \ + ons[1] = value; \ + hook_merge_nodes(&value, 1, ons, ARRAY_SIZE(ons), HOOK_OPT_RAW); \ + __dbg_info_merge_sets(&value, 1, ons, ARRAY_SIZE(ons), dbg_read_after_write); \ } while(0) /** @@ -251,13 +247,13 @@ * @param oldld the old load that can be replaced * @param ld the load that produces the same values */ -#define DBG_OPT_RAR(oldld, ld) \ - do { \ - ir_node *ons[2]; \ - ons[0] = oldld; \ - ons[1] = ld; \ - hook_merge_nodes(&ld, 1, ons, SIZ(ons), HOOK_OPT_RAR); \ - __dbg_info_merge_sets(&ld, 1, ons, SIZ(ons), dbg_read_after_read); \ +#define DBG_OPT_RAR(oldld, ld) \ + do { \ + ir_node *ons[2]; \ + ons[0] = oldld; \ + ons[1] = ld; \ + hook_merge_nodes(&ld, 1, ons, ARRAY_SIZE(ons), HOOK_OPT_RAR); \ + __dbg_info_merge_sets(&ld, 1, ons, ARRAY_SIZE(ons), dbg_read_after_read); \ } while(0) /** @@ -273,8 +269,8 @@ ir_node *ons[2]; \ ons[0] = ld; \ ons[1] = c; \ - hook_merge_nodes(&c, 1, ons, SIZ(ons), HOOK_OPT_RC); \ - __dbg_info_merge_sets(&ld, 1, ons, SIZ(ons), dbg_read_a_const); \ + hook_merge_nodes(&c, 1, ons, ARRAY_SIZE(ons), HOOK_OPT_RC); \ + __dbg_info_merge_sets(&ld, 1, ons, ARRAY_SIZE(ons), dbg_read_a_const); \ } while(0) /** @@ -285,14 +281,14 @@ * @param tuple the Tuple node * @param n the Proj(Tuple) value */ -#define DBG_OPT_TUPLE(proj, tuple, n) \ - do { \ - ir_node *ons[3]; \ - ons[0] = proj; \ - ons[1] = tuple; \ - ons[2] = n; \ - hook_merge_nodes(&n, 1, ons, SIZ(ons), HOOK_OPT_TUPLE); \ - __dbg_info_merge_sets(&n, 1, ons, SIZ(ons), dbg_opt_auxnode); \ +#define DBG_OPT_TUPLE(proj, tuple, n) \ + do { \ + ir_node *ons[3]; \ + ons[0] = proj; \ + ons[1] = tuple; \ + ons[2] = n; \ + hook_merge_nodes(&n, 1, ons, ARRAY_SIZE(ons), HOOK_OPT_TUPLE); \ + __dbg_info_merge_sets(&n, 1, ons, ARRAY_SIZE(ons), dbg_opt_auxnode); \ } while(0) /** @@ -302,13 +298,13 @@ * @param id the Id node * @param n the predecessor */ -#define DBG_OPT_ID(id, n) \ - do { \ - ir_node *ons[2]; \ - ons[0] = id; \ - ons[1] = n; \ - hook_merge_nodes(&n, 1, ons, SIZ(ons), HOOK_OPT_ID); \ - __dbg_info_merge_sets(&n, 1, ons, SIZ(ons), dbg_opt_auxnode); \ +#define DBG_OPT_ID(id, n) \ + do { \ + ir_node *ons[2]; \ + ons[0] = id; \ + ons[1] = n; \ + hook_merge_nodes(&n, 1, ons, ARRAY_SIZE(ons), HOOK_OPT_ID); \ + __dbg_info_merge_sets(&n, 1, ons, ARRAY_SIZE(ons), dbg_opt_auxnode); \ } while(0) /** @@ -317,13 +313,13 @@ * @param oldn the old node * @param n the node that replaces oldn */ -#define DBG_OPT_CSE(oldn, n) \ - do { \ - ir_node *ons[2]; \ - ons[0] = oldn; \ - ons[1] = n; \ - hook_merge_nodes(&n, 1, ons, SIZ(ons), HOOK_OPT_CSE); \ - __dbg_info_merge_sets(&n, 1, ons, SIZ(ons), dbg_opt_cse); \ +#define DBG_OPT_CSE(oldn, n) \ + do { \ + ir_node *ons[2]; \ + ons[0] = oldn; \ + ons[1] = n; \ + hook_merge_nodes(&n, 1, ons, ARRAY_SIZE(ons), HOOK_OPT_CSE); \ + __dbg_info_merge_sets(&n, 1, ons, ARRAY_SIZE(ons), dbg_opt_cse); \ } while(0) /** @@ -333,14 +329,14 @@ * @param sel the Sel node that will be replaced. * @param c the constant node that replaces sel */ -#define DBG_OPT_POLY(sel, c) \ - do { \ - ir_node *ons[3]; \ - ons[0] = sel; \ - ons[1] = skip_Proj(get_Sel_ptr(sel)); \ - ons[2] = c; \ - hook_merge_nodes(&c, 1, ons, SIZ(ons), HOOK_OPT_POLY_CALL); \ - __dbg_info_merge_sets(&c, 1, ons, SIZ(ons), dbg_rem_poly_call); \ +#define DBG_OPT_POLY(sel, c) \ + do { \ + ir_node *ons[3]; \ + ons[0] = sel; \ + ons[1] = skip_Proj(get_Sel_ptr(sel)); \ + ons[2] = c; \ + hook_merge_nodes(&c, 1, ons, ARRAY_SIZE(ons), HOOK_OPT_POLY_CALL); \ + __dbg_info_merge_sets(&c, 1, ons, ARRAY_SIZE(ons), dbg_rem_poly_call); \ } while(0) /** @@ -385,7 +381,7 @@ */ #define DBG_EVAL_CONFIRM(n) \ do { \ - hook_merge_nodes(NULL, 0, &n, 1, HOOK_OPT_CONFIRM_E); \ + hook_merge_nodes(NULL, 0, (ir_node**)&n, 1, HOOK_OPT_CONFIRM_E); \ } while(0) /** @@ -395,10 +391,10 @@ * @param n the new node replacing oldn * @param flag firm statistics option */ -#define DBG_OPT_GVN_PRE(oldn, n, flag) \ - do { \ - hook_merge_nodes(&n, 1, &oldn, 1, flag); \ - __dbg_info_merge_pair(n, oldn, dbg_gvn_pre); \ +#define DBG_OPT_GVN_PRE(oldn, n, flag) \ + do { \ + hook_merge_nodes(&n, 1, &oldn, 1, (hook_opt_kind)flag); \ + __dbg_info_merge_pair(n, oldn, dbg_gvn_pre); \ } while(0) /** @@ -408,10 +404,10 @@ * @param n the new node replacing oldn * @param flag firm statistics option */ -#define DBG_OPT_COMBO(oldn, n, flag) \ - do { \ - hook_merge_nodes(&n, 1, &oldn, 1, flag); \ - __dbg_info_merge_pair(n, oldn, dbg_combo); \ +#define DBG_OPT_COMBO(oldn, n, flag) \ + do { \ + hook_merge_nodes(&n, 1, &oldn, 1, (hook_opt_kind)flag); \ + __dbg_info_merge_pair(n, oldn, dbg_combo); \ } while(0) /** @@ -422,7 +418,7 @@ */ #define DBG_OPT_JUMPTHREADING(oldn, n) \ do { \ - hook_merge_nodes(&n, 1, &oldn, 1, FS_OPT_JUMPTHREADING); \ + hook_merge_nodes(&n, 1, &oldn, 1, (hook_opt_kind)FS_OPT_JUMPTHREADING); \ __dbg_info_merge_pair(n, oldn, dbg_jumpthreading); \ } while(0)