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

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.  */


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