[Bug middle-end/35545] virtual call specialization not happening with FDO
law at redhat dot com
gcc-bugzilla@gcc.gnu.org
Tue Dec 17 20:53:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35545
--- Comment #8 from Jeffrey A. Law <law at redhat dot com> ---
It's not a matter of cost model, but if propagating the values to their uses.
I haven't looked closely at the tracer, but wouldn't it benefit by having
constants in particular propagated to their uses?
Yes, DOM's duplication/isolation of paths exposes the degenerate PHIs. So we
might have had:
One of the nice side effects of jump threading is that it isolates paths. So
we might have had
BBn
x = phi (a, b, c, constant, d, e, f)
duplication for threading might turn that into
BBn:
x = phi (a, b, c, d, e, f) // The original
elsewhere
BBm:
x' = phi (constant) // the duplicate
Propagating the constant for x' in BBm and eliminating the degenerate is what
the phi-only cprop pass does. If the tracer generates similar things, then
running phi-only cprop after it might be useful as well. It *should* be very
fast.
More information about the Gcc-bugs
mailing list