public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* target/10271: [3.0/3.2/3.3/3.4] [HPPA] Floating point args don't get reloaded across function calls at -O2
@ 2003-03-31  5:26 Randolph Chung
  0 siblings, 0 replies; 2+ messages in thread
From: Randolph Chung @ 2003-03-31  5:26 UTC (permalink / raw)
  To: gcc-gnats; +Cc: parisc-linux


>Number:         10271
>Category:       target
>Synopsis:       [3.0/3.2/3.3/3.4] [HPPA] Floating point args don't get reloaded across function calls at -O2
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          wrong-code
>Submitter-Id:   net
>Arrival-Date:   Mon Mar 31 05:06:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Randolph Chung <tausq@debian.org>
>Release:        3.3 20030309 (Debian prerelease) (Debian testing/unstable) [and others]
>Organization:
>Environment:
System: Linux gsyprf11.external.hp.com 2.4.20-pa18-UP #1 Sat Jan 4 22:06:52 PST 2
003 parisc64 unknown unknown GNU/Linux
Architecture: parisc64

        <machine, os, target, libraries (multiple lines)>
host: hppa-unknown-linux-gnu
build: hppa-unknown-linux-gnu
target: hppa-unknown-linux-gnu
configured with: ../src/configure -v --enable-languages=c,c++,f77,objc,ada,treela
ng --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-inc
lude-dir=/usr/include/c++/3.3 --enable-shared --with-system-zlib --enable-nls --w
ithout-included-gettext --enable-__cxa_atexit --enable-sjlj-exceptions --enable-c
locale=gnu --enable-debug --enable-objc-gc hppa-linux
>Description:
When compiling the bug.c code below with -O2, the floating point argument to the fprintf does not get reloaded for the second fprintf() call, so the second call prints junk. At -O1 the arguments (r23/r24) are properly reloaded.
>How-To-Repeat:
Compile with gcc -O2 -o bug bug.c -lm
$ ./bug
nan
1.422968e-309

With -O1
$ ./bug
nan
nan

------8< bug.c 8<--------
#include <stdio.h>
#include <math.h>

void doprint(double dval)
{
        fprintf(stdout, "%e\n", dval);
        fprintf(stdout, "%e\n", dval);
}

int main(int argc, char **argv)
{
        doprint(log(-8)); /* nan */
        return 0;
}
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: target/10271: [3.0/3.2/3.3/3.4] [HPPA] Floating point args don't get reloaded across function calls at -O2
@ 2003-04-12 21:47 danglin
  0 siblings, 0 replies; 2+ messages in thread
From: danglin @ 2003-04-12 21:47 UTC (permalink / raw)
  To: danglin, gcc-bugs, gcc-prs, nobody, parisc-linux, tausq

Synopsis: [3.0/3.2/3.3/3.4] [HPPA] Floating point args don't get reloaded across function calls at -O2

Responsible-Changed-From-To: unassigned->danglin
Responsible-Changed-By: danglin
Responsible-Changed-When: Sat Apr 12 21:47:57 2003
Responsible-Changed-Why:
    Assignment.
State-Changed-From-To: open->analyzed
State-Changed-By: danglin
State-Changed-When: Sat Apr 12 21:47:57 2003
State-Changed-Why:
    Confirmed.
    
    There is a problem with the usage notes for argument registers in sibling calls when an argument needs to be passed in both general and floating point registers.  The usage notes appear correct in the initial rtl but the note for the general general register for the third argument of the fprintf call is being dropped.  This causes the insns which load these argument registers to be deleted.
    
    Correct code is generated if the -fno-optimize-sibling-calls option is specified.  The first fprintf call behaves correctly because it isn't a sibling call.
    
    More analysis is needed to determine why usage notes are being dropped in sibling calls.
    
    This is a regression as sibcalls were first enabled on this port in 3.1 branch.

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=10271


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2003-04-12 21:47 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-03-31  5:26 target/10271: [3.0/3.2/3.3/3.4] [HPPA] Floating point args don't get reloaded across function calls at -O2 Randolph Chung
2003-04-12 21:47 danglin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).