On 06/13/14 04:24, mliska wrote:

You may ask, why the GNU GCC does need such a new optimization. The
compiler, having simply better knowledge of a compiled source file,
is capable of reaching better results, especially if Link-Time
optimization is enabled. Apart from that, GCC implementation adds
support for read-only variables like construction vtables (mentioned
in:
http://hubicka.blogspot.cz/2014/02/devirtualization-in-c-part-3-building.html).
Can you outline at a high level cases where GCC's knowledge allows it to reach a better result? Is it because you're not requiring bit for bit identical code, but that the code merely be semantically equivalent?

The GCC driven ICF seems to pick up 2X more opportunities than the gold driven ICF. But if I'm reading everything correctly, that includes ICF of both functions and variables.

Do you have any sense of how those improvements break down? ie, is it mostly more function's you're finding as identical, and if so what is it about the GCC implementation that allows us to find more ICF opportunities. If it's mostly variables, that's fine too. I'm just trying to understand where the improvements are coming from.

Jeff

Reply via email to