diff options
Diffstat (limited to 'gcc/tree-ssa-loop-prefetch.c')
-rw-r--r-- | gcc/tree-ssa-loop-prefetch.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/tree-ssa-loop-prefetch.c b/gcc/tree-ssa-loop-prefetch.c index 4c965d19eb5..21052997259 100644 --- a/gcc/tree-ssa-loop-prefetch.c +++ b/gcc/tree-ssa-loop-prefetch.c @@ -883,7 +883,8 @@ issue_prefetch_ref (struct mem_ref *ref, unsigned unroll_factor, unsigned ahead) n_prefetches = ((unroll_factor + ref->prefetch_mod - 1) / ref->prefetch_mod); addr_base = build_fold_addr_expr_with_type (ref->mem, ptr_type_node); - addr_base = force_gimple_operand_bsi (&bsi, unshare_expr (addr_base), true, NULL); + addr_base = force_gimple_operand_bsi (&bsi, unshare_expr (addr_base), + true, NULL, true, BSI_SAME_STMT); write_p = ref->write_p ? integer_one_node : integer_zero_node; local = build_int_cst (integer_type_node, nontemporal ? 0 : 3); @@ -893,7 +894,8 @@ issue_prefetch_ref (struct mem_ref *ref, unsigned unroll_factor, unsigned ahead) delta = (ahead + ap * ref->prefetch_mod) * ref->group->step; addr = fold_build2 (POINTER_PLUS_EXPR, ptr_type_node, addr_base, size_int (delta)); - addr = force_gimple_operand_bsi (&bsi, unshare_expr (addr), true, NULL); + addr = force_gimple_operand_bsi (&bsi, unshare_expr (addr), true, NULL, + true, BSI_SAME_STMT); /* Create the prefetch instruction. */ prefetch = build_call_expr (built_in_decls[BUILT_IN_PREFETCH], |