Closed pgoodman closed 9 years ago
Another further / nice simplification would be ignore native registers from tracking! I'm starting to move in the direction away from copy propagation, mostly because it's not clear that it provides a tangible benefit for memory instrumentation, and because I think that if I do it, I should do it as a peephole optimization, and therefore something not needing any ideas of what webs are.
Given the work being done on Issue #86, I have realized that storing 3 maps/sets per
SSAFragment
is unnecessary. The key to the realization is that I end up merging register webs late in the game, so why not just merge them up-front? For example, we could turn all the maps ofVirtualRegister -> SSARegisterWeb *
into sets ofSSARegisterWeb *
by simply maintining a temporary map that tells us the correct web. But then this raises a more fundamental question: why do we need register webs at all? I think I need to put some thought into this, as there are some nice opportunities for simplification that could affect steps6
,7
, and8
of assembly.