alpha bug w/ spec99

Jeffrey A Law
Mon Oct 19 17:30:00 GMT 1998

------- Forwarded Message

Date:     Mon, 19 Oct 1998 13:19:52 -0700
Subject:  ICE w/using Optimizations

From: (Phillip Ezolt)
Newsgroups: cygnus.bug-gcc
Subject: ICE w/using Optimizations
Date: 19 Oct 1998 10:47:49 -0700
Organization: Cygnus Solutions news/mail gateway
Lines: 76
Message-ID: <>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Xref: cygnus.bug-gcc:9623

	I was working on porting the upcoming SPEC CPU99 benchmark suite to
Alpha/Linux and I stumbled on the following compiler bug.   (It is
really important that this is fixed, or we will never be able to compile
perl with optimizations.   If that this the case, we will never be able
to release reasonable gcc alpha/linux numbers to the world. ) 

First, it is only appearant when compiling with optimizations.
(Since we are going for high-power numbers we NEED to use optimizations)

- -O..-O4 breaks compilation.

This file is part of "perl" (pp.c), so I am kind of surprised that nobody
else has jumped up screaming.  

The Computer is an alpha ev5 running Redhat linux 5.1. 

It has falied on the following alpha/linux compilers:

gcc version    
gcc version 2.8.1
gcc version egcs-2.90.27 980315 (egcs-1.0.2 release)
gcc version egcs-2.91.57 19980901 (egcs-1.1 release)         

It does NOT fail on the following i386/linux compilers:

gcc version     
gcc version egcs-2.90.27 980315 (egcs-1.0.2 release)       

[root@cpu98 gcc-2.8.1]# /usr/local/gcc281/bin/gcc -v --save-temps -O -o blah -c
Reading specs from /usr/local/gcc281/lib/gcc-lib/alphaev5-unknown-linux-gnu/2.8
gcc version 2.8.1
 /usr/local/gcc281/lib/gcc-lib/alphaev5-unknown-linux-gnu/2.8.1/cpp -lang-c -v 
- -undef -D__GNUC__=2 -D__GNUC_MINOR__=8 -D__alpha -D__alpha__ -D__linux__ -D__li
nux -D_LONGLONG -Dlinux -Dunix -D__ELF__ -D__alpha -D__alpha__ -D__linux__ -D__
linux -D_LONGLONG 

- -D__linux__ -D__unix__ -D__ELF__ -D__linux -D__unix -Asystem(linux) -Acpu(alpha
temp.c temp.i
GNU CPP version 2.8.1 (Alpha GNU/Linux with ELF)
#include "..." search starts here:
#include <...> search starts here:
End of search list.
 /usr/local/gcc281/lib/gcc-lib/alphaev5-unknown-linux-gnu/2.8.1/cc1 temp.i -qui
et -dumpbase temp.c -O -version -o temp.s
GNU C version 2.8.1 (alphaev5-unknown-linux-gnu) compiled by GNU C version egcs
- -2.91.57 19980901 (egcs-1.1 release).
temp.c: In function `seed':
temp.c:7: internal error--unrecognizable insn:
(insn 48 20 21 (set (reg:DI 3 $3)
        (mult:DI (reg:DI 30 $30)
            (const_int 4))) -1 (nil)
gcc: Internal compiler error: program cc1 got fatal signal 6

And the corresponding temp.i file:

# 1 "temp.c"
static unsigned long seed(void)
    unsigned long u;
    u = getpid();
    u = 26107 * (unsigned long)&u;
    return u;

If you need any more info (Or need me to test something out..) feel free to con
tact me. 

- --Phil

Digital/Compaq High Performance Servers/Benchmark Engineering

------- End of Forwarded Message

More information about the Gcc-bugs mailing list