This is the mail archive of the gcc-patches@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]

Re: [PATCH] Fix cprop ICE with conditional asserts becoming non-conditional (PR rtl-optimization/79386)


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  <jakub@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


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