http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48000
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-03-06 17:38:11 UTC --- (In reply to comment #4) > Created attachment 23559 [details] > A proposed patch > > This fixes the problem uncovered by the previous fix. In fix_bb_placements, > we > restrict the placement changes to the basic blocks that originally were in the > base loop (the loop containing the FROM basic block). This is achieved by > marking the header of the loop visited, so that we never enter it to the > processing queue. However, if FROM itself is the header of the loop, this > fails, as we enter FROM to the queue unconditionally. Fixed by ending > immediatelly if FROM is a loop header. Successfully bootstrapped/regtested on x86_64-linux and i686-linux as well as successfully profiledbootstrapped/regtested on those two targets (the latter is what was failing before), no regressions.