Commit 0e80383f by Vladimir Makarov Committed by Vladimir Makarov

PR rtl-optimization/pr55153

2013-01-15  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/pr55153
	* sched-deps.c (sched_analyze_2): Add pending reads for prefetch.

2013-01-15  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/pr55153
	* gcc.dg/pr55153.c: New.

From-SVN: r195211
parent 207b5956
2013-01-15 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/pr55153
* sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
2013-01-15 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/55920
......
......@@ -2707,6 +2707,20 @@ sched_analyze_2 (struct deps_desc *deps, rtx x, rtx insn)
case PREFETCH:
if (PREFETCH_SCHEDULE_BARRIER_P (x))
reg_pending_barrier = TRUE_BARRIER;
/* Prefetch insn contains addresses only. So if the prefetch
address has no registers, there will be no dependencies on
the prefetch insn. This is wrong with result code
correctness point of view as such prefetch can be moved below
a jump insn which usually generates MOVE_BARRIER preventing
to move insns containing registers or memories through the
barrier. It is also wrong with generated code performance
point of view as prefetch withouth dependecies will have a
tendency to be issued later instead of earlier. It is hard
to generate accurate dependencies for prefetch insns as
prefetch has only the start address but it is better to have
something than nothing. */
add_insn_mem_dependence (deps, true, insn,
gen_rtx_MEM (Pmode, XEXP (PATTERN (insn), 0)));
break;
case UNSPEC_VOLATILE:
......
2013-01-15 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/pr55153
* gcc.dg/pr55153.c: New.
2013-01-15 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/55920
......
/* PR tree-optimization/55153 */
/* { dg-do compile } */
/* { dg-options "-O -fsched2-use-superblocks -fschedule-insns2" } */
extern int a[];
void
foo (void)
{
__builtin_prefetch (a, 0, 0);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment