[Bug middle-end/106804] Poor codegen for selecting and incrementing value behind a reference
amonakov at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Sep 2 07:18:05 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106804
Alexander Monakov <amonakov at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |amonakov at gcc dot gnu.org
--- Comment #8 from Alexander Monakov <amonakov at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #7)
> In fact I'd say the reverse transformation is more profitable?
In the end it depends on the context. It's a trade-off between a conditional
branch and extra data dependencies feeding into the address of a store. If a
branch is perfectly predictable, it's preferable. Otherwise, if there's no
memory dependency via the store, you don't care about delaying it, making the
branchless version preferable if that reduces pipeline flushes. If there is a
dependency, it comes down to how often the branch mispredicts, I guess.
________________________________
/ \
| People who tinker with compilers |
| need __builtin_branchless_select |
\ /
================================
\
\
\
.--.
|o_o |
| ~ |
// \ \
(| | )
/'\_ _/`\
\___)=(___/
More information about the Gcc-bugs
mailing list