On Fri, Nov 10, 2023 at 12:25 PM Alexander Monakov <amona...@ispras.ru> wrote: > > > On Thu, 9 Nov 2023, Jeff Law wrote: > > > > Yeah, I noticed that the scheduler takes care of DEBUG_INSNs as normal > > > operations. When I started to work on this issue, initially I wanted to > > > try > > > something similar to your idea #2, but when checking the APIs, I realized > > > why not just skip the basic block with NOTEs and LABELs, DEBUG_INSNs as > > > well. IMHO there is no value to try to schedule this kind of BB (to be > > > scheduled range), skipping it can save some resource allocation (like > > > block > > > dependencies) and make it more efficient (not enter function > > > schedule_block > > > etc.), from this perspective it seems an enhancement. Does it sound > > > reasonable to you? > > It sounds reasonable, but only if doing so doesn't add significant > > implementation complexity. ie, the gains from doing less work here are > > likely > > to be very marginal, so I'm more interested in clean, easy to maintain code. > > 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! So instead you have to handle BBs with just debug insns the same you handle a completely empty BB. > Cc'ing Alexandre Oliva who can correct me on that if necessary. > > Alexander