aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/DATESTAMP2
-rw-r--r--gcc/fortran/ChangeLog102
-rw-r--r--gcc/m2/ChangeLog7
-rw-r--r--gcc/testsuite/ChangeLog38
-rw-r--r--libstdc++-v3/ChangeLog40
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