OSDN Git Service

PR debug/44028
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 10 May 2010 18:28:03 +0000 (18:28 +0000)
committerMasaki Muranaka <monaka@monami-software.com>
Sun, 23 May 2010 05:04:40 +0000 (14:04 +0900)
* haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
clear also INSN_REG_USE_LIST.

* gcc.dg/pr44028.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159240 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/haifa-sched.c
gcc/testsuite/ChangeLog

index 07f66dc..cd9b374 100644 (file)
@@ -1,3 +1,9 @@
+2010-05-10  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/44028
+       * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
+       clear also INSN_REG_USE_LIST.
+
 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
        * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
index b15fe63..0dd220d 100644 (file)
@@ -718,7 +718,7 @@ initiate_bb_reg_pressure_info (basic_block bb)
 
   if (current_nr_blocks > 1)
     FOR_BB_INSNS (bb, insn)
-      if (NONDEBUG_INSN_P (insn))
+      if (INSN_P (insn))
        setup_ref_regs (PATTERN (insn));
   initiate_reg_pressure_info (df_get_live_in (bb));
 #ifdef EH_RETURN_DATA_REGNO
@@ -1586,8 +1586,7 @@ setup_insn_max_reg_pressure (rtx after, bool update_p)
     max_reg_pressure[ira_reg_class_cover[i]]
       = curr_reg_pressure[ira_reg_class_cover[i]];
   for (insn = NEXT_INSN (after);
-       insn != NULL_RTX && ! BARRIER_P (insn)
-        && BLOCK_FOR_INSN (insn) == BLOCK_FOR_INSN (after);
+       insn != NULL_RTX && BLOCK_FOR_INSN (insn) == BLOCK_FOR_INSN (after);
        insn = NEXT_INSN (insn))
     if (NONDEBUG_INSN_P (insn))
       {
@@ -1721,12 +1720,6 @@ schedule_insn (rtx insn)
        /* Unknown location doesn't use any registers.  */
        for (use = INSN_REG_USE_LIST (dbg); use != NULL; use = next)
          {
-           struct reg_use_data *prev = use;
-
-           /* Remove use from the cyclic next_regno_use chain first.  */
-           while (prev->next_regno_use != use)
-             prev = prev->next_regno_use;
-           prev->next_regno_use = use->next_regno_use;
            next = use->next_insn_use;
            free (use);
          }
index f54d9c4..824920b 100644 (file)
@@ -1,3 +1,8 @@
+2010-05-10  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/44028
+       * gcc.dg/pr44028.c: New test.
+
 2010-05-08  Daniel Franke  <franke.daniel@gmail.com>
 
        PR fortran/27866