X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fsel-sched-dump.c;h=dbf1c34fccc1751cb9be47132696410aab76d839;hb=ab5fa7d3d944ed4a8095a2645a615297382269cd;hp=7d56d3ba078eee01648c1031217ac5155bfee602;hpb=e1ab78748da58d43da7f08cc64b9de80577f470e;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/sel-sched-dump.c b/gcc/sel-sched-dump.c index 7d56d3ba078..dbf1c34fccc 100644 --- a/gcc/sel-sched-dump.c +++ b/gcc/sel-sched-dump.c @@ -34,6 +34,9 @@ along with GCC; see the file COPYING3. If not see #include "output.h" #include "basic-block.h" #include "cselib.h" +#include "target.h" + +#ifdef INSN_SCHEDULING #include "sel-sched-ir.h" #include "sel-sched-dump.h" @@ -72,7 +75,7 @@ static void switch_dump (FILE *to) { gcc_assert (saved_sched_dump == NULL); - + saved_sched_dump = sched_dump; sched_dump = to; } @@ -86,7 +89,7 @@ restore_dump (void) } -/* Functions for dumping instructions, av sets, and exprs. */ +/* Functions for dumping instructions, av sets, and exprs. */ /* Default flags for dumping insns. */ static int dump_insn_rtx_flags = DUMP_INSN_RTX_PATTERN; @@ -216,7 +219,7 @@ debug_vinsn (vinsn_t vi) { switch_dump (stderr); dump_vinsn_1 (vi, debug_vinsn_flags); - sel_print ("\n"); + sel_print ("\n"); restore_dump (); } @@ -278,7 +281,7 @@ dump_expr_1 (expr_t expr, int flags) if (orig_bb != 0) sel_print ("orig_bb:%d;", orig_bb); } - + if (EXPR_TARGET_AVAILABLE (expr) < 1) sel_print ("target:%d;", EXPR_TARGET_AVAILABLE (expr)); sel_print ("]"); @@ -365,10 +368,10 @@ dump_av_set (av_set_t av) { av_set_iterator i; expr_t expr; - + if (!sched_dump_to_dot_p) sel_print ("{"); - + FOR_EACH_EXPR (expr, i, av) { dump_expr (expr); @@ -377,7 +380,7 @@ dump_av_set (av_set_t av) else sel_print ("\n"); } - + if (!sched_dump_to_dot_p) sel_print ("}"); } @@ -396,7 +399,7 @@ dump_lv_set (regset lv) unsigned i; reg_set_iterator rsi; int count = 0; - + EXECUTE_IF_SET_IN_REG_SET (lv, 0, i, rsi) { sel_print (" %d", i); @@ -405,9 +408,9 @@ dump_lv_set (regset lv) sel_print (" [%s]", reg_names[i]); ++count; } - + ++count; - + if (sched_dump_to_dot_p && count == 12) { count = 0; @@ -415,7 +418,7 @@ dump_lv_set (regset lv) } } } - + sel_print ("}\n"); } @@ -437,7 +440,7 @@ dump_blist (blist_t bnds) for (; bnds; bnds = BLIST_NEXT (bnds)) { bnd_t bnd = BLIST_BND (bnds); - + sel_print ("[to: %d; ptr: ", INSN_UID (BND_TO (bnd))); dump_ilist (BND_PTR (bnd)); sel_print ("] "); @@ -462,7 +465,7 @@ dump_insn_vector (rtx_vec_t succs) { int i; rtx succ; - + for (i = 0; VEC_iterate (rtx, succs, i, succ); i++) if (succ) dump_insn (succ); @@ -498,16 +501,16 @@ sel_print_insn (const_rtx insn, int aligned ATTRIBUTE_UNUSED) { static char buf[80]; - /* '+' before insn means it is a new cycle start and it's not been + /* '+' before insn means it is a new cycle start and it's not been scheduled yet. '>' - has been scheduled. */ if (s_i_d && INSN_LUID (insn) > 0) if (GET_MODE (insn) == TImode) - sprintf (buf, "%s %4d", - INSN_SCHED_TIMES (insn) > 0 ? "> " : "< ", + sprintf (buf, "%s %4d", + INSN_SCHED_TIMES (insn) > 0 ? "> " : "< ", INSN_UID (insn)); else - sprintf (buf, "%s %4d", - INSN_SCHED_TIMES (insn) > 0 ? "! " : " ", + sprintf (buf, "%s %4d", + INSN_SCHED_TIMES (insn) > 0 ? "! " : " ", INSN_UID (insn)); else if (GET_MODE (insn) == TImode) @@ -535,7 +538,7 @@ replace_str_in_buf (char *buf, const char *str1, const char *str2) do { p = strstr (p, str1); - if (p) + if (p) { char *p1 = p + str1_len; /* Copy the rest of buf and '\0'. */ @@ -553,7 +556,7 @@ replace_str_in_buf (char *buf, const char *str1, const char *str2) /* Copy str2. */ for (i = 0; i < str2_len; i++) p[i] = str2[i]; - + p += str2_len; buf_len += diff; } @@ -568,7 +571,7 @@ sel_prepare_string_for_dot_label (char *buf) { static char specials_from[7][2] = { "<", ">", "{", "|", "}", "\"", "\n" }; - static char specials_to[7][3] = { "\\<", "\\>", "\\{", "\\|", "\\}", + static char specials_to[7][3] = { "\\<", "\\>", "\\{", "\\|", "\\}", "\\\"", "\\l" }; unsigned i; @@ -798,7 +801,7 @@ sel_dump_cfg_2 (FILE *f, int flags) sched_dump_to_dot_p = false; } -/* Dump a cfg region to the file specified by TAG honoring flags. +/* Dump a cfg region to the file specified by TAG honoring flags. The file is created by the function. */ static void sel_dump_cfg_1 (const char *tag, int flags) @@ -929,10 +932,13 @@ rtx debug_mem_addr_value (rtx x) { rtx t, addr; + enum machine_mode address_mode; gcc_assert (MEM_P (x)); + address_mode = targetm.addr_space.address_mode (MEM_ADDR_SPACE (x)); + t = shallow_copy_rtx (x); - if (cselib_lookup (XEXP (t, 0), Pmode, 0)) + if (cselib_lookup (XEXP (t, 0), address_mode, 0)) XEXP (t, 0) = cselib_subst_to_values (XEXP (t, 0)); t = canon_rtx (t); @@ -941,5 +947,5 @@ debug_mem_addr_value (rtx x) debug_rtx (addr); return t; } - +#endif