From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 7879) id BA600385783F; Wed, 15 Feb 2023 10:25:15 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BA600385783F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1676456715; bh=cOzyA9RQvR0a7V5+M46nsES1TyiVxH9EDOfg6gn1h3k=; h=From:To:Subject:Date:From; b=SssPfl1rKIIMoiDEfu2n8O4BLYjiZ/e++iL9smihCSzBaAHNZX84hZo7XRo3d0Dly WEH63TeJEw502KEa+KTezwjXU6hRuHM1Xq2WsC1nSGPPASCpTisLUF9/ez85NzRdRV xTZZBo874MezJMc3onip0XI40BHqEG9xgIDLwbwQ= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Filip Kastl To: gcc-cvs@gcc.gnu.org, libstdc++-cvs@gcc.gnu.org Subject: [gcc(refs/users/pheeck/heads/sccp)] libstdc++: Add always_inline to trivial iterator operations X-Act-Checkin: gcc X-Git-Author: Jonathan Wakely X-Git-Refname: refs/users/pheeck/heads/sccp X-Git-Oldrev: 6ef6e95fea7234189a6dd670e9baed14a914e7fa X-Git-Newrev: 7b8579056e509aa40143593e02eaa3e03415635c Message-Id: <20230215102515.BA600385783F@sourceware.org> Date: Wed, 15 Feb 2023 10:25:15 +0000 (GMT) List-Id: https://gcc.gnu.org/g:7b8579056e509aa40143593e02eaa3e03415635c commit 7b8579056e509aa40143593e02eaa3e03415635c Author: Jonathan Wakely Date: Thu Nov 24 21:13:36 2022 +0000 libstdc++: Add always_inline to trivial iterator operations libstdc++-v3/ChangeLog: * include/bits/stl_iterator_base_funcs.h (__distance): Add always_inline attribute to overload for random access iterators. (advance, distance, next, prev): Add always_inline attribute to inline functions that just forward to another function. Diff: --- libstdc++-v3/include/bits/stl_iterator_base_funcs.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libstdc++-v3/include/bits/stl_iterator_base_funcs.h b/libstdc++-v3/include/bits/stl_iterator_base_funcs.h index 1551b226ff4..25dddb3e7e8 100644 --- a/libstdc++-v3/include/bits/stl_iterator_base_funcs.h +++ b/libstdc++-v3/include/bits/stl_iterator_base_funcs.h @@ -94,6 +94,7 @@ _GLIBCXX_END_NAMESPACE_CONTAINER } template + __attribute__((__always_inline__)) inline _GLIBCXX14_CONSTEXPR typename iterator_traits<_RandomAccessIterator>::difference_type __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, @@ -141,7 +142,7 @@ _GLIBCXX_END_NAMESPACE_CONTAINER * and are constant time. For other %iterator classes they are linear time. */ template - _GLIBCXX_NODISCARD + _GLIBCXX_NODISCARD __attribute__((__always_inline__)) inline _GLIBCXX17_CONSTEXPR typename iterator_traits<_InputIterator>::difference_type distance(_InputIterator __first, _InputIterator __last) @@ -214,6 +215,7 @@ _GLIBCXX_END_NAMESPACE_CONTAINER * and are constant time. For other %iterator classes they are linear time. */ template + __attribute__((__always_inline__)) inline _GLIBCXX17_CONSTEXPR void advance(_InputIterator& __i, _Distance __n) { @@ -225,7 +227,7 @@ _GLIBCXX_END_NAMESPACE_CONTAINER #if __cplusplus >= 201103L template - _GLIBCXX_NODISCARD + _GLIBCXX_NODISCARD [[__gnu__::__always_inline__]] inline _GLIBCXX17_CONSTEXPR _InputIterator next(_InputIterator __x, typename iterator_traits<_InputIterator>::difference_type __n = 1) @@ -237,7 +239,7 @@ _GLIBCXX_END_NAMESPACE_CONTAINER } template - _GLIBCXX_NODISCARD + _GLIBCXX_NODISCARD [[__gnu__::__always_inline__]] inline _GLIBCXX17_CONSTEXPR _BidirectionalIterator prev(_BidirectionalIterator __x, typename iterator_traits<_BidirectionalIterator>::difference_type __n = 1)