aboutsummaryrefslogtreecommitdiff
path: root/gcc/sched-deps.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2013-01-28 17:50:22 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2013-01-28 17:50:22 +0100
commitdb1fb332e127cef6bcbfd861e597ddb84505210f (patch)
tree0db0e0a407245a418257e3f7b74f6a99171a2878 /gcc/sched-deps.c
parent16917761718f236f6e40a043a64c746f174870ef (diff)
downloadgcc-db1fb332e127cef6bcbfd861e597ddb84505210f.zip
gcc-db1fb332e127cef6bcbfd861e597ddb84505210f.tar.gz
gcc-db1fb332e127cef6bcbfd861e597ddb84505210f.tar.bz2
re PR rtl-optimization/56117 (ICE: in cselib_subst_to_values, at cselib.c:1853 with -O2 -fsched2-use-superblocks and __builtin_prefetch())
PR rtl-optimization/56117 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib call cselib_lookup_from_insn on the MEM before calling add_insn_mem_dependence. * gcc.dg/pr56117.c: New test. From-SVN: r195513
Diffstat (limited to 'gcc/sched-deps.c')
-rw-r--r--gcc/sched-deps.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c
index 2b40286..7de974b 100644
--- a/gcc/sched-deps.c
+++ b/gcc/sched-deps.c
@@ -2720,8 +2720,12 @@ sched_analyze_2 (struct deps_desc *deps, rtx x, rtx insn)
prefetch has only the start address but it is better to have
something than nothing. */
if (!deps->readonly)
- add_insn_mem_dependence (deps, true, insn,
- gen_rtx_MEM (Pmode, XEXP (PATTERN (insn), 0)));
+ {
+ rtx x = gen_rtx_MEM (Pmode, XEXP (PATTERN (insn), 0));
+ if (sched_deps_info->use_cselib)
+ cselib_lookup_from_insn (x, Pmode, true, VOIDmode, insn);
+ add_insn_mem_dependence (deps, true, insn, x);
+ }
break;
case UNSPEC_VOLATILE: