This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
V3: SPARC bug and tree freeze
- To: gcc at gcc dot gnu dot org, gcc-bugs at gcc dot gnu dot org
- Subject: V3: SPARC bug and tree freeze
- From: Mark Mitchell <mark at codesourcery dot com>
- Date: Sun, 12 Nov 2000 02:31:39 -0800
- Organization: CodeSourcery, LLC
[ NOTE: TREE FROZEN -- READ BELOW. ]
I returned to find the SPARC bootstrap stuck while building V3. This
must be a recently introduced bug, since it worked a day or two back.
The code that cause the problem can be boiled down to:
int main ()
{
long long i = 1;
long long j = 0;
while (i > j) {
j = i;
i = i * 2 + 1;
}
}
This code, when compiled with the newly build C compiler, will not
terminate. Here is the body of the loop:
ldd [%fp-24], %i0
std %i0, [%fp-32]
ldd [%fp-24], %i2
srl %i3, 31, %i5
sll %i2, 1, %i4
addcc %i1, 1, %i1
addx %i0, 0, %i0
std %i0, [%fp-24]
b .LL3
The first two instructions assign i to j.
Then, we try to do the multiply and add. The computation places
values into %i5 and %i4, but those values are then ignored.
I am going to try to track this down, but I would appreciate help from
anyone who might recognize the cause of this.
I don't want to switch to V3 until we can verify Solaris, but I also
don't want to risk instability that makes it harder to switch. We
need to make the switch -- it's a very important milestone.
Therefore, until this bug is fixed, please consider the tree
completely frozen, except for changes to the Java, Objective-C, and
Fortran front-ends, and back-ends other than SPARC, MIPS, and x86. In
other words, let's have no changes to code that could affect the MIPS
IRIX, SPARC Solaris, or x86 GNU/Linux C or C++ front-ends, or
associated libraries.
I expect this to be a very brief freeze, as I think we can track this
bug down quickly.
Thank you for your patience,
--
Mark Mitchell mark@codesourcery.com
CodeSourcery, LLC http://www.codesourcery.com