summaryrefslogtreecommitdiff
path: root/gcc/haifa-sched.c
diff options
context:
space:
mode:
authorjgreenhalgh <jgreenhalgh@138bc75d-0d04-0410-961f-82ee72b054a4>2015-02-17 09:19:33 +0000
committerjgreenhalgh <jgreenhalgh@138bc75d-0d04-0410-961f-82ee72b054a4>2015-02-17 09:19:33 +0000
commit75482765f25cf5e6e0cbee648dff850f06ad05c4 (patch)
tree92f3f0909eda535f3a7d5856f1b4176839a5bf29 /gcc/haifa-sched.c
parentddd4cdce82548f7eddc30b0caa4cb3a5d0a0116a (diff)
downloadgcc-75482765f25cf5e6e0cbee648dff850f06ad05c4.tar.gz
[Haifa Scheduler] Fix latent bug in macro-fusion/instruction grouping
gcc/ * 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/trunk@220751 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/haifa-sched.c')
-rw-r--r--gcc/haifa-sched.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c
index 64c8c9c1f70..7aeedc339d5 100644
--- a/gcc/haifa-sched.c
+++ b/gcc/haifa-sched.c
@@ -1233,6 +1233,11 @@ recompute_todo_spec (rtx_insn *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'. */