From 3546bf8dd55772566748690334e2cc26523054f3 Mon Sep 17 00:00:00 2001 From: amodra Date: Fri, 4 Nov 2011 21:05:46 +0000 Subject: * reload1.c (gen_reload): Don't use REGNO on SUBREGs. * print-rtl.c (print_rtx): Don't segfault on negative regno. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180983 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/print-rtl.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'gcc/print-rtl.c') diff --git a/gcc/print-rtl.c b/gcc/print-rtl.c index db9c0fbbdd0..edeeefa6071 100644 --- a/gcc/print-rtl.c +++ b/gcc/print-rtl.c @@ -466,11 +466,10 @@ print_rtx (const_rtx in_rtx) const char *name; #ifndef GENERATOR_FILE - if (REG_P (in_rtx) && value < FIRST_PSEUDO_REGISTER) - fprintf (outfile, " %d %s", REGNO (in_rtx), - reg_names[REGNO (in_rtx)]); + if (REG_P (in_rtx) && (unsigned) value < FIRST_PSEUDO_REGISTER) + fprintf (outfile, " %d %s", value, reg_names[value]); else if (REG_P (in_rtx) - && value <= LAST_VIRTUAL_REGISTER) + && (unsigned) value <= LAST_VIRTUAL_REGISTER) { if (value == VIRTUAL_INCOMING_ARGS_REGNUM) fprintf (outfile, " %d virtual-incoming-args", value); -- cgit v1.2.1 From 63f5ad449bbe0a4d478ae9412461e204533a6206 Mon Sep 17 00:00:00 2001 From: jakub Date: Sat, 5 Nov 2011 19:58:37 +0000 Subject: PR tree-optimization/50693 * tree-cfg.c (gimple_can_merge_blocks_p): Allow merging with non-forced user labels. (gimple_merge_blocks): Turn non-forced user labels into debug bind stmt with the label as first operand and reset value. (gimple_duplicate_bb): Don't duplicate label debug stmts. * dwarf2out.c (gen_label_die): Handle NOTE_INSN_DELETED_DEBUG_LABEL. * final.c (final_scan_insn): Likewise. (rest_of_clean_state): Don't dump NOTE_INSN_DELETED_DEBUG_LABEL. * var-tracking.c (debug_label_num): New variable. (delete_debug_insns): Don't delete DEBUG_INSNs for LABEL_DECLs, instead turn them into NOTE_INSN_DELETED_DEBUG_LABEL notes. * cfglayout.c (skip_insns_after_block, duplicate_insn_chain): Handle NOTE_INSN_DELETED_DEBUG_LABEL. (duplicate_insn_chain): Don't duplicate LABEL_DECL DEBUG_INSNs. * insn-notes.def (DELETED_DEBUG_LABEL): New note kind. * print-rtl.c (print_rtx): Handle NOTE_INSN_DELETED_DEBUG_LABEL. * gengtype.c (adjust_field_rtx_def): Likewise. * config/i386/i386.c (ix86_output_function_epilogue): For MachO clear CODE_LABEL_NUMBER of NOTE_INSN_DELETED_DEBUG_LABEL if their are at the end of function and nop hasn't been emitted. * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181014 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/print-rtl.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'gcc/print-rtl.c') diff --git a/gcc/print-rtl.c b/gcc/print-rtl.c index edeeefa6071..9bd8621c4ed 100644 --- a/gcc/print-rtl.c +++ b/gcc/print-rtl.c @@ -283,6 +283,7 @@ print_rtx (const_rtx in_rtx) } case NOTE_INSN_DELETED_LABEL: + case NOTE_INSN_DELETED_DEBUG_LABEL: { const char *label = NOTE_DELETED_LABEL_NAME (in_rtx); if (label) @@ -442,7 +443,8 @@ print_rtx (const_rtx in_rtx) { /* This field is only used for NOTE_INSN_DELETED_LABEL, and other times often contains garbage from INSN->NOTE death. */ - if (NOTE_KIND (in_rtx) == NOTE_INSN_DELETED_LABEL) + if (NOTE_KIND (in_rtx) == NOTE_INSN_DELETED_LABEL + || NOTE_KIND (in_rtx) == NOTE_INSN_DELETED_DEBUG_LABEL) fprintf (outfile, " %d", XINT (in_rtx, i)); } #if !defined(GENERATOR_FILE) && NUM_UNSPECV_VALUES > 0 -- cgit v1.2.1