re PR rtl-optimization/92283 (454.calculix miscomparison since r276645 with -O2 ...
authorVladimir Makarov <vmakarov@redhat.com>
Fri, 29 Nov 2019 22:04:21 +0000 (22:04 +0000)
committerVladimir Makarov <vmakarov@gcc.gnu.org>
Fri, 29 Nov 2019 22:04:21 +0000 (22:04 +0000)
2019-11-29  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/92283
* lra.c (lra): Update reg notes after inheritance sub-pass and
before constraint sub-pass.

From-SVN: r278865

gcc/ChangeLog
gcc/lra.c

index 98a93a5086e605dfb3bb50cba0fca7df9ab5319d..630d388677cabe6a93efaf40b210e84f374d3ca9 100644 (file)
@@ -1,3 +1,9 @@
+2019-11-29  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR rtl-optimization/92283
+       * lra.c (lra): Update reg notes after inheritance sub-pass and
+       before constraint sub-pass.
+
 2019-11-29  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/91003
index ec20aed449255112d75440e0fc04ee88b3b567bb..42b58714d41fa63bfedff67838691910193bb8b2 100644 (file)
--- a/gcc/lra.c
+++ b/gcc/lra.c
@@ -2473,7 +2473,7 @@ lra (FILE *f)
                 But don't remove dead insns or change global live
                 info as we can undo inheritance transformations after
                 inheritance pseudo assigning.  */
-             lra_create_live_ranges (true, false);
+             lra_create_live_ranges (true, !lra_simple_p);
              live_p = true;
              /* If we don't spill non-reload and non-inheritance
                 pseudos, there is no sense to run memory-memory move
@@ -2514,6 +2514,11 @@ lra (FILE *f)
                }
            }
          while (fails_p);
+         if (! live_p) {
+           /* We need the correct reg notes for work of constraint sub-pass.  */
+           lra_create_live_ranges (true, true);
+           live_p = true;
+         }
        }
       /* Don't clear optional reloads bitmap until all constraints are
         satisfied as we need to differ them from regular reloads.  */