diff options
-rw-r--r-- | gcc/ChangeLog.dataflow | 11 | ||||
-rw-r--r-- | gcc/combine.c | 6 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 4 | ||||
-rw-r--r-- | gcc/dse.c | 2 | ||||
-rw-r--r-- | gcc/emit-rtl.c | 8 | ||||
-rw-r--r-- | gcc/reg-stack.c | 17 |
6 files changed, 22 insertions, 26 deletions
diff --git a/gcc/ChangeLog.dataflow b/gcc/ChangeLog.dataflow index 723f5ebf29b..936caa09193 100644 --- a/gcc/ChangeLog.dataflow +++ b/gcc/ChangeLog.dataflow @@ -1,3 +1,14 @@ +2007-06-07 Kenneth Zadeck <zadeck@naturalbridge.com> + + * emit-rtl.c (set_insn_deleted): Changed NOTE_LINE_NUMBER to + NOTE_KIND. + (emit_note_after): Fixed merge glitch. + * combine.c (try_combine): Changed NOTE_LINE_NUMBER to + NOTE_KIND. + * reg-stack.c (convert_regs_1): Fixed merge glitch. + * config/rs6000/rs6000.c (no_global_regs_above): Fixed merge typo. + (rs6000_emit_prologue): Fixed merge glitch. + 2007-06-06 Kenneth Zadeck <zadeck@naturalbridge.com> * regrename.c (do_replace): Removed ifdefed out code. diff --git a/gcc/combine.c b/gcc/combine.c index 6fc93dac59a..6077e783cf0 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -3694,7 +3694,7 @@ try_combine (rtx i3, rtx i2, rtx i1, int *new_direct_jump_p) df_insn_rescan (undobuf.other_insn); } - if (i1 && !(NOTE_P(i1) && (NOTE_LINE_NUMBER (i1) == NOTE_INSN_DELETED))) + if (i1 && !(NOTE_P(i1) && (NOTE_KIND (i1) == NOTE_INSN_DELETED))) { if (dump_file) { @@ -3704,7 +3704,7 @@ try_combine (rtx i3, rtx i2, rtx i1, int *new_direct_jump_p) df_insn_rescan (i1); } - if (i2 && !(NOTE_P(i2) && (NOTE_LINE_NUMBER (i2) == NOTE_INSN_DELETED))) + if (i2 && !(NOTE_P(i2) && (NOTE_KIND (i2) == NOTE_INSN_DELETED))) { if (dump_file) { @@ -3714,7 +3714,7 @@ try_combine (rtx i3, rtx i2, rtx i1, int *new_direct_jump_p) df_insn_rescan (i2); } - if (i3 && !(NOTE_P(i3) && (NOTE_LINE_NUMBER (i3) == NOTE_INSN_DELETED))) + if (i3 && !(NOTE_P(i3) && (NOTE_KIND (i3) == NOTE_INSN_DELETED))) { if (dump_file) { diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 6fff7080f41..910dae7398f 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -14636,7 +14636,7 @@ no_global_regs_above (int first_greg) static bool rs6000_reg_live_or_pic_offset_p (int reg) { - return ((df_regs_rever_live_p (reg) + return ((df_regs_ever_live_p (reg) && (!call_used_regs[reg] || (reg == RS6000_PIC_OFFSET_TABLE_REGNUM && TARGET_TOC && TARGET_MINIMAL_TOC))) @@ -14947,7 +14947,7 @@ rs6000_emit_prologue (void) int i; rtx spe_save_area_ptr; int using_static_chain_p = (cfun->static_chain_decl != NULL_TREE - && regs_ever_live[STATIC_CHAIN_REGNUM] + && df_regs_ever_live_p (STATIC_CHAIN_REGNUM) && !call_used_regs[STATIC_CHAIN_REGNUM]); /* Determine whether we can address all of the registers that need diff --git a/gcc/dse.c b/gcc/dse.c index 0b15f95e3b3..e846f3f1459 100644 --- a/gcc/dse.c +++ b/gcc/dse.c @@ -949,7 +949,7 @@ const_or_frame_p (rtx x) switch (GET_CODE (x)) { case MEM: - return !MEM_READONLY_P (x); + return MEM_READONLY_P (x); case CONST: case CONST_INT: diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 364ecd6a3c0..9f1d71674a5 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -3523,10 +3523,7 @@ void set_insn_deleted (rtx insn) { df_insn_delete (BLOCK_FOR_INSN (insn), INSN_UID (insn)); PUT_CODE (insn, NOTE); -#ifndef USE_MAPPED_LOCATION - NOTE_SOURCE_FILE (insn) = 0; -#endif - NOTE_LINE_NUMBER (insn) = NOTE_INSN_DELETED; + NOTE_KIND (insn) = NOTE_INSN_DELETED; } @@ -4110,9 +4107,8 @@ emit_note_after (enum insn_note subtype, rtx after) INSN_UID (note) = cur_insn_uid++; NOTE_KIND (note) = subtype; BLOCK_FOR_INSN (note) = NULL; - add_insn_after (note, after, NULL); memset (&NOTE_DATA (note), 0, sizeof (NOTE_DATA (note))); - add_insn_after (note, after); + add_insn_after (note, after, NULL); return note; } diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c index 44dc7c2db06..6de1bcb1cef 100644 --- a/gcc/reg-stack.c +++ b/gcc/reg-stack.c @@ -2977,21 +2977,10 @@ convert_regs_1 (basic_block block) /* Something failed if the stack lives don't match. If we had malformed asms, we zapped the instruction itself, but that didn't produce the - same pattern of register kills as before. + same pattern of register kills as before. */ - Disable this checking for blocks leading to EXIT block - for undefined - return values blocks containing return statement are not declaring return - register as live while we have to initialize it (as otherwise the caller's - register stack would end up missordered). - Alternatively we might update bi->out_reg_set in reg_to_stack for return - registers to save this sanity check. */ - if (!single_succ_p (block) - || single_succ_edge (block)->dest != EXIT_BLOCK_PTR) - { - GO_IF_HARD_REG_EQUAL (regstack.reg_set, bi->out_reg_set, win); - gcc_assert (any_malformed_asm); - } - win: + gcc_assert (hard_reg_set_equal_p (regstack.reg_set, bi->out_reg_set) + || any_malformed_asm); bi->stack_out = regstack; bi->done = true; } |