On Wed, Jun 2, 2021 at 4:53 PM Aldy Hernandez <al...@redhat.com> wrote: > > > > On 6/2/21 1:52 PM, Richard Biener wrote: > > On Wed, Jun 2, 2021 at 12:34 PM Aldy Hernandez via Gcc-patches > > <gcc-patches@gcc.gnu.org> wrote: > > > But the whole point of all this singing and dancing is not to make > > warnings but to be able to implement assert (); or assume (); that > > will result in no code but optimization based on the assumption. > > > > That means that all the checks guarding __builtin_unreachable () > > should be removed at the GIMPLE level - just not too early > > to preserve range info on the variables participating in the > > guarding condition. > > > > So yes, it sounds fragile but instead it's carefully architected. Heh. > > > > In particular it is designed so that early optimization leaves those > > unreachable () around (for later LTO consumption and inlining, etc. > > to be able to re-create the ranges) whilst VRP1 / DOM will end up > > eliminating them. I think we have testcases that verify said behavior, > > namely optimize out range checks based on the assertions - maybe missed > > Understood. > > I will note that my proposed patch does not remove any unreachables, and > maintains current behavior. It just refines the ranges from the ranger > with current global ranges. So I think the patch should go in, > regardless of what is decided with __builtin_unreachables downthread. > > > the case where this only happens after inlining (important for your friendly > > C++ abstraction hell), and the unreachable()s gone. > > I have pointed this out before, and will repeat it in case you missed it: > > "Richard, you have made it very clear that we disagree on core design > issues, but that's no reason to continually make snide comments on every > patch or PRs Can we keep the discussions focused on the technical bits?"
You need to stop taking every sentence I write as personal insult. I was refering to C++ abstraction in general in the sense as that we should be prepared to handle index checking removal even across inline boundaries. Reading my comment I guess the "your" might mislead you - sorry for not being a native speaker and thus picking a wrong general term here. Richard. > https://gcc.gnu.org/pipermail/gcc-patches/2021-April/569072.html >