Hi, Richard, > On May 14, 2025, at 09:47, Richard Biener <richard.guent...@gmail.com> wrote: > > On Wed, May 14, 2025 at 3:24 PM Qing Zhao <qing.z...@oracle.com> wrote: >> >> 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? > > I plan to look at this next week while idling on a train.
Thanks a lot! FYI, I just sent the 6th version of the patch to the gcc alias, the only change compared to 5th Version is a slightly adjustment to the new move-history-rich-location.[h|cc] due to an additional param to simple_diagnostic_path's in r16-413. And has been approved by David. All the Middle-end changes are kept the same as before. Please review this 6th version. Looking forward to your review. Qing > Richard. > >> 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 >>>> >>> >>