re PR target/82444 (ICE in ira_init_register_move_cost, at ira.c:1581)
authorVladimir Makarov <vmakarov@redhat.com>
Wed, 31 Jan 2018 19:03:11 +0000 (19:03 +0000)
committerVladimir Makarov <vmakarov@gcc.gnu.org>
Wed, 31 Jan 2018 19:03:11 +0000 (19:03 +0000)
2018-01-31  Vladimir Makarov  <vmakarov@redhat.com>

PR target/82444
* ira.c (ira_init_register_move_cost): Remove assert.

2018-01-31  Vladimir Makarov  <vmakarov@redhat.com>

PR target/82444
* gcc.target/i386/pr82444.c: New.

From-SVN: r257254

gcc/ChangeLog
gcc/ira.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr82444.c [new file with mode: 0644]

index 40d570bbfc88b76057558ea8c627869f369b49c3..6c03ceea32b6d6d7f6389a987c73adbb72ae9a0d 100644 (file)
@@ -1,3 +1,8 @@
+2018-01-31  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR target/82444
+       * ira.c (ira_init_register_move_cost): Remove assert.
+
 2018-01-31  Eric Botcazou  <ebotcazou@adacore.com>
 
        PR rtl-optimization/84071
index b70e2c60b745e875188a2bd2cf8a3f4701ff63a5..0eafa0ab702bb47fdd1a3fbaa8deb58c588fe145 100644 (file)
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -1578,7 +1578,8 @@ ira_init_register_move_cost (machine_mode mode)
   ira_assert (ira_register_move_cost[mode] == NULL
              && ira_may_move_in_cost[mode] == NULL
              && ira_may_move_out_cost[mode] == NULL);
-  ira_assert (have_regs_of_mode[mode]);
+  /* have_regs_of_mode[mode] might be false because it might be
+     E_<mode> (see genmodes) of pseudo with <mode>.  */
   for (cl1 = 0; cl1 < N_REG_CLASSES; cl1++)
     for (cl2 = 0; cl2 < N_REG_CLASSES; cl2++)
       {
index 7994af53c5c2283861d7ceafea10aa7b1534ab77..57fbb47f7321f8383f9b3fa29b60e62318a314ae 100644 (file)
@@ -1,3 +1,8 @@
+2018-01-31  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR target/82444
+       * gcc.target/i386/pr82444.c: New.
+
 2018-01-31  Will Schmidt  <will_schmidt@vnet.ibm.com>
 
        * gcc.target/powerpc/altivec-13.c: Remove VSX-requiring built-ins.
diff --git a/gcc/testsuite/gcc.target/i386/pr82444.c b/gcc/testsuite/gcc.target/i386/pr82444.c
new file mode 100644 (file)
index 0000000..cded3fe
--- /dev/null
@@ -0,0 +1,5 @@
+/* { dg-do compile { target { ia32 } } } */
+/* { dg-options "-march=athlon" } */
+
+__float128 a;
+void b () { __asm__("" : "+r"(a)); } /* { dg-error "inconsistent operand constraints in an" } */