https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91512

            Bug ID: 91512
           Summary: Fortran compile time regression.
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: skpgkp2 at gmail dot com
                CC: crazylht at gmail dot com, hjl.tools at gmail dot com,
                    tkoenig at gcc dot gnu.org
  Target Milestone: ---

We have a big fortran file which used to take 30 second to compile now it's
taking more than 30 minute. I'm trying to create a small reproducer.

Compile time regression caused by this change.

commit 396260630b60675a92bee5577333c4794565aee5 (HEAD, refs/bisect/bad)
Author: tkoenig <tkoenig@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Sun May 19 10:21:06 2019 +0000

    2019-05-19  Thomas Koenig  <tkoe...@gcc.gnu.org>

            PR fortran/88821
            * expr.c (gfc_is_simply_contiguous): Return true for
            an EXPR_ARRAY.
            * trans-array.c (is_pointer): New function.
            (gfc_conv_array_parameter): Call gfc_conv_subref_array_arg
            when not optimizing and not optimizing for size if the formal
            arg is passed by reference.
            * trans-expr.c (gfc_conv_subref_array_arg): Add arguments
            fsym, proc_name and sym.  Add run-time warning for temporary
            array creation.  Wrap argument if passing on an optional
            argument to an optional argument.
            * trans.h (gfc_conv_subref_array_arg): Add optional arguments
            fsym, proc_name and sym to prototype.

    2019-05-19  Thomas Koenig  <tkoe...@gcc.gnu.org>

            PR fortran/88821
            * gfortran.dg/alloc_comp_auto_array_3.f90: Add -O0 to dg-options
            to make sure the test for internal_pack is retained.
            * gfortran.dg/assumed_type_2.f90: Split compile and run time
            tests into this and
            * gfortran.dg/assumed_type_2a.f90: New file.
            * gfortran.dg/c_loc_test_22.f90: Likewise.
            * gfortran.dg/contiguous_3.f90: Likewise.
            * gfortran.dg/internal_pack_11.f90: Likewise.
            * gfortran.dg/internal_pack_12.f90: Likewise.
            * gfortran.dg/internal_pack_16.f90: Likewise.
            * gfortran.dg/internal_pack_17.f90: Likewise.
            * gfortran.dg/internal_pack_18.f90: Likewise.
            * gfortran.dg/internal_pack_4.f90: Likewise.
            * gfortran.dg/internal_pack_5.f90: Add -O0 to dg-options
            to make sure the test for internal_pack is retained.
            * gfortran.dg/internal_pack_6.f90: Split compile and run time
            tests into this and
            * gfortran.dg/internal_pack_6a.f90: New file.
            * gfortran.dg/internal_pack_8.f90: Likewise.
            * gfortran.dg/missing_optional_dummy_6: Split compile and run time
            tests into this and
            * gfortran.dg/missing_optional_dummy_6a.f90: New file.
            * gfortran.dg/no_arg_check_2.f90: Split compile and run time tests
            into this and
            * gfortran.dg/no_arg_check_2a.f90: New file.
            * gfortran.dg/typebound_assignment_5.f90: Split compile and run
time
            tests into this and
            * gfortran.dg/typebound_assignment_5a.f90: New file.
            * gfortran.dg/typebound_assignment_6.f90: Split compile and run
time
            tests into this and
            * gfortran.dg/typebound_assignment_6a.f90: New file.
            * gfortran.dg/internal_pack_19.f90: New file.
            * gfortran.dg/internal_pack_20.f90: New file.
            * gfortran.dg/internal_pack_21.f90: New file.



    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271377
138bc75d-0d04-0410-961f-82ee72b054a4

Reply via email to