[Bug libstdc++/113046] New: Standard algorithms should do de-iterator optimizations
unlvsur at live dot com
gcc-bugzilla@gcc.gnu.org
Sat Dec 16 18:43:51 GMT 2023
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113046
Bug ID: 113046
Summary: Standard algorithms should do de-iterator
optimizations
Product: gcc
Version: 14.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: unlvsur at live dot com
Target Milestone: ---
I presented an example on Godbolt indicating that the combined use of
std::vector<int>::iterator with int* result in duplicated code when compared to
using int*, which is not ideal. Additionally, it was observed that GCC and
Clang do not optimize std::vector<int>::iterator as effectively as a
straightforward int*. You can view the example here:
https://godbolt.org/z/x3q18fG3T
To address this issue, I recommend implementing a de-iterator optimization.
This optimization aims to eliminate the abstraction of the contiguous iterator,
treating it as a simple pointer. By doing so, the compiler can merge duplicated
code with a pointer, leading to simplified code and better overall
optimization.
More information about the Gcc-bugs
mailing list