On Fri, 10 Nov 2023, Richard Biener wrote: > On Fri, Nov 10, 2023 at 3:18 PM Alexander Monakov wrote: > > > > > > On Fri, 10 Nov 2023, Richard Biener wrote: > > > > > > I'm afraid ignoring debug-only BBs goes contrary to overall var-tracking design: > > > > DEBUG_INSNs participate in dependency graph so that schedulers can remove or > > > > mutate them as needed when moving real insns across them. > > > > > > Note that debug-only BBs do not exist - the BB would be there even without debug > > > insns! > > > > Yep, sorry, I misspoke when I earlier said > > > > >> and cause divergence when passing through a debug-only BB which would not be > > >> present at all without -g. > > > > They are present in the region, but skipped via no_real_insns_p. > > > > > So instead you have to handle BBs with just debug insns the same you > > > handle a completely empty BB. > > > > Yeah. There would be no problem if the scheduler never used no_real_insns_p > > and handled empty and non-empty BBs the same way. > > And I suppose it would be OK to do that. Empty BBs are usually removed by > CFG cleanup so the situation should only happen in rare corner cases where > the fix would be to actually run CFG cleanup ... Yeah, sel-sched invokes 'cfg_cleanup (0)' up front, and I suppose that may be a preferable compromise for sched-rgn as well. I'm afraid one does not simply remove all uses of no_real_insns_p from sched-rgn, but would be happy to be wrong about that. Alexander