aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Grechanik <mouseentity@ispras.ru>2011-08-11 11:55:11 +0000
committerAlexander Monakov <amonakov@gcc.gnu.org>2011-08-11 15:55:11 +0400
commitca31ca94f9b8fbd928024cd1eff183cebfdb5c56 (patch)
tree99107d4b6e3546fc25c9b5e080a9d0f9afb90b21
parentf0898307231190ca62014affb960f8f1f2fced59 (diff)
downloadgcc-ca31ca94f9b8fbd928024cd1eff183cebfdb5c56.zip
gcc-ca31ca94f9b8fbd928024cd1eff183cebfdb5c56.tar.gz
gcc-ca31ca94f9b8fbd928024cd1eff183cebfdb5c56.tar.bz2
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> * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge only if producer writes to the register given by regno. From-SVN: r177658
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/sel-sched-ir.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0ea71d9..97a1664 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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 ...
diff --git a/gcc/sel-sched-ir.c b/gcc/sel-sched-ir.c
index c7e365a..4878460 100644
--- a/gcc/sel-sched-ir.c
+++ b/gcc/sel-sched-ir.c
@@ -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);