aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Makarov <vmakarov@redhat.com>2014-09-18 15:57:06 +0000
committerVladimir Makarov <vmakarov@gcc.gnu.org>2014-09-18 15:57:06 +0000
commit74c101d5fd4ebf45d9127efd82e1325882e48a12 (patch)
tree96c5f2ec46b587f3702fc950d53369906dbf248e
parentb060c2173402c6aa2ad4669317e3a3d61d8759c7 (diff)
downloadgcc-74c101d5fd4ebf45d9127efd82e1325882e48a12.zip
gcc-74c101d5fd4ebf45d9127efd82e1325882e48a12.tar.gz
gcc-74c101d5fd4ebf45d9127efd82e1325882e48a12.tar.bz2
re PR target/61360 (ICE: in lra_update_insn_recog_data, at lra.c:1363 with -mtune=bdver4)
2014-09-18 Vladimir Makarov <vmakarov@redhat.com> PR target/61360 * lra.c (lra): Call recog_init. 2014-09-18 Vladimir Makarov <vmakarov@redhat.com> PR target/61360 * gcc.target/i386/pr61360.c: New. From-SVN: r215358
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/lra.c5
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.target/i386/pr61360.c12
4 files changed, 27 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a8dc34e..3c55ce4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2014-09-18 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR target/61360
+ * lra.c (lra): Call recog_init.
+
2014-09-18 Jakub Jelinek <jakub@redhat.com>
PR c++/62017
diff --git a/gcc/lra.c b/gcc/lra.c
index be8b489..acec8af 100644
--- a/gcc/lra.c
+++ b/gcc/lra.c
@@ -2135,6 +2135,11 @@ lra (FILE *f)
lra_in_progress = 1;
+ /* The enable attributes can change their values as LRA starts
+ although it is a bad practice. To prevent reuse of the outdated
+ values, clear them. */
+ recog_init ();
+
lra_live_range_iter = lra_coalesce_iter = 0;
lra_constraint_iter = lra_constraint_iter_after_spill = 0;
lra_inheritance_iter = lra_undo_inheritance_iter = 0;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 9d42700..de00b32 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2014-09-18 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR target/61360
+ * gcc.target/i386/pr61360.c: New.
+
2014-09-18 Jakub Jelinek <jakub@redhat.com>
PR c++/62017
diff --git a/gcc/testsuite/gcc.target/i386/pr61360.c b/gcc/testsuite/gcc.target/i386/pr61360.c
new file mode 100644
index 0000000..cbd3a6f
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr61360.c
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-options "-march=amdfam10 -O2" } */
+int a, b, c, e, f, g, h;
+long *d;
+__attribute__((cold)) void fn1() {
+ int i = g | 1;
+ for (; g; h++) {
+ for (; a; e++) d[0] = c;
+ if (0.002 * i) break;
+ for (; b; f++) d[h] = 0;
+ }
+}