]> git.pld-linux.org Git - packages/crossavr-gcc.git/blobdiff - crossavr-gcc-bug-33009.patch
- synchronized patches with Atmel official AVR8-GNU toolchain.
[packages/crossavr-gcc.git] / crossavr-gcc-bug-33009.patch
diff --git a/crossavr-gcc-bug-33009.patch b/crossavr-gcc-bug-33009.patch
deleted file mode 100644 (file)
index f0f9497..0000000
+++ /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.  */
This page took 0.3223 seconds and 4 git commands to generate.