On Tue, 30 Oct 2012, Richard Biener wrote:
>
> As requested this adds predicates to check whether the lhs of
> a assign or call is a store and whether rhs1 of an assignment
> is a load. It uses this in place of the existing, slightly
> bogus, check in the stmt estimate code.
>
> Bootstrap and regtest running on x86_64-unknown-linux-gnu.
Committed with the following adjustment as we now would inline foo
as we no longer account memory move costs for stmts like
pInput_9 = &MEM[(void *)pInput_1 + 8B];
adding noinline looks reasonable anyway (we'll fix the above
to cost something again with a followup).
Richard.
Index: gcc/testsuite/gcc.dg/vect/slp-perm-2.c
===================================================================
*** gcc/testsuite/gcc.dg/vect/slp-perm-2.c (revision 192984)
--- gcc/testsuite/gcc.dg/vect/slp-perm-2.c (working copy)
***************
*** 12,18 ****
#define N 16
! void foo (unsigned int *__restrict__ pInput, unsigned int *__restrict__
pOutput)
{
unsigned int i, a, b;
--- 12,19 ----
#define N 16
! void __attribute__((noinline))
! foo (unsigned int *__restrict__ pInput, unsigned int *__restrict__
pOutput)
{
unsigned int i, a, b;