]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Don't check TREE_THIS_VOLATILE in ix86_expand_call.
authorH.J. Lu <hongjiu.lu@intel.com>
Wed, 24 Nov 2010 19:16:40 +0000 (19:16 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Wed, 24 Nov 2010 19:16:40 +0000 (11:16 -0800)
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

gcc/ChangeLog
gcc/config/i386/i386.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/pr46519-1.f [new file with mode: 0644]

index c388057f813b936d8ee7c1c152da2979c7221377..ec3b96f664d8407ae4940c595b03cf3abb518093 100644 (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
index 2a46f1a3982134eae1dfb1aee3b9b4e462802857..4e2e6e1db804e00c7888076562c15f388bd0fa44 100644 (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;
index 054c1fdf9576c1bfc76fd7a68ae6dbb1ed13dfd9..019271ae478ab135a9b32738499d8f81801102d5 100644 (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
diff --git a/gcc/testsuite/gfortran.dg/pr46519-1.f b/gcc/testsuite/gfortran.dg/pr46519-1.f
new file mode 100644 (file)
index 0000000..7b1775e
--- /dev/null
@@ -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 } }