Hi, This patch set has been waiting for the Middle-end review for a very long time since last year.
Could you Please take a look and let me know whether it’s ready for GCC16? Thanks a lot. Qing On May 1, 2025, at 10:02, Qing Zhao <qing.z...@oracle.com> wrote: > > Hi, > > A gentle ping on review of the Middle-end of change of this patch set. > The diagnostic part has been reviewed and approved by David last year > already. > > The 4th version of the patch set has been sent for review since Nov 5, 2024. > Pinged 5 times since then. > > Linux Kernel has been using this feature for a while, and found it very > useful. > Kees has been asking for the status of this patch many many times. -:) > > We are hoping to make this into GCC16, should be a nice improvement in > general. > > Please take a look and let me know whether it’s ready for GCC16? > > Thanks a lot. > > Qing. > > For your convenience, the links to the latest version are: > > https://gcc.gnu.org/pipermail/gcc-patches/2025-April/680336.html > https://gcc.gnu.org/pipermail/gcc-patches/2025-April/680337.html > https://gcc.gnu.org/pipermail/gcc-patches/2025-April/680339.html > https://gcc.gnu.org/pipermail/gcc-patches/2025-April/680338.html > > >> On Apr 7, 2025, at 11:04, Qing Zhao <qing.z...@oracle.com> wrote: >> >> Hi, >> >> These are the patches for fixing PR109071 for GCC16 stage1: >> >> Adding -fdiagnotics-details into GCC to provide more hints to the >> end users on how the warnings come from, in order to help the user >> to locate the exact location in source code on the specific warnings >> due to compiler optimizations. >> >> They base on the the following 4th version of the patch and rebased >> on the latest trunk. >> >> bootstrapping and regression testing on both x86 and aarch64. >> >> Kees and Sam have been using this option for a while in linux kernel >> and other applications and both found very helpful. >> >> They asked me several times about the status of this work and hope >> the functionality can be available in GCC as soon as possible. >> >> The diagnostic part of the patch had been reviewed and approved by >> David already last year. >> >> Please review the middle-end part of the change. >> >> thanks a lot. >> >> Qing >> >> =================== >> >> The latest version of(4th version) is: >> https://gcc.gnu.org/pipermail/gcc-patches/2024-November/667613.html >> https://gcc.gnu.org/pipermail/gcc-patches/2024-November/667614.html >> https://gcc.gnu.org/pipermail/gcc-patches/2024-November/667615.html >> https://gcc.gnu.org/pipermail/gcc-patches/2024-November/667616.html >> >> The major improvements to this patch compared to version 3 are: >> >> 1. Divide the patch into 3 parts: >> Part 1: Add new data structure move_history, record move_history during >> transformation; >> Part 2: In warning analysis, Use the new move_history to form a rich >> location with a sequence of events, to report more context info >> of the warnings. >> Part 3: Add debugging mechanism for move_history. >> >> 2. Major change to the above Part 2, completely rewritten based on David's >> new class lazy_diagnostic_path. >> >> 3. Fix all issues identied By Sam; >> A. fix PR117375 (Bug in tree-ssa-sink.cc); >> B. documentation clarification; >> C. Add all the duplicated PRs in the commit comments; >> >> 4. Bootstrap GCC with the new -fdiagnostics-details on by default (Init (1)). >> exposed some ICE similar as PR117375 in tree-ssa-sink.cc, fixed. >> >> Qing Zhao (3): >> Provide more contexts for -Warray-bounds, -Wstringop-*warning messages >> due to code movements from compiler transformation (Part 1) >> [PR109071,PR85788,PR88771,PR106762,PR108770,PR115274,PR117179] >> Provide more contexts for -Warray-bounds, -Wstringop-*warning messages >> due to code movements from compiler transformation (Part 2) >> [PR109071,PR85788,PR88771,PR106762,PR108770,PR115274,PR117179] >> Provide more contexts for -Warray-bounds, -Wstringop-* warning >> messages due to code movements from compiler transformation (Part 3) >> [PR109071,PR85788,PR88771,PR106762,PR108770,PR115274,PR117179] >> >> gcc/Makefile.in | 2 + >> gcc/common.opt | 4 + >> gcc/diagnostic-move-history.cc | 332 ++++++++++++++++++++++++++++++ >> gcc/diagnostic-move-history.h | 94 +++++++++ >> gcc/doc/invoke.texi | 11 + >> gcc/gimple-array-bounds.cc | 39 ++-- >> gcc/gimple-array-bounds.h | 2 +- >> gcc/gimple-iterator.cc | 3 + >> gcc/gimple-pretty-print.cc | 4 + >> gcc/gimple-ssa-isolate-paths.cc | 21 ++ >> gcc/gimple-ssa-warn-access.cc | 131 +++++++----- >> gcc/gimple-ssa-warn-restrict.cc | 25 ++- >> gcc/move-history-rich-location.cc | 56 +++++ >> gcc/move-history-rich-location.h | 65 ++++++ >> gcc/testsuite/gcc.dg/pr109071.c | 43 ++++ >> gcc/testsuite/gcc.dg/pr109071_1.c | 36 ++++ >> gcc/testsuite/gcc.dg/pr109071_2.c | 50 +++++ >> gcc/testsuite/gcc.dg/pr109071_3.c | 42 ++++ >> gcc/testsuite/gcc.dg/pr109071_4.c | 41 ++++ >> gcc/testsuite/gcc.dg/pr109071_5.c | 33 +++ >> gcc/testsuite/gcc.dg/pr109071_6.c | 49 +++++ >> gcc/testsuite/gcc.dg/pr117375.c | 13 ++ >> gcc/toplev.cc | 3 + >> gcc/tree-ssa-sink.cc | 65 ++++++ >> gcc/tree-ssa-threadupdate.cc | 43 ++++ >> 25 files changed, 1124 insertions(+), 83 deletions(-) >> create mode 100644 gcc/diagnostic-move-history.cc >> create mode 100644 gcc/diagnostic-move-history.h >> create mode 100644 gcc/move-history-rich-location.cc >> create mode 100644 gcc/move-history-rich-location.h >> create mode 100644 gcc/testsuite/gcc.dg/pr109071.c >> create mode 100644 gcc/testsuite/gcc.dg/pr109071_1.c >> create mode 100644 gcc/testsuite/gcc.dg/pr109071_2.c >> create mode 100644 gcc/testsuite/gcc.dg/pr109071_3.c >> create mode 100644 gcc/testsuite/gcc.dg/pr109071_4.c >> create mode 100644 gcc/testsuite/gcc.dg/pr109071_5.c >> create mode 100644 gcc/testsuite/gcc.dg/pr109071_6.c >> create mode 100644 gcc/testsuite/gcc.dg/pr117375.c >> >> -- >> 2.43.5 >> >