From: H.J. Lu Date: Wed, 24 Nov 2010 19:16:40 +0000 (+0000) Subject: Don't check TREE_THIS_VOLATILE in ix86_expand_call. X-Git-Tag: releases/gcc-4.6.0~2347 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f0145bb81657b9916b181ddc5388e9b1e48b36ca;p=thirdparty%2Fgcc.git Don't check TREE_THIS_VOLATILE in ix86_expand_call. gcc/ 2010-11-24 H.J. Lu PR target/46519 * config/i386/i386.c (ix86_expand_call): Don't check TREE_THIS_VOLATILE. gcc/testsuite/ 2010-11-24 H.J. Lu PR target/46519 * gfortran.dg/pr46519-1.f: New. From-SVN: r167126 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c388057f813b..ec3b96f664d8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-11-24 H.J. Lu + + PR target/46519 + * config/i386/i386.c (ix86_expand_call): Don't check + TREE_THIS_VOLATILE. + 2010-11-24 H.J. Lu PR target/46519 diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 2a46f1a39821..4e2e6e1db804 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -21755,7 +21755,7 @@ ix86_expand_call (rtx retval, rtx fnaddr, rtx callarg1, } /* Add UNSPEC_CALL_NEEDS_VZEROUPPER decoration. */ - if (TARGET_VZEROUPPER && !TREE_THIS_VOLATILE (cfun->decl)) + if (TARGET_VZEROUPPER) { rtx unspec; int avx256; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 054c1fdf9576..019271ae478a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-11-24 H.J. Lu + + PR target/46519 + * gfortran.dg/pr46519-1.f: New. + 2010-11-24 H.J. Lu PR target/46519 diff --git a/gcc/testsuite/gfortran.dg/pr46519-1.f b/gcc/testsuite/gfortran.dg/pr46519-1.f new file mode 100644 index 000000000000..7b1775e8b03f --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr46519-1.f @@ -0,0 +1,46 @@ +! { dg-do compile { target i?86-*-* x86_64-*-* } } +! { dg-options "-O3 -mavx -mvzeroupper -dp" } + + PROGRAM MG3XDEMO + INTEGER LM, NM, NV, NR, NIT + + + PARAMETER( LM=7 ) +C PARAMETER( NIT=40 ) + PARAMETER( NM=2+2**LM, NV=NM**3 ) + PARAMETER( NR = (8*(NM**3+NM**2+5*NM-23+7*LM))/7 ) +C +C +C If commented line is used than there is no penalty +C COMMON /X/ U, V, R, A, C, IR, MM + COMMON /X/ A, C, IR, MM + REAL*8 A(0:3),C(0:3) + + INTEGER IT, N + INTEGER LMI, MTIME, NTIMES +C + READ *,LMI + READ *,NIT + READ *,NTIMES + READ *,U0 + + READ 9004, A + READ 9004, C +9004 FORMAT (4D8.0) + + DO I = 0, 3 + A(I) = A(I)/3.0D0 + C(I) = C(I)/64.0D0 + ENDDO +C + N = 2 + 2**LMI + + WRITE(6,7)N-2,N-2,N-2,NIT + 6 FORMAT( I4, 2E19.12) + 7 FORMAT(/,' KERNEL B: SOLVING A POISSON PROBLEM ON A ',I6,' BY ', + > I6,' BY ',I6,' GRID,',/,' USING ',I6,' MULTIGRID ITERATIONS.',/) +C + STOP + END + +! { dg-final { scan-assembler-times "avx_vzeroupper" 1 } }