diff options
| author | Patrick Palka <ppalka@redhat.com> | 2026-01-30 13:16:20 -0500 |
|---|---|---|
| committer | Patrick Palka <ppalka@redhat.com> | 2026-01-30 13:16:20 -0500 |
| commit | a8a1183d58e19b84a32e5e0a469352639fdbe312 (patch) | |
| tree | 452d1a23a1bf47d6f6cba6ccb1820208e758acb3 /libjava/testsuite/libjava.lang/PR16867.java | |
| parent | f58b792238ad8b35954e5668c8e0ff03801ce278 (diff) | |
| download | gcc-a8a1183d58e19b84a32e5e0a469352639fdbe312.zip gcc-a8a1183d58e19b84a32e5e0a469352639fdbe312.tar.gz gcc-a8a1183d58e19b84a32e5e0a469352639fdbe312.tar.bz2 | |
libstdc++/regex: add [[gnu::always_inline]] to _Executor::_M_node
The compiler understandably doesn't know that _M_node only ever has a
single call site, _M_dfs, (and is not directly called from other library
headers or user code) and so decides not to inline it. So use the
always_inline attribute to force the inlining. This seems sufficient to
make all _M_dfs subroutines get inlined away, and speeds up the executor
by 30% on some microbenchmarks.
libstdc++-v3/ChangeLog:
* include/bits/regex_executor.tcc (__detail::_Executor::_M_node)
[__OPTIMIZE__]: Add [[gnu::always_inline]] attribute. Declare
inline.
Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
Diffstat (limited to 'libjava/testsuite/libjava.lang/PR16867.java')
0 files changed, 0 insertions, 0 deletions
