On Sat, May 16, 2015 at 12:36:38PM -0400, Hans-Peter Nilsson wrote: > On Sat, 16 May 2015, Segher Boessenkool wrote: > > On Fri, May 15, 2015 at 10:40:48PM -0400, Hans-Peter Nilsson wrote: > > > I confess the test-case-"guarded" addi pattern should have been > > > expressed with a shift in addition to the multiplication. > > > > But they wouldn't ever match so they might very well have bitrotted > > by now :-( > > It seems you're saying that the canonicalization to "ashift" > didn't work *at all*, when starting with an expression from an > address? I knew it failed in part, but always thought it was > just a partial failure.
With a plus or minus combine would always write it as a mult. I don't think any other pass would create this combination. I haven't tested it though. > > > ("In > > > addition to" as the canonically wrong one used to be the > > > combine-matching pattern; I'm not sure I should really drop that > > > just yet.) > > > > It is harmless to leave it in. It will rot though, eventually -- > > better take it out before then. Add some gcc_unreachable, perhaps. > > I've been trying to come up with valid reasons there'd be ever > be canonicalization by multiplication, but failed so I guess > I'll rip it out. The "unreachable" thing should quickly tell you if that guess is wrong. Not something you want to leave in a production compiler, of course. > > Looks like quite some work for you, I'm sorry about that, > > It's almost over, at least the editing part... Great to hear that! Segher