1234567891011121314151617181920212223242526272829303132333435363738 |
- // branch hints
- // Copyright (C) 2007, 2008 Tim Blechmann
- //
- // Distributed under the Boost Software License, Version 1.0. (See
- // accompanying file LICENSE_1_0.txt or copy at
- // http://www.boost.org/LICENSE_1_0.txt)
- #ifndef BOOST_LOCKFREE_BRANCH_HINTS_HPP_INCLUDED
- #define BOOST_LOCKFREE_BRANCH_HINTS_HPP_INCLUDED
- namespace boost {
- namespace lockfree {
- namespace detail {
- /** \brief hint for the branch prediction */
- inline bool likely(bool expr)
- {
- #ifdef __GNUC__
- return __builtin_expect(expr, true);
- #else
- return expr;
- #endif
- }
- /** \brief hint for the branch prediction */
- inline bool unlikely(bool expr)
- {
- #ifdef __GNUC__
- return __builtin_expect(expr, false);
- #else
- return expr;
- #endif
- }
- } /* namespace detail */
- } /* namespace lockfree */
- } /* namespace boost */
- #endif /* BOOST_LOCKFREE_BRANCH_HINTS_HPP_INCLUDED */
|