On Fri, Dec 18, 2015 at 02:19:37AM +0100, Bernd Schmidt wrote: > On 12/17/2015 10:07 PM, Segher Boessenkool wrote: > >It turns out v4 wasn't quite complete anyway; so here "v5". > > > >If a candidate PRE cannot get the prologue because a block BB is > >reachable from it, but PRE does not dominate BB, we try again with the > >dominators of PRE. That "try again" needs to again consider BB though, > >we aren't done with it. > > > >This fixes this problem. Tested on the 68909 testcase, and bootstrapped > >and regression checked on powerpc64-linux. Is this okay for trunk? > > This code is getting really quite confusing,
Yes :-( I don't think stage 3 is the time to completely rewrite it though. > and at the least I think we > need more documentation of what exactly vec is supposed to contain at > the entry to the inner while loop here. Same as in the other loop: vec is a stack of blocks that still need to be looked at. I can duplicate the comment if you want? > I'm also beginning to think we should disable this part of the code for > gcc-6. That would be a regression (from GCC 5); but I understand your worry. How about we disable it if any further problems show up? Segher