This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug rtl-optimization/48272] internal compiler error: in setup_insn_reg_pressure_info, at haifa-sched.c:1124


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]