Don't check TREE_THIS_VOLATILE in ix86_expand_call.

gcc/

2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/46519
	* config/i386/i386.c (ix86_expand_call): Don't check
	TREE_THIS_VOLATILE.

gcc/testsuite/

2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/46519
	* gfortran.dg/pr46519-1.f: New.

From-SVN: r167126
This commit is contained in:
H.J. Lu 2010-11-24 19:16:40 +00:00 committed by H.J. Lu
parent 617e6634a2
commit f0145bb816
4 changed files with 58 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2010-11-24 H.J. Lu <hongjiu.lu@intel.com>
PR target/46519
* config/i386/i386.c (ix86_expand_call): Don't check
TREE_THIS_VOLATILE.
2010-11-24 H.J. Lu <hongjiu.lu@intel.com>
PR target/46519

View File

@ -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;

View File

@ -1,3 +1,8 @@
2010-11-24 H.J. Lu <hongjiu.lu@intel.com>
PR target/46519
* gfortran.dg/pr46519-1.f: New.
2010-11-24 H.J. Lu <hongjiu.lu@intel.com>
PR target/46519

View File

@ -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 } }