Ping! Only the fix for the Fortran bootstrap failure in part 3 has been reviewed.

-Sandra


https://gcc.gnu.org/pipermail/gcc-patches/2020-August/551927.html

On 8/13/20 10:34 AM, Sandra Loosemore wrote:
This is a revised version of the patch set originally posted
last November:

https://gcc.gnu.org/pipermail/gcc-patches/2019-November/534142.html

In addition to generally updating and rebasing the patches to reflect
other changes on mainline in the meantime, for this version I have
switched to using the C lowering strategy (directly to goto form)
rather than the C++ one (to LOOP_EXPR) because of regressions in the C
optimization tests.  Besides the ones previously noted in the original
patch submission, there were a bunch of new ones since November.  Some
of them were trivial to fix (e.g., flipping branch probabilities to
reflect the different sense of the loop exit condition in the
C++-style output), but I wasn't making much progress on others and
eventually decided to pursue the "plan B" of using the C-style output
everywhere, as discussed here:

https://gcc.gnu.org/pipermail/gcc-patches/2019-December/536536.html

The only regression I ran into with this was a bootstrap failure
building the Fortran front end from a new -Wmaybe-uninitialized error.
This might be a false positive but part 3 of the new series works
around it by adding an assertion to give g++ a hint.  Unfortunately I
had no luck in trying to reduce this to a standalone test case, but I
did observe that the failure went away when I compiled that file with
debugging enabled.  :-S  I could file a PR to look into this further if
the workaround is good enough for now.

-Sandra


Sandra Loosemore (4):
   Move loop and switch tree data structures from cp/ to c-family/.
   Use C-style loop lowering instead of C++-style.
   Work around bootstrap failure in Fortran front end.
   Change C front end to emit structured loop and switch tree nodes.

  gcc/c-family/c-common.c             |  24 ++
  gcc/c-family/c-common.def           |  24 ++
  gcc/c-family/c-common.h             |  53 +++-
  gcc/c-family/c-dump.c               |  38 +++
  gcc/c-family/c-gimplify.c           | 422 ++++++++++++++++++++++++++++++++
  gcc/c-family/c-pretty-print.c       |  92 ++++++-
  gcc/c/c-decl.c                      |  18 +-
  gcc/c/c-lang.h                      |   3 +-
  gcc/c/c-objc-common.h               |   2 +
  gcc/c/c-parser.c                    | 125 +++++-----
  gcc/c/c-tree.h                      |  21 +-
  gcc/c/c-typeck.c                    | 227 ++++++-----------
  gcc/cp/cp-gimplify.c                | 469 +++++++-----------------------------
  gcc/cp/cp-objcp-common.c            |  13 +-
  gcc/cp/cp-tree.def                  |  23 --
  gcc/cp/cp-tree.h                    |  40 ---
  gcc/cp/cxx-pretty-print.c           |  78 ------
  gcc/cp/dump.c                       |  31 ---
  gcc/doc/generic.texi                |  56 +++--
  gcc/fortran/interface.c             |   4 +
  gcc/objc/ChangeLog                  |   5 +
  gcc/objc/objc-act.c                 |   6 +-
  gcc/testsuite/gcc.dg/gomp/block-7.c |  12 +-
  23 files changed, 938 insertions(+), 848 deletions(-)


Reply via email to