-
Notifications
You must be signed in to change notification settings - Fork 159
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New macros galore (mostly codegen related) #82
Conversation
BOOST_ASSUME(_UNCHECKED)() BOOST_UNREACHABLE(_UNCHECKED)() BOOST_UNREACHABLE() BOOST_DEFAULT_CASE_UNREACHABLE(_UNCHECKED)() BOOST_OVERRIDE BOOST_FINAL BOOST_NOTHROW_LITE BOOST_NOVTABLE BOOST_OPTIMIZE_FOR_SPEED_BEGIN() BOOST_OPTIMIZE_FOR_SPEED_END() BOOST_OPTIMIZE_FOR_SIZE_BEGIN() BOOST_OPTIMIZE_FOR_SIZE_END() BOOST_FAST_MATH_(ON/OFF/ON_BEGIN/ON_END/OFF_BEGIN/OFF_END)() BOOST_RESTRICTED BOOST_RESTRICTED_PTR BOOST_RESTRICTED_REF BOOST_NO_STRICT_ALIASING BOOST_HAS_UNION_TYPE_PUNNING_TRICK BOOST_HAS_MAY_ALIAS BOOST_MAY_ALIAS BOOST_HAS_OVERRIDABLE_SYMBOL BOOST_OVERRIDABLE_SYMBOL BOOST_CC_CDECL BOOST_CC_FASTCALL BOOST_CC_STDCALL BOOST_CC_STACK BOOST_CC_REG_ABI BOOST_CC_REG (provided implementations only for MSVC, Clang and GCC&clones)
…ated macros) commit.
…OST_UNREACHABLE_UNCHECKED macro defining logic in some circumnstances).
MSVC: added implementations for the BOOST_RESTRICTED_PTR abd BOOST_RESTRICTED_REF macros.
FWIW: standalone version @ https://github.com/psiha/config_ex until I finally catch the time to apply the input from http://lists.boost.org/Archives/boost/2015/11/226556.php to actually get this included... |
Reminder - this has been sitting here for a long time untouched. |
As I recall this was raised on the ML and didn't find much support, IMO it's too much in one go as well, unless there are calls from library authors for support for this I'm not inclined to merge. Closing for now. |
New macros that mostly control codegen and/or provide optimiser hints. I don't expect this PR to be accepted as is, rather as a discussion starting point on what to do 'with all this'. I'll start a dedicated boost.devel thread where everyone can chime in...
BOOST_ASSUME(_UNCHECKED)()
BOOST_UNREACHABLE(_UNCHECKED)()
BOOST_UNREACHABLE()
BOOST_DEFAULT_CASE_UNREACHABLE(_UNCHECKED)()
BOOST_NOVTABLE
BOOST_OPTIMIZE_FOR_SPEED_BEGIN()
BOOST_OPTIMIZE_FOR_SPEED_END()
BOOST_OPTIMIZE_FOR_SIZE_BEGIN()
BOOST_OPTIMIZE_FOR_SIZE_END()
BOOST_FAST_MATH_(ON/OFF/ON_BEGIN/ON_END/OFF_BEGIN/OFF_END)()
BOOST_RESTRICTED
BOOST_RESTRICTED_PTR
BOOST_RESTRICTED_REF
BOOST_RESTRICTED_THIS
BOOST_NO_STRICT_ALIASING
BOOST_HAS_UNION_TYPE_PUNNING_TRICK
BOOST_HAS_MAY_ALIAS
BOOST_MAY_ALIAS
BOOST_HAS_OVERRIDABLE_SYMBOL
BOOST_OVERRIDABLE_SYMBOL
BOOST_OVERRIDABLE_MEMBER_SYMBOL
BOOST_OVERRIDABLE_FUNCTION
BOOST_CC_* (calling conventions: CDECL, FASTCALL, STDCALL, VECTORCALL, STACK, REG_ABI, REG)
BOOST_OVERRIDE
BOOST_FINAL
BOOST_NOTHROW_LITE
BOOST_ATTRIBUTES( ... ) function attributes macro, attributes prefixed with BOOST_: