Chrome on Linux uses WholeProgramDevirt for speed ups, and it's
important to detect regressions on both sides: the toolchain,
if fewer methods get devirtualized after an update, and Chrome,
if an innocently looking change caused many hot methods become
virtual again.
The need to track devirtualized methods is not Chrome-specific,
but it's probably the only user of the pass at this time.
For the fully devirtualized case, we do it only if F is not overridden, i.e. if every Target has the same Target.Fn. It means your loop will print "devirtualized " + Name many times without good purpose.