<div dir="ltr">Hi Matthias,<div><br>Patch 0009, changes to pruneValue(), is a bit confusing.</div><div><br></div><div>If I got it right, the new void pruneValue() will call the old pruneValue (now returning a VNInfo), and iterate over the sub-ranges to prune them, too.</div>
<div><br></div><div>If that's right, then VNInfo *pruneValue() should be private, too, and void pruneValue2() could have a better name.</div><div><br></div><div>For my education, if I got it right, the pruneValue() family is removing the definition "Kill" from dead live ranges, after some optimizations killed some slots. Your change is extending this functionality to a "complicated case", which seems to allow deeper inspection of the control flow. I can see that you're doing a similar treatment over the successors of the current MBB.</div>
<div><br></div><div>Why is this complicated case not happening in LiveRanges, but only in SubRanges? Couldn't both be merged into one private implementation?</div><div><br></div><div>Also, I'd try to name the functions differently, possibly leaving "pruneValue" for the entry point (void) and having some more specialized names (like "pruneValueRange" and "pruneValueSubRange" for the private ones.</div>
<div><br></div><div>cheers,</div><div>--renato</div></div>