------- Additional Comments From law at redhat dot com 2005-02-14 20:35 ------- Actually, if the jump threader code really did its job right it would just emit 45 calls to puts ("hello") since we've got a series of cascading jump threads here.
As it stands now, the first DOM pass threads the initial loop test, effectively turning the loop into a "do ... while" loop. The second DOM pass then comes along and threads the i%2 test for the first iteration of the loop -- in effect peeling the first iteration of the loop -- which effectively turns the loop back into a while ... do loop (with one less iteration than before). The third iteration of DOM threads the initial loop test again which turns the loop back into a do ... while loop. Clearly if this contined, we'd just keep peeling off iterations until we had 45 calls to puts ("hello") and a loop which did nothing (which would then be removed). So I think the real question is do we want DOM's jump threader to peel off all the iterations or not :-) -- What |Removed |Added ---------------------------------------------------------------------------- CC| |law at redhat dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17116