On Fri, Mar 27, 2020 at 05:41:36PM -0500, Peter Bergner wrote: > Given we're late in stage4, the above patch (assuming it's ok) probably > shouldn't go in until stage1, since it is changing lower-subreg's behaviour > slightly. > > A different (ie, safer) approach would be to just rerun lower-subreg at > its old location, regardless of whether we used -fsplit-wide-types-early.
That is my preference, for a simpler reason even: when I added the new pass I disabled the old one, thinking it wouldn't do anything useful anymore. Here you show that isn't true. > This way, we are not changing lower-subreg's behaviour, just running it an > extra time (3 times instead of twice when using -fsplit-wide-types-early). > I don't think lower-subreg is too expensive to run an extra time Yes, I think so too. > and we'd only do it when using -fsplit-wide-types-early. But note that is true by default for some targets (rs6000 and avr currently, I think). > /* opt_pass methods: */ > - virtual bool gate (function *) { return flag_split_wide_types > - && !flag_split_wide_types_early; } > + virtual bool gate (function *) { return flag_split_wide_types != 0; } I think you mean return flag_split_wide_types != 0 != 0 != 0; :-P Segher