X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=crossavr-gcc-bug-33009.patch;fp=crossavr-gcc-bug-33009.patch;h=0000000000000000000000000000000000000000;hb=dbe7ab630a421904e0591169617d01dc93a44a38;hp=f0f94979b4f4dd9691ea6354f606b1f2ba7d4a87;hpb=2c67e1812060b216ec8dc85d0d98523f5d2adaa2;p=packages%2Fcrossavr-gcc.git diff --git a/crossavr-gcc-bug-33009.patch b/crossavr-gcc-bug-33009.patch deleted file mode 100644 index f0f9497..0000000 --- a/crossavr-gcc-bug-33009.patch +++ /dev/null @@ -1,81 +0,0 @@ -Index: gcc/rtl-factoring.c -=================================================================== ---- gcc/rtl-factoring.c (revision 132522) -+++ gcc/rtl-factoring.c (working copy) -@@ -551,8 +551,8 @@ - df_simulate_artificial_refs_at_end (bb, &live); - - /* Propagate until INSN if found. */ -- for (x = BB_END (bb); x != insn;) -- df_simulate_one_insn_backwards (bb, insn, &live); -+ for (x = BB_END (bb); x != insn; x = PREV_INSN(x)) -+ df_simulate_one_insn_backwards (bb, x, &live); - - /* Clear registers live after INSN. */ - renumbered_reg_set_to_hard_reg_set (&hlive, &live); -@@ -562,7 +562,7 @@ - for (i = 0; i < length;) - { - rtx prev = PREV_INSN (x); -- df_simulate_one_insn_backwards (bb, insn, &live); -+ df_simulate_one_insn_backwards (bb, x, &live); - - if (INSN_P (x)) - { -@@ -949,6 +949,17 @@ - return sym; - } - -+/* Splits basic block at the requested insn and rebuilds dataflow. */ -+ -+static basic_block -+asplit_block(basic_block bb, rtx insn) -+{ -+ basic_block next; -+ next = split_block (bb, insn)->dest; -+ df_analyze (); -+ return next; -+} -+ - /* Ensures that INSN is the last insn in its block and returns the block label - of the next block. */ - -@@ -959,7 +970,7 @@ - if ((insn == BB_END (bb)) && (bb->next_bb != EXIT_BLOCK_PTR)) - return block_label (bb->next_bb); - else -- return block_label (split_block (bb, insn)->dest); -+ return block_label (asplit_block (bb, insn)); - } - - /* Ensures that the last insns of the best pattern and its matching sequences -@@ -1008,8 +1019,9 @@ - - /* Emit an indirect jump via the link register after the sequence acting - as the return insn. Also emit a barrier and update the basic block. */ -- retjmp = emit_jump_insn_after (gen_indirect_jump (pattern_seqs->link_reg), -- BB_END (bb)); -+ if (!find_reg_note (BB_END(bb), REG_NORETURN, NULL)) -+ retjmp = emit_jump_insn_after (gen_indirect_jump (pattern_seqs->link_reg), -+ BB_END (bb)); - emit_barrier_after (BB_END (bb)); - - /* Replace all outgoing edges with a new one to the block of RETLABEL. */ -@@ -1025,7 +1037,7 @@ - for (; i < sb->length; i++) - insn = prev_insn_in_block (insn); - -- sb->label = block_label (split_block (bb, insn)->dest); -+ sb->label = block_label (asplit_block (bb, insn)); - } - - /* Emit an insn saving the return address to the link register before the -@@ -1067,7 +1079,7 @@ - /* Delete the insns of the sequence. */ - for (i = 0; i < sb->length; i++) - insn = prev_insn_in_block (insn); -- delete_basic_block (split_block (bb, insn)->dest); -+ delete_basic_block (asplit_block (bb, insn)); - - /* Emit an insn saving the return address to the link register - before the deleted sequence. */