Commit 61a17dca by James Greenhalgh Committed by James Greenhalgh

[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.

From-SVN: r220751
parent 87be7f0c
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-02-16 Jan Hubicka <hubicka@ucw.cz> 2015-02-16 Jan Hubicka <hubicka@ucw.cz>
* symtab.c (symtab_node::verify_base): Verify body_removed->!definiton * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
......
...@@ -1233,6 +1233,11 @@ recompute_todo_spec (rtx_insn *next, bool for_backtrack) ...@@ -1233,6 +1233,11 @@ recompute_todo_spec (rtx_insn *next, bool for_backtrack)
if (!sd_lists_empty_p (next, SD_LIST_HARD_BACK)) if (!sd_lists_empty_p (next, SD_LIST_HARD_BACK))
return HARD_DEP; 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. /* Now we've got NEXT with speculative deps only.
1. Look at the deps to see what we have to do. 1. Look at the deps to see what we have to do.
2. Check if we can do 'todo'. */ 2. Check if we can do 'todo'. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment