From 3e009bf0e968f77a6ae0705544cd169ea6e95fd0 Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Thu, 19 May 2016 19:52:56 +0200 Subject: [PATCH] sched-deps.c (sched_analyze_2): Also force pending loads from memory. * sched-deps.c (sched_analyze_2) : Also force pending loads from memory. From-SVN: r236481 --- gcc/ChangeLog | 10 +++++++--- gcc/sched-deps.c | 7 +++++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d44c793b840..1c62002bb0e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2016-05-19 Uros Bizjak + + * sched-deps.c (sched_analyze_2) : Also + force pending loads from memory. + 2016-05-19 Kelvin Nilsen * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant. @@ -39,7 +44,7 @@ 2016-05-19 Jan Hubicka - * 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 @@ -97,8 +102,7 @@ 2016-05-19 Kyrylo Tkachov * 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 diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c index 5c8e020bb5b..41a6af25c79 100644 --- a/gcc/sched-deps.c +++ b/gcc/sched-deps.c @@ -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: -- 2.30.2