On 02/06/2017 12:41 PM, Jakub Jelinek wrote:
Hi!

The recent r244993 change where bypass_conditional_jumps is called only
after splitting blocks for unconditional traps can result in ICEs during
bypass_conditional_jumps, because on the (unreachable, to be removed later)
new basic blocks created by that splitting we don't have cprop per-bb data
structures like cprop_avout computed (nor space for them allocated).
bypass_conditional_jumps already uses bypass_last_basic_block variable
to avoid touching basic blocks created during that function, so this
patch just extends that to also the basic blocks created for splitting
after unconditional traps.

Bootstrapped/regtested on {x86_64,i686,powerpc64{,le}}-linux, ok for trunk?

2017-02-06  Jakub Jelinek  <ja...@redhat.com>

        PR rtl-optimization/79386
        * cprop.c (bypass_conditional_jumps): Initialize
        bypass_last_basic_block already before splitting bbs after
        unconditional traps...
        (bypass_conditional_jumps): ... rather than here.

        * gcc.c-torture/compile/pr79386.c: New test.
OK.

jeff

Reply via email to