Hi Thomas,

Could you provide the patch, please, or was it already posted?

Cheers

Paul

On Sun, 28 Apr 2019 at 10:46, Thomas Koenig <tkoe...@netcologne.de> wrote:
>
> Hello world,
>
> going back a patch which was not included in gcc-9 because it was too
> late in the development cycle, here is a patch which, when optimizing
> and not optimizing for size, does inline packing for an argument.
> As you can see from the code and the test cases, there is provision
> for optional arguments.  It was necessary to split some test cases
> to take account for the new pack inline / pack in the library split.
>
> I did regression-testing on x86_64-pc-linux-gnu, in 64-bit mode.
> (Dominique, could you tell us again what the magic incantation for
> 32-bit mode is?)
>
> OK for trunk?  (Not for backporting)
>
> Regards
>
>         Thomas
>
> 2019-04-28  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-04-28  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.



-- 
"If you can't explain it simply, you don't understand it well enough"
- Albert Einstein

Reply via email to