diff options
author | jgreenhalgh <jgreenhalgh@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-02-17 09:19:33 +0000 |
---|---|---|
committer | jgreenhalgh <jgreenhalgh@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-02-17 09:19:33 +0000 |
commit | 75482765f25cf5e6e0cbee648dff850f06ad05c4 (patch) | |
tree | 92f3f0909eda535f3a7d5856f1b4176839a5bf29 /gcc/haifa-sched.c | |
parent | ddd4cdce82548f7eddc30b0caa4cb3a5d0a0116a (diff) | |
download | gcc-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.c | 5 |
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'. */ |