On 3/30/20 3:50 AM, Richard Sandiford wrote: > Peter Bergner via Gcc-patches <gcc-patches@gcc.gnu.org> writes: >> * lower-subreg.c (pass_lower_subreg3::gate): Remove test for >> flag_split_wide_types_early. >> >> diff --git a/gcc/lower-subreg.c b/gcc/lower-subreg.c >> index 4c8bc835f93..807ad398b64 100644 >> --- a/gcc/lower-subreg.c >> +++ b/gcc/lower-subreg.c >> @@ -1844,8 +1844,7 @@ public: >> {} >> >> /* 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; } >> virtual unsigned int execute (function *) >> { >> decompose_multiword_subregs (true); > > Looks good to me with the s/ != 0// that Segher mentioned. > > With this change, the only remaining function of -fsplit-wide-types-early > is to act as a double lock on one pass. IMO it'd make more sense to remove > that double lock and make -fsplit-wide-types-early and -fsplit-wide-types > act as independent options, a bit like -fschedule-insns{,2}.
Have we come to consensus on whether to split the options or not? I think Segher is against it given we actually have 3 passes of lower-subreg and -fsplit-wide-types would control the 1st and 3rd passes and -fsplit-wide-types-early would control the second. That does seem strange to me too. Peter