[Bug rtl-optimization/47489] ICE in print_pattern, at sched-vis.c:602 (affecting mips, with slim RTL dumps)

abel at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Jan 28 10:04:00 GMT 2011


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47489

Andrey Belevantsev <abel at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2011.01.28 09:43:05
                 CC|                            |abel at gcc dot gnu.org
     Ever Confirmed|0                           |1

--- Comment #1 from Andrey Belevantsev <abel at gcc dot gnu.org> 2011-01-28 09:43:05 UTC ---
Confirmed.  This is because we deliberately abort on SEQUENCEs here since 2002
(rev. 54497) because of:

    2002-06-05  David S. Miller  <davem@redhat.com>

        Delete SEQUENCE rtl usage outside of reorg and ssa passes.

So either we reinstate the hunk deleted back there like with patch below, or we
document that slim dumps cannot be requested for machine reorg and later
passes.

diff --git a/gcc/sched-vis.c b/gcc/sched-vis.c
index 25a0b60..331ccbf 100644
--- a/gcc/sched-vis.c
+++ b/gcc/sched-vis.c
@@ -599,8 +599,19 @@ print_pattern (char *buf, const_rtx x, int verbose)
       }
       break;
     case SEQUENCE:
-      /* Should never see SEQUENCE codes until after reorg.  */
-      gcc_unreachable ();
+      {
+       int i;
+
+       sprintf (t1, "%%{");
+       for (i = 0; i < XVECLEN (x, 0); i++)
+         {
+           print_insn (t2, XVECEXP (x, 0, i), verbose);
+           sprintf (t3, "%s%s;", t1, t2);
+           strcpy (t1, t3);
+         }
+       sprintf (buf, "%s%%}", t1);
+      }
+      break;
     case ASM_INPUT:
       sprintf (buf, "asm {%s}", XSTR (x, 0));
       break;



More information about the Gcc-bugs mailing list