]> gcc.gnu.org Git - gcc.git/commitdiff
re PR tree-optimization/32921 (Revision 126326 causes 12% slowdown)
authorRichard Guenther <rguenther@suse.de>
Fri, 19 Oct 2007 11:25:55 +0000 (11:25 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Fri, 19 Oct 2007 11:25:55 +0000 (11:25 +0000)
2007-10-19  Richard Guenther  <rguenther@suse.de>

PR middle-end/32921
* tree.c (build_array_type): Do not re-layout unbound array
types.

* gfortran.dg/pr32921.f: New testcase.

From-SVN: r129484

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/pr32921.f [new file with mode: 0644]
gcc/tree.c

index f7454c50c817eca2a1692154389f7f55683325e9..5756ae8e61e30ef2763e2c5146d1ff7211616816 100644 (file)
@@ -1,3 +1,9 @@
+2007-10-19  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/32921
+       * tree.c (build_array_type): Do not re-layout unbound array
+       types.
+
 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
 
        * config/mips/mips.c (mips_canonicalize_comparison):  Check
index 5cbf24462c233d039256c1acc86f6dd5fc5c7e1a..a22c81275d32a8d40511e5358df23d7d58a750ee 100644 (file)
@@ -1,3 +1,8 @@
+2007-10-19  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/32921
+       * gfortran.dg/pr32921.f: New testcase.
+
 2007-10-18  Benjamin Kosnik  <bkoz@redhat.com>
 
        * g++.old-deja/g++.robertl/eb130.C: Adjust include paths.
diff --git a/gcc/testsuite/gfortran.dg/pr32921.f b/gcc/testsuite/gfortran.dg/pr32921.f
new file mode 100644 (file)
index 0000000..d110301
--- /dev/null
@@ -0,0 +1,49 @@
+! { dg-do compile }
+! { dg-options "-O2 -fdump-tree-lim" }
+! gfortran -c -m32 -O2 -S junk.f
+!
+      MODULE LES3D_DATA
+
+      IMPLICIT REAL*8 (A-H,O-Z)
+
+      PARAMETER ( NSPECI = 1, ND = 7 + NSPECI )
+
+      INTEGER IMAX
+
+      DOUBLE PRECISION,ALLOCATABLE,DIMENSION(:,:,:) ::
+     >         UAV,QAV
+
+
+      END MODULE LES3D_DATA
+!---------------------------------------------------------------------
+!------------------------------------------------------------------------
+      SUBROUTINE FLUXI()
+
+      USE LES3D_DATA
+      IMPLICIT REAL*8(A-H,O-Z)
+
+      ALLOCATABLE QS(:)
+
+      ALLOCATE( QS(0:IMAX))
+      QS=0D0
+
+      RETURN
+      END
+!------------------------------------------------------------------------
+!------------------------------------------------------------------------
+      SUBROUTINE EXTRAPI()
+
+      USE LES3D_DATA
+      IMPLICIT REAL*8(A-H,O-Z)
+
+      I1 = 0
+      I2 = IMAX - 1
+
+            DO I = I1, I2
+               UAV(I,1,2) = QAV(I,1,2)
+            END DO
+
+      RETURN
+      END
+! { dg-final { scan-tree-dump-times "stride" 6 "lim" } }
+! { dg-final { cleanup-tree-dump "lim" } }
index 88ec29e13e37d287c0574efcd0d8e49e366dbbef..3cfa55d911bee95e794cee504d2d0297066824b6 100644 (file)
@@ -5665,7 +5665,7 @@ build_array_type (tree elt_type, tree index_type)
   hashcode = iterative_hash_object (TYPE_HASH (index_type), hashcode);
   t = type_hash_canon (hashcode, t);
 
-  if (!COMPLETE_TYPE_P (t))
+  if (!COMPLETE_OR_UNBOUND_ARRAY_TYPE_P (t))
     layout_type (t);
 
   if (TYPE_CANONICAL (t) == t)
This page took 0.165422 seconds and 5 git commands to generate.