sched-deps.c (sched_analyze_2): Also force pending loads from memory.

* sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
	force pending loads from memory.

From-SVN: r236481
This commit is contained in:
Uros Bizjak 2016-05-19 19:52:56 +02:00
parent 4f45da44cd
commit 3e009bf0e9
2 changed files with 12 additions and 5 deletions

View file

@ -1,3 +1,8 @@
2016-05-19 Uros Bizjak <ubizjak@gmail.com>
* sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
force pending loads from memory.
2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
* config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
@ -39,7 +44,7 @@
2016-05-19 Jan Hubicka <hubicka@ucw.cz>
* tree-vect-loop.c (vect_analyze_loop_2): Use also
* tree-vect-loop.c (vect_analyze_loop_2): Use also
max_loop_iterations_int.
2016-05-19 Marek Polacek <polacek@redhat.com>
@ -97,8 +102,7 @@
2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
Don't add cost of inner memory when handling sign-extended
loads.
Don't add cost of inner memory when handling sign-extended loads.
2016-05-19 Ilya Enkovich <ilya.enkovich@intel.com>

View file

@ -2709,9 +2709,12 @@ sched_analyze_2 (struct deps_desc *deps, rtx x, rtx_insn *insn)
return;
}
/* Force pending stores to memory in case a trap handler needs them. */
/* Force pending stores to memory in case a trap handler needs them.
Also force pending loads from memory; loads and stores can segfault
and the signal handler won't be triggered if the trap insn was moved
above load or store insn. */
case TRAP_IF:
flush_pending_lists (deps, insn, true, false);
flush_pending_lists (deps, insn, true, true);
break;
case PREFETCH: