From: Uros Bizjak Date: Fri, 20 May 2016 15:42:18 +0000 (+0200) Subject: sched-deps.c (sched_analyze_2): Also force pending loads from memory. X-Git-Tag: releases/gcc-4.9.4~161 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=73ef90ba8d8ad7e9c7dbfdfe952fbcc7a3704b43;p=thirdparty%2Fgcc.git 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 --- 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: