You know way way more about compilers than I do, but the key is in this:<p>Furthermore, there exists a path from h to a use of v which does not go through d. For every node p in the loop, since the loop is strongly connected and node is a component of the CFG, there exists a path, consisting only of nodes of L from p to h. Concatenating these two paths proves that v is live-in and live-out of p.<p>I have no idea how to formally prove that assertion (it&#x27;s logically sound, afaik, someone like Walter Bright will have to jump in, he probably knows GCC inside-out), but if correct, the code change is correct semantically. The computational gain can be trivially exhibited (again, no idea how to &#x27;prove&#x27; it) by throwing code at it and seeing the RTL emitted. (I agree it lacks &#x27;rigor&#x27; in the academic sense, but based on the list to which he submitted his code-change and the fact that he&#x27;s at Xilinx and sent it to his colleagues makes me confident enough that the change is sound.)<p>Edit: Fair enough. You&#x27;ve convinced me. (Though the SPEC2000 resulting numbers still have me in the &#x27;maybe&#x27; category - your argument below is more sound than my ignorance.) Anyone reading this should defer to Danny&#x27;s posts rather than mine for the time being (after a day or two, read the resulting responses to see the expert analyses on the mailing list). Keeping this post intact solely for continuity for the reader. RE: Walter - I&#x27;d assume he&#x27;d keep up with the competition and know enough about the RTL as it hasn&#x27;t changed extensively in the last decade to make a valid opinion w&#x2F;r&#x2F;t changes. Either way, gracefully upvoting Danny&#x27;s two posts ;)