From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 593 invoked by alias); 22 Jun 2007 08:38:42 -0000 Received: (qmail 541 invoked by uid 48); 22 Jun 2007 08:38:31 -0000 Date: Fri, 22 Jun 2007 08:38:00 -0000 Message-ID: <20070622083831.540.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug target/32437] [4.3 Regression] MIPS: FAIL in gcc.dg/cleanup-[8|9|10|11].c In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "daney at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2007-06/txt/msg02004.txt.bz2 ------- Comment #4 from daney at gcc dot gnu dot org 2007-06-22 08:38 ------- Looking at the rtl dumps of unwind-dw2.c compiled with -O1 I find: In unwind-dw2.c.135r.subreg (_Unwind_Resume): . . . (insn 72 71 73 6 ../../../trunk/libgcc/../gcc/unwind.inc:216 (parallel [ (unspec [ (reg:SI 223) ] 7) (clobber (scratch:SI)) ]) 349 {eh_set_lr_si} (nil)) . . . And in unwind-dw2.c.137r.cse1 (_Unwind_Resume): . . . DCE: Deleting insn 72 deleting insn with uid = 72. . . . The insn eh_set_lr_si (see the patch) only clobbers a scratch register, and since we cannot split it to say we set the return address until after reload, I don't know how to keep it from being deleted unless we say it is volatile. I am a bit surprised that the very first thing I tried worked, but after more thought I cannot come up with anything else. The patch fixes all c++ and libstdc++ testsuite regressions caused by the dateflow merge (on mipsel-linux), so I would like to commit it. Thoughts? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32437