This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: powerpc testsuite regressions (was Re: Bootstrap miscomparison on mainline with checking disabled)
- From: Andrew Pinski <pinskia at physics dot uc dot edu>
- To: Diego Novillo <dnovillo at redhat dot com>
- Cc: Jeff Law <law at redhat dot com>, Devang Patel <dpatel at apple dot com>, Steven Bosscher <stevenb at suse dot de>, "gcc-patches at gcc dot gnu dot org Patches" <gcc-patches at gcc dot gnu dot org>, GCC List <gcc at gcc dot gnu dot org>, Zack Weinberg <zack at codesourcery dot com>, Andrew Pinski <pinskia at physics dot uc dot edu>, Mike Stump <mrs at apple dot com>
- Date: Thu, 20 May 2004 12:01:12 -0400
- Subject: Re: powerpc testsuite regressions (was Re: Bootstrap miscomparison on mainline with checking disabled)
- References: <200405191635.i4JGZ3ZV029052@speedy.slc.redhat.com> <1085058926.23047.10.camel@localhost.localdomain>
We are still having these regressions on powerpc-unknown-linux-gnu.
They happen at -O0 and only on ppc, so I doubt they're related to the
phiopt changes. The errors are all similar, we are not emitting some
functions that the linker is looking for.
These may be related to cgraph changes. Zack, could you check these
out? Your changes to cgraph.c are the only thing I can think of that
may be causing these errors.
Executing on host: /mnt/build/dnovillo/sbox/gcc/bld.cure81/gcc/xgcc
-B/mnt/build/dnovillo/sbox/gcc/bld.cure81/gcc/
/home/cygnus/dnovillo/perf/sbox/gcc/local.ppc/src/gcc/testsuite/gcc.c-
torture/execute/20001130-1.c -w -O0 -lm -o
/home/cygnus/dnovillo/perf/sbox/gcc/local.ppc/bld.cure81/gcc/
testsuite/20001130-1.x0 (timeout = 300)
/tmp/ccSbclDE.o(.text+0x38): In function `foo':
: undefined reference to `bar'
collect2: ld returned 1 exit status
compiler exited with status 1
I think I know what is going on and how to fix it.
cgraph_mark_needed_node used to be called from mark_referenced which
made
the function be in the output queue. Now cgraph_mark_needed_node is not
called when assembling the name (unlike most targets which call
output_addr_const
rs6000 does not).
OK? Bootstrapped on powerpc-apple-darwin with no regressions.
Thanks,
Andrew Pinski
ChangeLog:
* rs6000.c (print_operand) <case 'P'>: Call
mark_decl_referenced before assemble_name.
Patch:
Index: rs6000.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000.c,v
retrieving revision 1.643
diff -u -p -r1.643 rs6000.c
--- rs6000.c 15 May 2004 12:39:34 -0000 1.643
+++ rs6000.c 20 May 2004 15:56:52 -0000
@@ -9682,6 +9682,9 @@ print_operand (FILE *file, rtx x, int co
if (GET_CODE (x) != SYMBOL_REF)
abort ();
+ if (SYMBOL_REF_DECL (x))
+ mark_decl_referenced (SYMBOL_REF_DECL (x));
+
if (XSTR (x, 0)[0] != '.')
{
switch (DEFAULT_ABI)