From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18093 invoked by alias); 7 Oct 2002 18:46:04 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 18075 invoked by uid 71); 7 Oct 2002 18:46:03 -0000 Date: Mon, 07 Oct 2002 11:46:00 -0000 Message-ID: <20021007184603.18074.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: Roger Sayle Subject: Re: target/8087: sparc-sun-solaris2.7 C testsuite failures in execute/20020720-1.c w/-m64 or on sparcv9/sparc64 Reply-To: Roger Sayle X-SW-Source: 2002-10/txt/msg00270.txt.bz2 List-Id: The following reply was made to PR target/8087; it has been noted by GNATS. From: Roger Sayle To: "David S. Miller" Cc: , , , , , , Subject: Re: target/8087: sparc-sun-solaris2.7 C testsuite failures in execute/20020720-1.c w/-m64 or on sparcv9/sparc64 Date: Mon, 7 Oct 2002 12:25:48 -0600 (MDT) > So does sparc32, at different stages of the compilation, for > example for something simple like "double foo(void){return 0.0;}" > the foo.c.00.rtl has: > > (insn 11 10 13 (set (reg/f:SI 109) > (lo_sum:SI (reg:SI 110) > (symbol_ref/u:SI ("*.LLC0")))) -1 (nil) > (expr_list:REG_EQUAL (symbol_ref/u:SI ("*.LLC0")) > (nil))) > > Which has the SYMBOL_REG inside of a LO_SUM construct. Indeed. The difference is that by foo.c.18.combine the constant pool reference has been optimized away on sparc32, but it isn't if "-m64" is specified or on sparc64. > Note, the "/u" flag means unchanging which means it is > a constant pool SYMBOL_REF. Thanks. > A possible fix may be to extend this test is also allow the constant > pool to be indexed via LO_SUM. Something like: > > This looks perfectly fine to me. I think it will improve code > on all platforms that use LO_SUM, not just sparc64 and sparc32. Excellent. I'll perform the usual bootstraps and regression tests on sparc-sun-solaris2.8, and then post the patch to gcc-patches today or tomorrow. Roger --