http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49847

--- Comment #32 from Jeffrey A. Law <law at redhat dot com> ---
The problem we're seeing is with the cc0-setter and cc0-user in different
blocks, they're separated by a NOTE_BASIC_BLOCK.  

That causes CSE to blow up because it expects that the cc0-setter and cc0-user
are always consecutive.  While we're just seeing the failure in CSE right now,
I'm sure there's a ton of places that assume the setter/user are inseparable as
that has been the documented form for ~20 years.

>From rtl.texi:

 The instruction setting the
condition code must be adjacent to the instruction using the condition
code; only @code{note} insns may separate them.


We either need to relax that and audit all the HAVE_cc0 code to ensure it
doesn't make that assumption, or we need to somehow restore the property that
the setter and user are inseparable.

Reply via email to