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]

Re: [patches] Fixes for the libjava failure


On Sun, Aug 05, 2001 at 12:51:52PM -0700, Richard Henderson wrote:
> I think we need to suppress the move if can_throw_internal.

Indeed, this does allow a bootstrap.  I've committed both patches.

Looking at the logs for gcc-regression, this has been an extremely
poor week.  Since August 1, there have been 45 runs on Geoff's 
regression checker.  40 (!) of those have failed to build, and not
a single one was regression-free.

We cannot continue to be this sloppy.



r~


        * local-alloc.c (update_equiv_regs): Do not move insns that
        can throw.

Index: local-alloc.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/local-alloc.c,v
retrieving revision 1.82
diff -u -p -r1.82 local-alloc.c
--- local-alloc.c	2001/07/30 20:03:37	1.82
+++ local-alloc.c	2001/08/06 06:40:13
@@ -1102,6 +1102,12 @@ update_equiv_regs ()
 		abort ();
 	      equiv_insn = XEXP (reg_equiv[regno].init_insns, 0);
 
+	      /* We may not move instructions that can throw, since
+		 that changes basic block boundaries and we are not
+		 prepared to adjust the CFG to match.  */
+	      if (can_throw_internal (equiv_insn))
+		continue;
+
 	      if (asm_noperands (PATTERN (equiv_insn)) < 0
 		  && validate_replace_rtx (regno_reg_rtx[regno],
 					   reg_equiv[regno].src, insn))


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