OSDN Git Service

2011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
authoramonakov <amonakov@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 11 Aug 2011 11:55:11 +0000 (11:55 +0000)
committeramonakov <amonakov@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 11 Aug 2011 11:55:11 +0000 (11:55 +0000)
* sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
only if producer writes to the register given by regno.

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

gcc/ChangeLog
gcc/sel-sched-ir.c

index 0ea71d9..97a1664 100644 (file)
@@ -1,4 +1,9 @@
 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
+
+       * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
+       only if producer writes to the register given by regno.
+
+2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
            Alexander Monakov  <amonakov@ispras.ru>
 
        * sched-deps.c (sched_get_condition_with_rev): Rename to ...
index c7e365a..4878460 100644 (file)
@@ -3227,7 +3227,8 @@ has_dependence_note_reg_use (int regno)
          pro_spec_checked_ds = INSN_SPEC_CHECKED_DS (has_dependence_data.pro);
          pro_spec_checked_ds = ds_get_max_dep_weak (pro_spec_checked_ds);
 
-         if (pro_spec_checked_ds != 0)
+         if (pro_spec_checked_ds != 0
+             && bitmap_bit_p (INSN_REG_SETS (has_dependence_data.pro), regno))
            /* Merge BE_IN_SPEC bits into *DSP.  */
            *dsp = ds_full_merge (*dsp, pro_spec_checked_ds,
                                  NULL_RTX, NULL_RTX);