aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcollison <collison@138bc75d-0d04-0410-961f-82ee72b054a4>2015-03-11 06:18:24 +0000
committercollison <collison@138bc75d-0d04-0410-961f-82ee72b054a4>2015-03-11 06:18:24 +0000
commite5e78a3b71da23f7fb187997c70361db8330def9 (patch)
tree519fd79af87d143a017314b45852f947f5727302
parentbfc6f992bbf407cc4fcd03d242313631281c673f (diff)
2015-03-06 Michael Collison <michael.collison@linaro.org>
Backport from trunk r220751. 2015-02-17 James Greenhalgh <james.greenhalgh@arm.com> * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P as forcing a HARD_DEP between instructions, thereby disallowing rewriting to break dependencies. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/linaro/gcc-4_9-branch@221343 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog.linaro9
-rw-r--r--gcc/haifa-sched.c5
2 files changed, 14 insertions, 0 deletions
diff --git a/gcc/ChangeLog.linaro b/gcc/ChangeLog.linaro
index 36e0463d9c2..fb4e128f9cf 100644
--- a/gcc/ChangeLog.linaro
+++ b/gcc/ChangeLog.linaro
@@ -1,3 +1,12 @@
+2015-03-06 Michael Collison <michael.collison@linaro.org>
+
+ Backport from trunk r220751.
+ 2015-02-17 James Greenhalgh <james.greenhalgh@arm.com>
+
+ * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
+ as forcing a HARD_DEP between instructions, thereby
+ disallowing rewriting to break dependencies.
+
2015-03-10 Michael Collison <michael.collison@linaro.org>
Backport from trunk r217725.
diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c
index e437e0a429c..55dc3e945fe 100644
--- a/gcc/haifa-sched.c
+++ b/gcc/haifa-sched.c
@@ -1203,6 +1203,11 @@ recompute_todo_spec (rtx next, bool for_backtrack)
if (!sd_lists_empty_p (next, SD_LIST_HARD_BACK))
return HARD_DEP;
+ /* If NEXT is intended to sit adjacent to this instruction, we don't
+ want to try to break any dependencies. Treat it as a HARD_DEP. */
+ if (SCHED_GROUP_P (next))
+ return HARD_DEP;
+
/* Now we've got NEXT with speculative deps only.
1. Look at the deps to see what we have to do.
2. Check if we can do 'todo'. */