<div dir="ltr"><div>The patch series is now on trunk, and will continue with the next series soon.</div>Thank you for the contributions, and I am looking forward to the next patches for review.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Aug 20, 2025 at 6:54 PM Jonathan Wakely <<a href="mailto:jwakely@redhat.com" target="_blank">jwakely@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 03/08/25 22:57 +0200, Luc Grosheintz wrote:<br>
>The combined effect of this sequence of change is:<br>
><br>
>  * a reduction in the number of template instantiations, by<br>
>    - avoiding needless dependency of IndexType,<br>
>    - special formulas for low-rank extents,<br>
>    - special formulas for (nearly) fully dynamic extents.<br>
><br>
>  * improved code quality, by<br>
>    - precomputing partial products of the static extents,<br>
>    - special cases for low-rank extents,<br>
>    - rewriting the condition E[i] == dynamic_extent in a more<br>
>      optimizer friendly manner.<br>
>    - effectively loop-unrolling extents::operator==.<br>
><br>
>While simplistic micro-benchmarking shows the effectiveness of these<br>
>changes, likely the stronger argument is presented in each commit:<br>
>  a) each change removes needless complexity,<br>
>  b) before/after examples of generated code show the effectiveness.<br>
><br>
>Luc Grosheintz (8):<br>
>  libstdc++: Reduce template instantiations in <mdspan>.<br>
>  libstdc++: Precompute products of static extents.<br>
>  libstdc++: Improve low-rank layout_{left,right}::stride.<br>
>  libstdc++: Improve fully dynamic extents in mdspan.<br>
>  libstdc++: Improve nearly fully dynamic extents in mdspan.<br>
>  libstdc++: Reduce indirection in extents::extent.<br>
>  libstdc++: Improve extents::operator==.<br>
>  libstdc++: Replace numeric_limit with __int_traits in mdspan.<br>
><br>
> libstdc++-v3/include/std/mdspan               | 282 +++++++++++++-----<br>
> .../mdspan/extents/class_mandates_neg.cc      |   3 +<br>
> 2 files changed, 208 insertions(+), 77 deletions(-)<br>
<br>
I've now reviewed all the patches in this series, with all Tomasz's v3<br>
patches making adjustments, and the whole series is OK for trunk.<br>
<br>
Some really nice codegen improvemens here, thanks!<br>
<br>
<br>
</blockquote></div>