From 73ef90ba8d8ad7e9c7dbfdfe952fbcc7a3704b43 Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Fri, 20 May 2016 17:42:18 +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: r236518 --- gcc/ChangeLog | 5 +++++ gcc/sched-deps.c | 7 +++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 202f3269cf1b..739e638374aa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2016-05-20 Uros Bizjak + + * sched-deps.c (sched_analyze_2) : Also + force pending loads from memory. + 2016-05-20 Kyrylo Tkachov Backport from mainline diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c index dc87187459e4..1c7f0fbf0fbe 100644 --- a/gcc/sched-deps.c +++ b/gcc/sched-deps.c @@ -2714,9 +2714,12 @@ sched_analyze_2 (struct deps_desc *deps, rtx x, rtx 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.47.2