From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11425 invoked by alias); 6 Jun 2010 15:37:50 -0000 Received: (qmail 11360 invoked by uid 48); 6 Jun 2010 15:37:36 -0000 Date: Sun, 06 Jun 2010 15:37:00 -0000 Message-ID: <20100606153736.11359.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug target/44364] Wrong code with e500 double floating point In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "Kyle dot D dot Moffett at boeing dot com" 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: 2010-06/txt/msg00650.txt.bz2 ------- Comment #21 from Kyle dot D dot Moffett at boeing dot com 2010-06-06 15:37 ------- I was trying to strip down the testcase and try to see which optimization flags caused it. I started from -O2 and tried to see which -O2 flags (in addition to O1) were needed to cause the problem. From there I simplified the testcase as small as I could get it and turned off as many other optimizations as possible. As far as I can tell, it seems to be a combination of -fcaller-saves and the minimal CSE that -O1 always turns on (regardless of other -fno-* options). Part of the reason for the extra -fno-* compiler options was to prevent the compiler from moving registers around so much as I fiddled with the testcase, since the bug is only triggered when it allocates one of the 2 doubles in a register that is reused by one of the libgcc functions it calls. Other than that, I'm just grasping at straws... If somebody can debug this and fix both testcases before FreeScale gets back to us with a fix I'll ship them a case or two of their favorite beer (or whatever other beverage they'd prefer). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44364