[Bug rtl-optimization/47992] ICE: SIGSEGV in ira_reuse_stack_slot (ira-color.c:2887) with -fweb

amodra at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Mar 10 10:47:00 GMT 2016


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47992

--- Comment #5 from Alan Modra <amodra at gcc dot gnu.org> ---
Author: amodra
Date: Thu Mar 10 10:47:13 2016
New Revision: 234101

URL: https://gcc.gnu.org/viewcvs?rev=234101&root=gcc&view=rev
Log:
PR69195, Reload confused by invalid reg_equiv

Optimizing indirect jumps to direct jumps, and deleting dead insns can
lead to changes in register lifetimes, which in turn can result in bad
reg_equiv info being passed to reload.  So do these tasks before
calculating reg_equiv info.

gcc/
        PR rtl-optimization/69195
        PR rtl-optimization/47992
        * ira.c (recorded_label_ref): Delete.
        (update_equiv_regs): Return void.
        (indirect_jump_optimize): New function.
        (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
        before regstat_compute_ri.  Don't rebuild_jump_labels here.
        Delete update_regstat.
gcc/testsuite/
        * gcc.dg/pr69195.c: New.
        * gcc.dg/pr69238.c: New.

Added:
    trunk/gcc/testsuite/gcc.dg/pr69195.c
    trunk/gcc/testsuite/gcc.dg/pr69238.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/ira.c
    trunk/gcc/testsuite/ChangeLog


More information about the Gcc-bugs mailing list