This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: ARM bootstrap failures (all configurations)
On Sat, Feb 17, 2001 at 09:45:28AM -0800, Richard Henderson wrote:
> Apparently we may have re-discovered why I made the change in
> the first place -- something that was unfortunately lost in time.
Nope, ifcvt post-dates the original change. This appears
to fix the bug. Committed to mainline.
r~
* ifcvt.c (dead_or_predicable): Don't move code if eh regions
would be disrupted.
Index: ifcvt.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ifcvt.c,v
retrieving revision 1.37
diff -c -p -d -r1.37 ifcvt.c
*** ifcvt.c 2000/12/27 18:22:51 1.37
--- ifcvt.c 2001/02/18 20:04:22
*************** dead_or_predicable (test_bb, merge_bb, o
*** 1855,1860 ****
--- 1855,1869 ----
{
rtx head, end, jump, earliest, old_dest;
+ /* No code movement can occur if we'd be scrogging EH regions.
+ Within MERGE_BB, ensure that we've not got stray EH_BEG or EH_END
+ notes within the block. Between the blocks, checking that the end
+ region numbers match ensures that we won't disrupt the nesting
+ between regions. */
+ if (merge_bb->eh_beg != merge_bb->eh_end
+ || merge_bb->eh_end != test_bb->eh_end)
+ return FALSE;
+
jump = test_bb->end;
/* Find the extent of the real code in the merge block. */