Mercurial > hg > CbC > CbC_gcc
diff gcc/sel-sched-dump.c @ 67:f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
author | nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 22 Mar 2011 17:18:12 +0900 |
parents | b7f97abdc517 |
children | 04ced10e8804 |
line wrap: on
line diff
--- a/gcc/sel-sched-dump.c Tue May 25 18:58:51 2010 +0900 +++ b/gcc/sel-sched-dump.c Tue Mar 22 17:18:12 2011 +0900 @@ -21,7 +21,7 @@ #include "system.h" #include "coretypes.h" #include "tm.h" -#include "toplev.h" +#include "diagnostic-core.h" #include "rtl.h" #include "tm_p.h" #include "hard-reg-set.h" @@ -164,7 +164,7 @@ /* Dump INSN to stderr. */ -void +DEBUG_FUNCTION void debug_insn_rtx (rtx insn) { switch_dump (stderr); @@ -214,7 +214,7 @@ } /* Dump vinsn VI to stderr. */ -void +DEBUG_FUNCTION void debug_vinsn (vinsn_t vi) { switch_dump (stderr); @@ -295,7 +295,7 @@ } /* Dump expression EXPR to stderr. */ -void +DEBUG_FUNCTION void debug_expr (expr_t expr) { switch_dump (stderr); @@ -353,7 +353,7 @@ } /* Dump INSN to stderr. */ -void +DEBUG_FUNCTION void debug_insn (insn_t insn) { switch_dump (stderr); @@ -466,7 +466,7 @@ int i; rtx succ; - for (i = 0; VEC_iterate (rtx, succs, i, succ); i++) + FOR_EACH_VEC_ELT (rtx, succs, i, succ) if (succ) dump_insn (succ); else @@ -566,7 +566,7 @@ } /* Replace characters in BUF that have special meaning in .dot file. */ -void +static void sel_prepare_string_for_dot_label (char *buf) { static char specials_from[7][2] = { "<", ">", "{", "|", "}", "\"", @@ -579,6 +579,28 @@ replace_str_in_buf (buf, specials_from[i], specials_to[i]); } +/* This function acts like printf but dumps to the sched_dump file. */ +void +sel_print (const char *fmt, ...) +{ + va_list ap; + va_start (ap, fmt); + if (sched_dump_to_dot_p) + { + char *message; + if (vasprintf (&message, fmt, ap) >= 0 && message != NULL) + { + message = (char *) xrealloc (message, 2 * strlen (message) + 1); + sel_prepare_string_for_dot_label (message); + fprintf (sched_dump, "%s", message); + free (message); + } + } + else + vfprintf (sched_dump, fmt, ap); + va_end (ap); +} + /* Dump INSN with FLAGS. */ static void sel_dump_cfg_insn (insn_t insn, int flags) @@ -861,7 +883,7 @@ } /* Dumps av_set AV to stderr. */ -void +DEBUG_FUNCTION void debug_av_set (av_set_t av) { switch_dump (stderr); @@ -871,7 +893,7 @@ } /* Dump LV to stderr. */ -void +DEBUG_FUNCTION void debug_lv_set (regset lv) { switch_dump (stderr); @@ -881,7 +903,7 @@ } /* Dump an instruction list P to stderr. */ -void +DEBUG_FUNCTION void debug_ilist (ilist_t p) { switch_dump (stderr); @@ -891,7 +913,7 @@ } /* Dump a boundary list BNDS to stderr. */ -void +DEBUG_FUNCTION void debug_blist (blist_t bnds) { switch_dump (stderr); @@ -901,7 +923,7 @@ } /* Dump an insn vector SUCCS. */ -void +DEBUG_FUNCTION void debug_insn_vector (rtx_vec_t succs) { switch_dump (stderr); @@ -911,7 +933,7 @@ } /* Dump a hard reg set SET to stderr. */ -void +DEBUG_FUNCTION void debug_hard_reg_set (HARD_REG_SET set) { switch_dump (stderr); @@ -928,7 +950,7 @@ } /* Print a current cselib value for X's address to stderr. */ -rtx +DEBUG_FUNCTION rtx debug_mem_addr_value (rtx x) { rtx t, addr; @@ -938,8 +960,8 @@ address_mode = targetm.addr_space.address_mode (MEM_ADDR_SPACE (x)); t = shallow_copy_rtx (x); - if (cselib_lookup (XEXP (t, 0), address_mode, 0)) - XEXP (t, 0) = cselib_subst_to_values (XEXP (t, 0)); + if (cselib_lookup (XEXP (t, 0), address_mode, 0, GET_MODE (t))) + XEXP (t, 0) = cselib_subst_to_values (XEXP (t, 0), GET_MODE (t)); t = canon_rtx (t); addr = get_addr (XEXP (t, 0));