You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Replace (un)likely macro with C++20 attribute #105
We currently use gcc's __builtin_expect() macro aliased as unlikely and likely for static branch prediction. Primarily, this optimizes checks for parser errors. This optimizes performance for code paths which are only taken under very specific circumstances.
Example:
if (unlikely(notthis->value.exists())) {
throw InternalError{"fetched nonexisting value of member"};
}
Since C++20, the standard supports attributes that do the same thing. Additionally, they are compiler agnostic, so they should also work in clang or msvc. They should also be more readable since they don't directly wrap the condition.
Basically the code gets changed to this:
if (notthis->value.exists()) [[unlikely]] {
throw InternalError{"fetched nonexisting value of member"};
}
If you want to discover the codebase or really like mundane tasks, then this is an issue for you :)
Also take note of the same issue in the openage repository: SFTtech/openage#1514
Activity
SamantaTarun commentedon Jun 13, 2023
I'd like to work on it.