[Bug rtl-optimization/93264] [10 Regression] ICE in cfg_layout_redirect_edge_and_branch_force, at cfgrtl.c:4522
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Feb 11 13:03:00 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93264
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
In general it's a bad idea to try go "back" to CFG layout mode and the fix is
to not do that. Which probably means scheduling pass_sms earlier and indeed
then best before pass_partition_blocks. I don't see any reason to _not_ do
this, the current pipeline is
NEXT_PASS (pass_partition_blocks);
NEXT_PASS (pass_outof_cfg_layout_mode);
NEXT_PASS (pass_split_all_insns);
NEXT_PASS (pass_lower_subreg3);
NEXT_PASS (pass_df_initialize_no_opt);
NEXT_PASS (pass_stack_ptr_mod);
NEXT_PASS (pass_mode_switching);
NEXT_PASS (pass_match_asm_constraints);
NEXT_PASS (pass_sms);
NEXT_PASS (pass_live_range_shrinkage);
NEXT_PASS (pass_sched);
NEXT_PASS (pass_early_remat);
NEXT_PASS (pass_ira);
NEXT_PASS (pass_reload);
NEXT_PASS (pass_postreload);
PUSH_INSERT_PASSES_WITHIN (pass_postreload)
and while I understand sms wants to run as close to RA as possible the
passes between its current position and partitioning should not mess
with the schedule (mode switching might insert code I think).
More information about the Gcc-bugs
mailing list