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
This commit is contained in:
parent
207b59560f
commit
0e80383ffb
4 changed files with 35 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
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:
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
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
|
||||
|
|
11
gcc/testsuite/gcc.dg/pr55153.c
Normal file
11
gcc/testsuite/gcc.dg/pr55153.c
Normal file
|
@ -0,0 +1,11 @@
|
|||
/* 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);
|
||||
}
|
Loading…
Add table
Reference in a new issue