re PR target/21721 (fails to assemble, Use of p0 is not valid in this context)
authorRichard Henderson <rth@redhat.com>
Wed, 8 Jun 2005 07:26:58 +0000 (00:26 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Wed, 8 Jun 2005 07:26:58 +0000 (00:26 -0700)
        PR target/21721
        * config/ia64/ia64.c (emit_predicate_relation_info): Skip p0.

From-SVN: r100745

gcc/ChangeLog
gcc/config/ia64/ia64.c

index 246e3daaabe30cff0b6da222f95b4ea42308cedc..8f0b295373158b8c18cfffaac825135dfb3cef4b 100644 (file)
@@ -1,3 +1,8 @@
+2005-06-08  Richard Henderson  <rth@redhat.com>
+
+       PR target/21721
+        * config/ia64/ia64.c (emit_predicate_relation_info): Skip p0.
+
 2005-06-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
 
        PR target/21889
index ca4723e006fdf3882b750f232383b245d20191e7..d175a842ae6bd65e38903be9055ce4d0725d089e 100644 (file)
@@ -7420,7 +7420,9 @@ emit_predicate_relation_info (void)
          && NOTE_LINE_NUMBER (NEXT_INSN (head)) == NOTE_INSN_BASIC_BLOCK)
        head = NEXT_INSN (head);
 
-      for (r = PR_REG (0); r < PR_REG (64); r += 2)
+      /* Skip p0, which may be thought to be live due to (reg:DI p0)
+        grabbing the entire block of predicate registers.  */
+      for (r = PR_REG (2); r < PR_REG (64); r += 2)
        if (REGNO_REG_SET_P (bb->global_live_at_start, r))
          {
            rtx p = gen_rtx_REG (BImode, r);