https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125788
Drea Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Blocks| |51964
See Also| |https://gcc.gnu.org/bugzill
| |a/show_bug.cgi?id=13563,
| |https://gcc.gnu.org/bugzill
| |a/show_bug.cgi?id=110192
--- Comment #5 from Drea Pinski <pinskia at gcc dot gnu.org> ---
Note the store sinking happens in sink_common_stores_to_bb.
The way I would phase it is the following:
phase 1: Add operands sinking
phase 2: Add load sinking (Allowing for stores before the load)
phase 3: Add call sinking
phase 4: Enchance store sinking
Note phiopt can/should still do the factoring too because there it could create
a forwarder block if factoring out of a simple `ifthenelse` which allows for
ifcvt to happen while sinking here is unrelated to ifcvt.
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51964
[Bug 51964] Missed tail merging opportunity with calls