[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
This commit is contained in:
James Greenhalgh 2015-02-17 09:19:33 +00:00 committed by James Greenhalgh
parent 87be7f0cbb
commit 61a17dcaf2
2 changed files with 11 additions and 0 deletions

View File

@ -1,3 +1,9 @@
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>
* symtab.c (symtab_node::verify_base): Verify body_removed->!definiton

View File

@ -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'. */