[PATCH v1 0/3] Implement aligned_accessor [P2897R7].
Tomasz Kaminski
tkaminsk@redhat.com
Tue Jul 8 08:12:53 GMT 2025
I have created a separate bugzilla for it:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120994
On Tue, Jul 8, 2025 at 9:58 AM Luc Grosheintz <luc.grosheintz@gmail.com>
wrote:
> How would you like to track this on bugzilla:
>
> 1. As part of submdspan:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110352
> https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2630r4.html
>
> 2. As a new issue, because it's a different paper:
> https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2897r7.html
>
> On 7/3/25 12:33, Luc Grosheintz wrote:
> > This patch series implements the aligned_accessor paper P2897R7 in three
> > parts:
> >
> > - Implement `is_sufficiently_aligned` which is part of <memory>.
> > - Prepare the accessor tests for reuse.
> > - Implement aligned_accessor.
> >
> > A couple of remarks:
> >
> > - The paper P2897R7 and spec N5008 don't specify that the aligment
> > for is_sufficiently_aligned must be a power of two.
> >
> > - The reasoning for why is_sufficiently_aligned isn't constexpr is
> > nicely described in the paper.
> >
> > - Use of `class` in is_sufficiently_aligned is for consistency within
> > that file.
> >
> > - The tests create new unsupported tests and expected failures. The
> > testsuite doesn't have all that many of those; so there's likely a
> > strategy to avoid this. However, I don't know how.
> >
> > - These changes are independent of mdspan, but due to the precise
> > location of the code it might conflict with the mdspan patch series.
> >
> > - I skipped updating `cxxapi-data.csv` for is_sufficiently_aligned
> > due to consistency with the rest of the mdspan patches, i.e. there
> > will be a bulk update of the file later.
> >
> > - Each commit was tested with/without PCH and with/without
> > _GLIBCXX_DEBUG filtered by 20_util/is_sufficiently_aligned
> > and 23_containers/mdspan.
> > The last commit was tested fully with/without PCH. All tests on
> > x86_64-linux.
> >
> > As always I'm happy to reorganize into different commits, if the
> > grouping doesn't make sense.
> >
> > Luc Grosheintz (3):
> > libstdc++: Implement is_sufficiently_aligned.
> > libstdc++: Prepare test code for default_accessor for reuse.
> > libstdc++: Implement aligned_accessor from mdspan.
> >
> > libstdc++-v3/include/bits/align.h | 16 ++
> > libstdc++-v3/include/bits/version.def | 18 ++
> > libstdc++-v3/include/bits/version.h | 20 +++
> > libstdc++-v3/include/std/mdspan | 72 ++++++++
> > libstdc++-v3/include/std/memory | 1 +
> > libstdc++-v3/src/c++23/std.cc.in | 4 +-
> > .../20_util/is_sufficiently_aligned/1.cc | 31 ++++
> > .../20_util/is_sufficiently_aligned/2.cc | 7 +
> > .../23_containers/mdspan/accessors/aligned.cc | 43 +++++
> > .../mdspan/accessors/aligned_ftm.cc | 6 +
> > .../mdspan/accessors/aligned_neg.cc | 33 ++++
> > .../accessors/debug/aligned_access_neg.cc | 23 +++
> > .../accessors/debug/aligned_offset_neg.cc | 23 +++
> > .../23_containers/mdspan/accessors/default.cc | 99 -----------
> > .../23_containers/mdspan/accessors/generic.cc | 168 ++++++++++++++++++
> > 15 files changed, 464 insertions(+), 100 deletions(-)
> > create mode 100644
> libstdc++-v3/testsuite/20_util/is_sufficiently_aligned/1.cc
> > create mode 100644
> libstdc++-v3/testsuite/20_util/is_sufficiently_aligned/2.cc
> > create mode 100644
> libstdc++-v3/testsuite/23_containers/mdspan/accessors/aligned.cc
> > create mode 100644
> libstdc++-v3/testsuite/23_containers/mdspan/accessors/aligned_ftm.cc
> > create mode 100644
> libstdc++-v3/testsuite/23_containers/mdspan/accessors/aligned_neg.cc
> > create mode 100644
> libstdc++-v3/testsuite/23_containers/mdspan/accessors/debug/aligned_access_neg.cc
> > create mode 100644
> libstdc++-v3/testsuite/23_containers/mdspan/accessors/debug/aligned_offset_neg.cc
> > delete mode 100644
> libstdc++-v3/testsuite/23_containers/mdspan/accessors/default.cc
> > create mode 100644
> libstdc++-v3/testsuite/23_containers/mdspan/accessors/generic.cc
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://gcc.gnu.org/pipermail/libstdc++/attachments/20250708/a5f27d92/attachment.htm>
More information about the Libstdc++
mailing list