Currently, we only tail-merge ret function terminators,
which seems to be somewhat overly pessimistic.
This change is meant to be a building block towards sinking more
common code (and yes, i'm interested specifically in doing that
in function terminators, not common block folding in general)
from terminators, potentially de-penalizing inlining.
So this is expected to have a negative impact on both the compile time,
and potentially code size, but as we have established in D101468,
we consider that to be a win.
I haven't updated all the affected codegen tests,
because they are manually written, and updating them will be
a somewhat painful, and long process.
What do people think about this?
One thought i have is that perhaps we actually may want to do
an inverse fold at the end of simplifycfg, i have that change locally,
but i had to post some change first :)
Does not look very profitable.