]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR bootstrap/63740 (GCC 4.9.2 bootstrap fails on ARM, haifa-sched.c:6507:1: intern...
authorVladimir Makarov <vmakarov@redhat.com>
Mon, 22 Jun 2015 18:45:58 +0000 (18:45 +0000)
committerVladimir Makarov <vmakarov@gcc.gnu.org>
Mon, 22 Jun 2015 18:45:58 +0000 (18:45 +0000)
2015-06-22  Vladimir Makarov  <vmakarov@redhat.com>

PR bootstrap/63740
* lra-lives.c (process_bb_lives): Check insn copying the same
reload pseudo and don't create a copy for it.

From-SVN: r224753

gcc/ChangeLog
gcc/lra-lives.c

index 8f20c77dd4abd7acb53355a8e671202367069884..05ed274a9f7bebddc6838df03c96c041bf2a32ee 100644 (file)
@@ -1,3 +1,9 @@
+2015-06-22  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR bootstrap/63740
+       * lra-lives.c (process_bb_lives): Check insn copying the same
+       reload pseudo and don't create a copy for it.
+
 2015-06-22  Tom de Vries  <tom@codesourcery.com>
 
        * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
index 16e1f386b3e620b047753c55fe1835ae821d224a..5157c85895e18ae2b8f90ba1945141d7ebd497fa 100644 (file)
@@ -768,7 +768,15 @@ process_bb_lives (basic_block bb, int &curr_point, bool dead_insn_p)
          dst_regno = REGNO (SET_DEST (set));
          if (dst_regno >= lra_constraint_new_regno_start
              && src_regno >= lra_constraint_new_regno_start)
-           lra_create_copy (dst_regno, src_regno, freq);
+           {
+             /* It might be still an original (non-reload) insn with
+                one unused output and a constraint requiring to use
+                the same reg for input/output operands. In this case
+                dst_regno and src_regno have the same value, we don't
+                need a misleading copy for this case.  */
+             if (dst_regno != src_regno)
+               lra_create_copy (dst_regno, src_regno, freq);
+           }
          else if (dst_regno >= lra_constraint_new_regno_start)
            {
              if ((hard_regno = src_regno) >= FIRST_PSEUDO_REGISTER)