https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119214
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> --- I don't see how we could easily track ranges of something not represented as the BLOCK, only that way we find at final time this insn belongs to this set of blocks and this next one doesn't and can create ranges from that. Can variables be declared inside of a division and if so, are they local to the division or are they in outer scope? If they can't be declared there, adding extra BLOCK in the BLOCK tree and setting some special flag on it would work just fine, ditto if they can have vars local to it (so it acts like C/C++ {} scope as well.