https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99104
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Created attachment 50186 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50186&action=edit gcc11-pr99104.patch What a mess! Can we finally get rid of sel-sched? The x86 backend uses DF inside of the splitter conditions which looks problematic as the split passes don't really call df_analyze but so far we were just lucky that the pass right before it maintained df. Selective scheduling (unlike normal scheduling) can create new blocks with insns that may need splitting and nothing computes the live or lr problem for those. So, either the backend needs to cope with df_get_live_out returning NULL, or, because the pass_split_before_regstack pass is a single backend specific pass (i386) we can call df_analyze there.