diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/DATESTAMP | 2 | ||||
-rw-r--r-- | gcc/fortran/ChangeLog | 102 | ||||
-rw-r--r-- | gcc/m2/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 38 | ||||
-rw-r--r-- | libstdc++-v3/ChangeLog | 40 |
6 files changed, 193 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0e5be6c..b7934c5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2024-09-21 Mikael Morin <mikael@gcc.gnu.org> + + PR fortran/90608 + * flag-types.h (enum gfc_inlineable_intrinsics): New type. + 2024-09-20 David Malcolm <dmalcolm@redhat.com> PR other/116613 diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index 6df304d..c435820 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20240921 +20240922 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index e2a81c7..0e1ff28 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,105 @@ +2024-09-21 Mikael Morin <mikael@gcc.gnu.org> + + PR fortran/90608 + * invoke.texi(finline-intrinsics): Document new flag. + * lang.opt (finline-intrinsics, finline-intrinsics=, + fno-inline-intrinsics): New flags. + * options.cc (gfc_post_options): If the option variable controlling + the inlining of MAXLOC (respectively MINLOC) has not been set, set + it or clear it depending on the optimization option variables. + * trans-intrinsic.cc (gfc_inline_intrinsic_function_p): Return false + if inlining for the intrinsic is disabled according to the option + variable. + +2024-09-21 Mikael Morin <mikael@gcc.gnu.org> + + PR fortran/90608 + * trans-intrinsic.cc (gfc_conv_intrinsic_minmaxloc): Generate a set + of index variables. Set them using the loop indexes before leaving + the first set of loops. Generate a new loop entry predicate. + Initialize it. Set it before leaving the first set of loops. Clear + it in the body of the second set of loops. For the second set of + loops, update each loop lower bound to use the corresponding index + variable if the predicate variable is set. + +2024-09-21 Mikael Morin <mikael@gcc.gnu.org> + + PR fortran/90608 + * trans-intrinsic.cc (gfc_conv_intrinsic_minmaxloc): Initialize + and update all the variables. Put the label and goto in the + outermost scalarizer loop. Don't start the second loop where the + first stopped. + (gfc_inline_intrinsic_function_p): Also return TRUE for array MASK + or for any REAL type. + +2024-09-21 Mikael Morin <mikael@gcc.gnu.org> + + PR fortran/90608 + * trans-intrinsic.cc (gfc_conv_intrinsic_minmaxloc): Generate + variable initialization for each dimension in the else branch of + the toplevel condition. + (gfc_inline_intrinsic_function_p): Return TRUE for scalar MASK. + +2024-09-21 Mikael Morin <mikael@gcc.gnu.org> + + PR fortran/90608 + * trans-array.cc (gfc_conv_ss_startstride): Set the MINLOC/MAXLOC + result upper bound using the rank of the ARRAY argument. Ajdust + the error message for intrinsic result arrays. Only check array + bounds for array references. Move bound check decision code... + (bounds_check_needed): ... here as a new predicate. Allow bound + check for MINLOC/MAXLOC intrinsic results. + * trans-intrinsic.cc (gfc_conv_intrinsic_minmaxloc): Change the + result array upper bound to the rank of ARRAY. Update the NONEMPTY + variable to depend on the non-empty extent of every dimension. Use + one variable per dimension instead of a single variable for the + position and the offset. Update their declaration, initialization, + and update to affect the variable of each dimension. Use the first + variable only in areas only accessed with rank 1 ARRAY argument. + Set every element of the result using its corresponding variable. + (gfc_inline_intrinsic_function_p): Return true for integral ARRAY + and absent DIM and MASK. + +2024-09-21 Mikael Morin <mikael@gcc.gnu.org> + + * trans-array.cc (gfc_conv_ss_startstride): Move array bound check + generation code... + (add_check_section_in_array_bounds): ... here as a new function. + +2024-09-21 Mikael Morin <mikael@gcc.gnu.org> + + * frontend-passes.cc (optimize_minmaxloc): Remove. + (optimize_expr): Remove dispatch to optimize_minmaxloc. + +2024-09-21 Mikael Morin <mikael@gcc.gnu.org> + + PR fortran/90608 + * trans-array.cc (gfc_conv_ss_startstride): Set the scalarization + rank based on the MINLOC/MAXLOC rank if needed. Call the inline + code generation and setup the scalarizer array descriptor info + in the MINLOC and MAXLOC cases. + * trans-intrinsic.cc (gfc_conv_intrinsic_minmaxloc): Return the + result array element if the scalarizer is setup and we are inside + the loops. Restrict library function call dispatch to the case + where inline expansion is not supported. Declare an array result + if the expression isn't scalar. Initialize the array result single + element and return the result variable if the expression isn't + scalar. + (walk_inline_intrinsic_minmaxloc): New function. + (walk_inline_intrinsic_function): Add MINLOC and MAXLOC cases, + dispatching to walk_inline_intrinsic_minmaxloc. + (gfc_add_intrinsic_ss_code): Add MINLOC and MAXLOC cases. + (gfc_inline_intrinsic_function_p): Return true if ARRAY has rank 1, + regardless of DIM. + +2024-09-21 Mikael Morin <mikael@gcc.gnu.org> + + PR fortran/90608 + * frontend-passes.cc (optimize_minmaxloc): Skip if we can generate + inline code for the unmodified expression. + * trans-intrinsic.cc (gfc_inline_intrinsic_function_p): Add + MINLOC and MAXLOC cases. + 2024-09-20 David Malcolm <dmalcolm@redhat.com> PR other/116613 diff --git a/gcc/m2/ChangeLog b/gcc/m2/ChangeLog index da83d57..a5d45ac 100644 --- a/gcc/m2/ChangeLog +++ b/gcc/m2/ChangeLog @@ -1,3 +1,10 @@ +2024-09-21 Gaius Mulley <gaiusmod2@gmail.com> + + * gm2-compiler/M2Comp.mod (GenerateDependencies): Remove + unused parameter. + (WriteDep): Remove parameter dep. + (WritePhoneDep): Ditto. + 2024-09-20 Gaius Mulley <gaiusmod2@gmail.com> * gm2-compiler/M2Check.mod (checkUnboundedArray): New diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 4a5f1db..9bed4d7 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,41 @@ +2024-09-21 Mikael Morin <mikael@gcc.gnu.org> + + PR fortran/90608 + * gfortran.dg/minmaxloc_18.f90: New test. + * gfortran.dg/minmaxloc_18a.f90: New test. + * gfortran.dg/minmaxloc_18b.f90: New test. + * gfortran.dg/minmaxloc_18c.f90: New test. + * gfortran.dg/minmaxloc_18d.f90: New test. + +2024-09-21 Mikael Morin <mikael@gcc.gnu.org> + + PR fortran/90608 + * gfortran.dg/maxloc_bounds_5.f90: Additionally accept error + messages reported by the scalarizer. + * gfortran.dg/maxloc_bounds_6.f90: Ditto. + +2024-09-21 Mikael Morin <mikael@gcc.gnu.org> + + PR fortran/90608 + * gfortran.dg/maxloc_bounds_7.f90: Additionally accept the error message + reported by the scalarizer. + +2024-09-21 Mikael Morin <mikael@gcc.gnu.org> + + PR fortran/90608 + * gfortran.dg/maxloc_bounds_4.f90: Additionally accept the error + message emitted by the scalarizer. + +2024-09-21 Mikael Morin <mikael@gcc.gnu.org> + + PR fortran/90608 + * gfortran.dg/ieee/maxloc_nan_1.f90: New test. + * gfortran.dg/ieee/minloc_nan_1.f90: New test. + * gfortran.dg/maxloc_7.f90: New test. + * gfortran.dg/maxloc_with_mask_1.f90: New test. + * gfortran.dg/minloc_8.f90: New test. + * gfortran.dg/minloc_with_mask_1.f90: New test. + 2024-09-20 David Malcolm <dmalcolm@redhat.com> PR other/116792 diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 4259901..d4037cf 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,43 @@ +2024-09-21 Jason Merrill <jason@redhat.com> + + * include/c_compatibility/ctype.h + * include/c_compatibility/errno.h + * include/c_compatibility/float.h + * include/c_compatibility/iso646.h + * include/c_compatibility/limits.h + * include/c_compatibility/locale.h + * include/c_compatibility/setjmp.h + * include/c_compatibility/signal.h + * include/c_compatibility/stdarg.h + * include/c_compatibility/stdbool.h + * include/c_compatibility/stddef.h + * include/c_compatibility/stdio.h + * include/c_compatibility/string.h + * include/c_compatibility/tgmath.h + * include/c_compatibility/time.h + * include/c_compatibility/uchar.h + * include/c_compatibility/wchar.h + * include/c_compatibility/wctype.h + * include/c_global/ccomplex + * include/c_global/cctype + * include/c_global/cerrno + * include/c_global/cfloat + * include/c_global/climits + * include/c_global/clocale + * include/c_global/cmath + * include/c_global/csetjmp + * include/c_global/csignal + * include/c_global/cstdalign + * include/c_global/cstdarg + * include/c_global/cstdbool + * include/c_global/cstdio + * include/c_global/cstdlib + * include/c_global/cstring + * include/c_global/ctgmath + * include/c_global/ctime + * include/c_global/cwchar + * include/c_global/cwctype: Move header guard before #includes. + 2024-09-20 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/116529 |