On 07/28/2009 10:44 AM, Richard Henderson wrote:
I guess I'll poke at cleaning this up today. I've got to familiarize myself with how virtual clones work...
The virtual clones that ipa-cp makes seems to be easy. My thought here is that since (virtual) clones don't have actual bodies (and when they acquire bodies they cease to be clones), then there's no reason for them to have callee edges at all. If you want the list of callees for a clone, you look at node->clone_of->callees. In this way, when we materialize a clone, we don't have to go looking for (and updating) edges, we just create them as we copy the statements. What I don't understand is how the inliner uses clones. Can you explain this? r~