http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48272
--- Comment #3 from Vladimir Makarov <vmakarov at redhat dot com> 2011-04-07 21:22:49 UTC --- (In reply to comment #2) > Confirmed (nice non-sensical set of options, btw.) > > The problem is that register pressure code is not prepared for new insns > created during scheduling (for ia64, this is speculation checks and recovery > code). The ICE happens because we do not initialize register pressure > structures. The below patch seems to fix it, but I am not sure it is > correct. > > The patch calls setup_insn_reg_pressure_info (renamed to > init_insn_reg_pressure_info because there is the function with the same name > in > haifa-sched.c) from within haifa_init_insn, where new instructions created > during scheduling are initialized. The patch does not call > setup_insn_reg_uses > as sched_analyze_insn does, because there is no deps context at that point. > If > some processing of this kind is desired, I guess we need to amend the > functions > that copy/init dependencies for recovery code (that is, > create_check_block_twin > and add_to_speculative_block). Finally, better name for > init_insn_reg_pressure_info should be devised. > > Vlad, it would be great if you can advise me on how to improve the patch. > > It is good enough. You can commit it of course with a proper changelog entry. Thanks, Andrey.