This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
-O1 thru -O3 produce fatally bad code for System/390 using 2.95.2
- To: gcc-bugs at gcc dot gnu dot org
- Subject: -O1 thru -O3 produce fatally bad code for System/390 using 2.95.2
- From: Leigh Clayton <loc at Soliton dot COM>
- Date: Thu, 29 Mar 2001 04:08:19 +0000
- Organization: Soliton Associates Limited
I tried mightily to submit this through GNATs; it wouldn't go (server seems to
be hung). I apologise for whatever work is required to deal with this Email but
I don't see what else I can do at this point.
Here is a textual extraction from the form I painstakingly filled in.
Reporter's Email loc@soliton.com
Category Optimization
Synopsis -O1 thru -O3 produce fatally bad code for System/390
Confidential no
Severity non-critical
Priority medium
Class sw-bug
Submittor-Id unknown
Originator Leigh Clayton
Release gcc version 2.95.2 19991024 (release)
Environment SUSE Linux running on System/390 partition (LPAR).
Description: The gcc shipped with SUSE Linux for the System 390 generates
code that fails badly for (some?) floating point assignment.
I include the following files-
make.i.o3 -- the script I used to create the output
gcc.i.stderr -- the stderr from the gcc run
(diagnostic O/P)
fragment.c -- the (standalone) input file.
fragment.i -- the processed input
fragment.s.o3 -- a demonstration of the bad output.
If you look in fragment.s.o3 you will see the following code:
.LM8:
L 4,0(5,4)
L 5,4(5,4)
This is clearly garbage, it overlays R4 and then uses it to
load R5.
Running at -O1 changes the output slightly, but it still has
the same basic flaw. -O0 generates good code.
File Attachments /local/loc/home/gccbug/gnat.tar.gz
How-to-repeat Run the included script -- ./make.i.o3 -- on an S390 processor
Fix Sorry, I don't know. A workaround is to run with -O0.
gnat.tar.gz