Re: *PING* [PATCH] PR fortran/90903 [part2] Add runtime checking for the MVBITS intrinsic

2020-09-20 Thread Jerry DeLisle via Gcc-patches

Harold, Looks good. Thanks for the work!

Jerry

On 9/20/20 11:10 AM, Harald Anlauf wrote:

*ping*


Gesendet: Sonntag, 13. September 2020 um 23:24 Uhr
Von: "Harald Anlauf" 
An: "fortran" , "gcc-patches" 
Cc: "Paul Richard Thomas" 
Betreff: [PATCH] PR fortran/90903 [part2] Add runtime checking for the MVBITS 
intrinsic

Dear all,

finally here comes the second part of runtime checks for the bit
manipulation intrinsics, this time MVBITS.  This turned out to be
more elaborate than the treatment of simple function calls.

I chose the path to inline expand MVBITS, which enables additional
optimization opportunities in some cases, such as constant arguments.
For the case of scalar arguments, this was mostly straightforward.
However, for the proper handling of MVBITS as an elemental procedure
all honors should go to Paul, as he not only lend me a hand and kindly
guided me through the swampland of the scalarizer, but he also managed
to placate the gimple part of gcc.

Regtested on x86_64-pc-linux-gnu.

OK for master?

Thanks,
Harald


PR fortran/90903 [part2] - Add runtime checking for the MVBITS intrinsic

Implement inline expansion of the intrinsic elemental subroutine MVBITS
with optional runtime checks for valid argument range.

gcc/fortran/ChangeLog:

* iresolve.c (gfc_resolve_mvbits): Remove unneeded conversion of
FROMPOS, LEN and TOPOS arguments to fit a C int.
* trans-intrinsic.c (gfc_conv_intrinsic_mvbits): Add inline
expansion of MVBITS intrinsic elemental subroutine and add code
for runtime argument checking.
(gfc_conv_intrinsic_subroutine): Recognise MVBITS intrinsic, but
defer handling to gfc_trans_call.
* trans-stmt.c (replace_ss):
(gfc_trans_call): Adjust to handle inline expansion, scalarization
of intrinsic subroutine MVBITS in gfc_conv_intrinsic_mvbits.
* trans.h (gfc_conv_intrinsic_mvbits): Add prototype for
gfc_conv_intrinsic_mvbits.

gcc/testsuite/ChangeLog:

* gfortran.dg/check_bits_2.f90: New test.

Co-authored-by: Paul Thomas  






*PING* [PATCH] PR fortran/90903 [part2] Add runtime checking for the MVBITS intrinsic

2020-09-20 Thread Harald Anlauf
*ping*

> Gesendet: Sonntag, 13. September 2020 um 23:24 Uhr
> Von: "Harald Anlauf" 
> An: "fortran" , "gcc-patches" 
> Cc: "Paul Richard Thomas" 
> Betreff: [PATCH] PR fortran/90903 [part2] Add runtime checking for the MVBITS 
> intrinsic
>
> Dear all,
>
> finally here comes the second part of runtime checks for the bit
> manipulation intrinsics, this time MVBITS.  This turned out to be
> more elaborate than the treatment of simple function calls.
>
> I chose the path to inline expand MVBITS, which enables additional
> optimization opportunities in some cases, such as constant arguments.
> For the case of scalar arguments, this was mostly straightforward.
> However, for the proper handling of MVBITS as an elemental procedure
> all honors should go to Paul, as he not only lend me a hand and kindly
> guided me through the swampland of the scalarizer, but he also managed
> to placate the gimple part of gcc.
>
> Regtested on x86_64-pc-linux-gnu.
>
> OK for master?
>
> Thanks,
> Harald
>
>
> PR fortran/90903 [part2] - Add runtime checking for the MVBITS intrinsic
>
> Implement inline expansion of the intrinsic elemental subroutine MVBITS
> with optional runtime checks for valid argument range.
>
> gcc/fortran/ChangeLog:
>
>   * iresolve.c (gfc_resolve_mvbits): Remove unneeded conversion of
>   FROMPOS, LEN and TOPOS arguments to fit a C int.
>   * trans-intrinsic.c (gfc_conv_intrinsic_mvbits): Add inline
>   expansion of MVBITS intrinsic elemental subroutine and add code
>   for runtime argument checking.
>   (gfc_conv_intrinsic_subroutine): Recognise MVBITS intrinsic, but
>   defer handling to gfc_trans_call.
>   * trans-stmt.c (replace_ss):
>   (gfc_trans_call): Adjust to handle inline expansion, scalarization
>   of intrinsic subroutine MVBITS in gfc_conv_intrinsic_mvbits.
>   * trans.h (gfc_conv_intrinsic_mvbits): Add prototype for
>   gfc_conv_intrinsic_mvbits.
>
> gcc/testsuite/ChangeLog:
>
>   * gfortran.dg/check_bits_2.f90: New test.
>
> Co-authored-by: Paul Thomas  
>
>