public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* egcs 1.0.2
@ 1998-03-30 16:18 Oyvind Yrke
  1998-04-01 13:41 ` Jeffrey A Law
                   ` (2 more replies)
  0 siblings, 3 replies; 19+ messages in thread
From: Oyvind Yrke @ 1998-03-30 16:18 UTC (permalink / raw)
  To: egcs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 2427 bytes --]

egcs-ers

I've just downloaded egcs1.0.2 and installed it on solaris2.5.1.  So
far I'm able to compile and install it and compile some code usings egcs.
I've compiled some of my own code + the STL test suite distributed by
MegaByte (STL adaption previously maintrained by Moscow Computing Center).

Before continuing, config.guess => sparc-sun-solars2.5.1

config command:
../configure --prefix=/fou/c4share/lib/egcs --enable-haifa \
             --program-prefix="egcs-" \
             --includedir=/fou/c4share/include/tcl7.5 \
             --includedir=/fou/c4share/lib/tk4.1

The includedir was added in an attempt to let the config command
find my local tcl & tk installation (without any success it seems :-( )

I should also say that I used native sun compilers (cc v4.2) and
gnumake v3.69, and I downloaded the whole installation, including
the dejagnu version you have provided.

There are however some issues I'd like to address

Build, Test & Install
=====================

     * make -k check didn't run any testsuites in the gcc area, and
       the only part being tested seems to be libio.  Anyway, the test
       completes after 4 min on an Ultra-30 which tells me that not very
       much has been tested.  Do these tests require a full install of
       dejagnu?  configure in dejagnu ended up with
       "... no X based programs will be installed."

     * there are a few compiler warnings, both when building stage1 using
       native sun cc, and when building stage{N} using stage{N-1}.

     * although I provided a program-prefix to configure, the programs
       installed still have the standard names (gcc, g++ etc), I'd expected
       egcs-gcc, egcs-g++ etc.

     * rtti - is there any reason why typeinfo.h is not shipped with egcs?
       I noticed that typeinfo.h was part of libg++2.7.2, but not in 2.8.x!!

FYI, I'm going to use egcs mostly to check for ANSI compliance in my own
code + experiment with recently added features since the other compilers
I'm using are lagging ANSI a bit more than you ...

_____________________________________________________________________
Øyvind Yrke                           Project Engineer II
oyvind@stavanger.geoquest.slb.com     Charisma-Seismic R&D Department
phone: +47 51 50 65 95                Schlumberger GeoQuest
fax:   +47 51 50 65 00                Bjergstedveien 1
                                      N-4001 Stavanger, Norway




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

* Re: egcs 1.0.2
  1998-03-30 16:18 egcs 1.0.2 Oyvind Yrke
@ 1998-04-01 13:41 ` Jeffrey A Law
  1998-04-01 19:44 ` Jim Wilson
  1998-04-03 21:52 ` Andreas Schwab
  2 siblings, 0 replies; 19+ messages in thread
From: Jeffrey A Law @ 1998-04-01 13:41 UTC (permalink / raw)
  To: Oyvind Yrke; +Cc: egcs

  In message <351FD0C9.21BD7E3E@stavanger.geoquest.slb.com>you write:
  > There are however some issues I'd like to address
  > 
  > Build, Test & Install
  > =====================
  > 
  >      * make -k check didn't run any testsuites in the gcc area, and
  >        the only part being tested seems to be libio.  Anyway, the test
  >        completes after 4 min on an Ultra-30 which tells me that not very
  >        much has been tested.  Do these tests require a full install of
  >        dejagnu?  configure in dejagnu ended up with
  >        "... no X based programs will be installed."
"make check" from the toplevel should have run the testsuite in
the gcc directory.

Probably the first thing to do is for you to run running it within
the gcc directory yourself.  That may tell us why it failed to run
from the toplevel directory.

  >      * there are a few compiler warnings, both when building stage1 using
  >        native sun cc, and when building stage{N} using stage{N-1}.
Yes.  We are working on these.

  >      * although I provided a program-prefix to configure, the programs
  >        installed still have the standard names (gcc, g++ etc), I'd expected
  >        egcs-gcc, egcs-g++ etc.
Known bug.  A patch (or even analysis) for the bug would be greatly
appreciated :-)

jeff

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

* Re: egcs 1.0.2
  1998-03-30 16:18 egcs 1.0.2 Oyvind Yrke
  1998-04-01 13:41 ` Jeffrey A Law
@ 1998-04-01 19:44 ` Jim Wilson
  1998-04-03 21:52   ` Joe Buck
  1998-04-03 21:52 ` Andreas Schwab
  2 siblings, 1 reply; 19+ messages in thread
From: Jim Wilson @ 1998-04-01 19:44 UTC (permalink / raw)
  To: Oyvind Yrke; +Cc: egcs

	The includedir was added in an attempt to let the config command
	find my local tcl & tk installation (without any success it seems :-( )

EGCS doesn't know anything about tcl/tk, so this isn't going to do anything
useful anways.

Dejagnu uses tcl/expect, but using your local copy is probably not a good
idea.  We know it works with the libraries included in the dejagnu package.
We don't know if it works with your local versions of the libraries.

     * make -k check didn't run any testsuites in the gcc area, and
       the only part being tested seems to be libio.  Anyway, the test
       completes after 4 min on an Ultra-30 which tells me that not very
       much has been tested.  Do these tests require a full install of
       dejagnu?  configure in dejagnu ended up with
       "... no X based programs will be installed."

What kind of output did you actually get?  I can't help if I have no idea
what output you got.  There probably is something wrong, but I have no idea
what.

You can ignore the dejagnu configure warning.  `make check' does not invoke
any X based programs, so the fact that they aren't built is not a problem.

     * there are a few compiler warnings, both when building stage1 using
       native sun cc, and when building stage{N} using stage{N-1}.

You can ignore the warnings.

In general, it may not be possible to make the source code warning free for
all possible compilers for all configurations.

We deliberately added -Wall to the stage2/stage3 builds to help find bugs,
and we are slowly in the process of adding patches to eliminate the gcc
warnings.

     * although I provided a program-prefix to configure, the programs
       installed still have the standard names (gcc, g++ etc), I'd expected
       egcs-gcc, egcs-g++ etc.

Offhand, I don't know.  I haven't tried using this option.

     * rtti - is there any reason why typeinfo.h is not shipped with egcs?
       I noticed that typeinfo.h was part of libg++2.7.2, but not in 2.8.x!!

I don't know.

Jim

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

* Re: egcs 1.0.2
  1998-04-01 19:44 ` Jim Wilson
@ 1998-04-03 21:52   ` Joe Buck
  0 siblings, 0 replies; 19+ messages in thread
From: Joe Buck @ 1998-04-03 21:52 UTC (permalink / raw)
  To: Jim Wilson; +Cc: oyvind, egcs

> Dejagnu uses tcl/expect, but using your local copy is probably not a good
> idea.  We know it works with the libraries included in the dejagnu package.
> We don't know if it works with your local versions of the libraries.

Sigh.  It would be great if dejagnu could be verified to work with
standard tcl/expect installations, because these are installed standard in
most Linux distributions, most others have Tcl already, and it would
greatly cut down the size of the dejagnu distribution.  If you're worried
about errors, dejagnu can inquire about the Tcl and expect version on
startup and refuse to run, or warn, if an unverified version has been
detected.

Of course this requires a volunteer.

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

* Re: egcs 1.0.2
  1998-03-30 16:18 egcs 1.0.2 Oyvind Yrke
  1998-04-01 13:41 ` Jeffrey A Law
  1998-04-01 19:44 ` Jim Wilson
@ 1998-04-03 21:52 ` Andreas Schwab
  2 siblings, 0 replies; 19+ messages in thread
From: Andreas Schwab @ 1998-04-03 21:52 UTC (permalink / raw)
  To: Oyvind Yrke; +Cc: egcs

Oyvind Yrke <oyvind@stavanger.geoquest.slb.com> writes:

|>      * rtti - is there any reason why typeinfo.h is not shipped with egcs?
|>        I noticed that typeinfo.h was part of libg++2.7.2, but not in 2.8.x!!

Use <typeinfo>, not <typeinfo.h>.

-- 
Andreas Schwab                                      "And now for something
schwab@issan.informatik.uni-dortmund.de              completely different"
schwab@gnu.org

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

* Re: egcs 1.0.2
       [not found] <3525297C.4A20D761@stavanger.geoquest.slb.com>
@ 1998-04-03 21:52 ` Jim Wilson
  0 siblings, 0 replies; 19+ messages in thread
From: Jim Wilson @ 1998-04-03 21:52 UTC (permalink / raw)
  To: Oyvind Yrke; +Cc: law, egcs

	Then I tried to run make -k check from the solaris2.5.1/gcc dir without any
	success.

What do you mean by no success?  Did you get an error?  What was that error?
You still haven't shown us any of the output from that `make -k check' command.
I'd need to see the output before I could comment on why it failed.

Jim

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

* egcs 1.0.2
@ 1998-03-19 20:46 Felix Morley Finch
  0 siblings, 0 replies; 19+ messages in thread
From: Felix Morley Finch @ 1998-03-19 20:46 UTC (permalink / raw)
  To: egcs

i586-pc-linux-gnu

Thanks!

-- 
            ... _._. ._ ._. . _._. ._. ___ .__ ._. . .__. ._ .. ._.
     Felix Finch: scarecrow repairman & rocket surgeon / felix@crowfix.com
            PGP = 91 B3 94 7C E9 E8 76 2D   E1 63 51 AA A0 48 89 2F
I've found a solution to Fermat's Last Theorem but I see I've run out of room o

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

* Re: egcs 1.0.2
  1998-02-16 10:34         ` H.J. Lu
@ 1998-02-16 18:19           ` Bruno Haible
  0 siblings, 0 replies; 19+ messages in thread
From: Bruno Haible @ 1998-02-16 18:19 UTC (permalink / raw)
  To: egcs

H.J.:
> It appears that the patch really came from
>
> Mon Sep 29 08:21:35 1997  Bruno Haible 
> 
>         * i386.c (notice_update_cc): Use reg_overlap_mentioned_p.
> 
> which is not in egcs 1.0.1.

I apologize for having sent that patch to Kenner only, not to this list.
Here it is again.


egcs-1.0.1 has a bug which wasn't present in gcc-2.7.2.
A "testl $64,%eax" or "testb $64,-4(%ebp)" is omitted. This kind of bug
occurs in particular when DImode variables are used. Please find below
a problem report and a fix.

========================= foo.c ======================
typedef struct { int addr; int type; } object;

extern object bar (object);
object foo (object x, object y)
{
  object z = *(object*)(x.addr);
  if (z.type & 64)
    {
      y = *(object*)(z.addr+8);
      z = *(object*)(z.addr);
      if (z.type & 64)
        y = bar(y);
    }
  return y;
}
======================================================
$ ./xgcc -B./ -O -S foo.c && cat foo.s
	.file	"foo.c"
	.version	"01.01"
/ GNU C version egcs-2.90.23 980102 (egcs-1.0.1 release) (i586-pc-linux-gnulibc1) compiled by GNU C version 2.7.2.
/ options passed:  -O
/ options enabled:  -fdefer-pop -fthread-jumps -fpeephole -ffunction-cse
/ -finline -fkeep-static-consts -fpcc-struct-return -fcommon -fverbose-asm
/ -fgnu-linker -falias-check -fargument-alias -m80387 -mhard-float
/ -mno-soft-float -mieee-fp -mfp-ret-in-387 -mschedule-prologue
/ -mcpu=pentium -march=pentium

gcc2_compiled.:
.text
	.align 4
.globl foo
	.type	 foo,@function
foo:
	pushl %ebp
	movl %esp,%ebp
	subl $8,%esp
	pushl %esi
	pushl %ebx
	movl 8(%ebp),%ebx
	movl 12(%ebp),%eax
	movl (%eax),%edx
	movl %edx,-8(%ebp)
	movl 4(%eax),%eax
	movl %eax,-4(%ebp)
	testb $64,-4(%ebp)
	je .L2
	movl 8(%edx),%esi
	movl %esi,20(%ebp)
	movl 12(%edx),%ecx
	movl %ecx,24(%ebp)
	movl (%edx),%eax
	movl %eax,-8(%ebp)
	movl 4(%edx),%eax
	movl %eax,-4(%ebp)
				;; <========== "testl $64,%eax" missing here
	je .L2
	leal 20(%ebp),%eax
	pushl %ecx
	pushl %esi
	pushl %eax
	call bar
.L2:
	movl 20(%ebp),%eax
	movl %eax,(%ebx)
	movl 24(%ebp),%eax
	movl %eax,4(%ebx)
	movl %ebx,%eax
	leal -16(%ebp),%esp
	popl %ebx
	popl %esi
	movl %ebp,%esp
	popl %ebp
	ret $4
.Lfe1:
	.size	 foo,.Lfe1-foo
	.ident	"GCC: (GNU) egcs-2.90.23 980102 (egcs-1.0.1 release)"
===============================================================================

Here is the fix, which is already present in gcc-2.8.0. (Incidentally,
Kenner mutilated my changelog entry when putting in the patch.)

Sun Sep 28 03:45:32 1997  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

        * i386/i386.c (notice_update_cc): Use reg_overlap_mentioned_p, not
        reg_mentioned_p, for cc_status.value1 might be a ZERO_EXTRACT rtx.

===============================================================================
*** egcs-1.0.1/gcc/config/i386/i386.c.bak	Fri Dec 19 09:47:13 1997
--- egcs-1.0.1/gcc/config/i386/i386.c	Mon Feb 16 22:59:43 1998
***************
*** 3408,3418 ****
  	  && (REG_P (SET_SRC (exp))
  	      || GET_RTX_CLASS (GET_CODE (SET_SRC (exp))) == '<'))
  	{
! 	  if (cc_status.value1 && GET_CODE (cc_status.value1) == MEM
! 	      || reg_mentioned_p (SET_DEST (exp), cc_status.value1))
  	    cc_status.value1 = 0;
! 	  if (cc_status.value2 && GET_CODE (cc_status.value2) == MEM
! 	      || reg_mentioned_p (SET_DEST (exp), cc_status.value2))
  	    cc_status.value2 = 0;
  	  return;
  	}
--- 3408,3418 ----
  	  && (REG_P (SET_SRC (exp))
  	      || GET_RTX_CLASS (GET_CODE (SET_SRC (exp))) == '<'))
  	{
! 	  if (cc_status.value1
! 	      && reg_overlap_mentioned_p (SET_DEST (exp), cc_status.value1))
  	    cc_status.value1 = 0;
! 	  if (cc_status.value2
! 	      && reg_overlap_mentioned_p (SET_DEST (exp), cc_status.value2))
  	    cc_status.value2 = 0;
  	  return;
  	}
===============================================================================

Can you please put in this patch in the devel branch and later into
egcs-1.0.2 ?

Bruno




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

* Re: egcs 1.0.2
  1998-02-16 13:34 Daniel Egger
@ 1998-02-16 14:21 ` H.J. Lu
  0 siblings, 0 replies; 19+ messages in thread
From: H.J. Lu @ 1998-02-16 14:21 UTC (permalink / raw)
  To: Daniel.Egger; +Cc: egcs

> 
> On Sun, 15 Feb 1998, you wrote:
> 
> >I gather that there is controversy about spending a lot of effort to=0D
> >fix "long double" in a minor release.  I would think that if these=0D
> >changes will not affect code that does not use long double they will=0D
> >at least do no harm, and not being able to build glibc does make us=0D
> >look bad.
> 
>  Hm, as HJ said this affects all glibc2 users who try to compile it
>  with egcs.... I don't know why but somehow it worked on my system...
> 

The test cases were added in glibc 2.1. You might not noticed the bug.
But it is there. It is fixed in 1.0.2 now.

-- 
H.J. Lu (hjl@gnu.org)

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

* Re: egcs 1.0.2
@ 1998-02-16 13:34 Daniel Egger
  1998-02-16 14:21 ` H.J. Lu
  0 siblings, 1 reply; 19+ messages in thread
From: Daniel Egger @ 1998-02-16 13:34 UTC (permalink / raw)
  To: Joe Buck; +Cc: law, egcs

On Sun, 15 Feb 1998, you wrote:

>I gather that there is controversy about spending a lot of effort to
>fix "long double" in a minor release.  I would think that if these
>changes will not affect code that does not use long double they will
>at least do no harm, and not being able to build glibc does make us
>look bad.

 Hm, as HJ said this affects all glibc2 users who try to compile it
 with egcs.... I don't know why but somehow it worked on my system...

--

Servus,
       Daniel

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

* Re: egcs 1.0.2
  1998-02-16  4:49       ` Bernd Schmidt
@ 1998-02-16 10:34         ` H.J. Lu
  1998-02-16 18:19           ` Bruno Haible
  0 siblings, 1 reply; 19+ messages in thread
From: H.J. Lu @ 1998-02-16 10:34 UTC (permalink / raw)
  To: Bernd Schmidt; +Cc: bruno, egcs

> 
> > Here is the patch I have been talking about. It was installed
> > in egcs evev before egcs 1.0.1 was released.
> > 
> > Fri Dec  5 16:26:03 1997  Bernd Schmidt <crux@ohara.Informatik.RWTH-Aachen.DE>
> > 
> > 	* i386.c (notice_update_cc): Remove bogus pentium GCC code.
> 
> You are twice wrong: the patch below doesn't match the ChangeLog entry, and
> the patch that goes with the ChangeLog entry was installed in egcs-1.0.1.
> 

I was wrong. Sorry for that. I was very frustrated since egcs 1.0.1
miscocmpiled glibc 2. It appears that the patch really came from

Mon Sep 29 08:21:35 1997  Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>

	* i386.c (notice_update_cc): Use reg_overlap_mentioned_p.

which is not in egcs 1.0.1.

Thanks.

H.J.

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

* Re: egcs 1.0.2
  1998-02-15 14:04     ` H.J. Lu
@ 1998-02-16  4:49       ` Bernd Schmidt
  1998-02-16 10:34         ` H.J. Lu
  0 siblings, 1 reply; 19+ messages in thread
From: Bernd Schmidt @ 1998-02-16  4:49 UTC (permalink / raw)
  To: H.J. Lu; +Cc: egcs

> Here is the patch I have been talking about. It was installed
> in egcs evev before egcs 1.0.1 was released.
> 
> Fri Dec  5 16:26:03 1997  Bernd Schmidt <crux@ohara.Informatik.RWTH-Aachen.DE>
> 
> 	* i386.c (notice_update_cc): Remove bogus pentium GCC code.

You are twice wrong: the patch below doesn't match the ChangeLog entry, and
the patch that goes with the ChangeLog entry was installed in egcs-1.0.1.

Bernd

> --- ./../../../import/egcs/gcc/config/i386/i386.c	Fri Dec 19 00:47:13 1997
> +++ config/i386/i386.c	Thu Feb 12 10:49:09 1998
> @@ -3397,31 +3397,37 @@
>  	  if (cc_status.value1
>  	      && reg_overlap_mentioned_p (SET_DEST (exp), cc_status.value1))
>  	    cc_status.value1 = 0;
> +
>  	  if (cc_status.value2
>  	      && reg_overlap_mentioned_p (SET_DEST (exp), cc_status.value2))
>  	    cc_status.value2 = 0;
> +
>  	  return;
>  	}
> +
>        /* Moving register into memory doesn't alter the cc's.
>  	 It may invalidate the RTX's which we remember the cc's came from.  */
>        if (GET_CODE (SET_DEST (exp)) == MEM
>  	  && (REG_P (SET_SRC (exp))
>  	      || GET_RTX_CLASS (GET_CODE (SET_SRC (exp))) == '<'))
>  	{
> -	  if (cc_status.value1 && GET_CODE (cc_status.value1) == MEM
> -	      || reg_mentioned_p (SET_DEST (exp), cc_status.value1))
> +	  if (cc_status.value1
> +	      && reg_overlap_mentioned_p (SET_DEST (exp), cc_status.value1))
>  	    cc_status.value1 = 0;
> -	  if (cc_status.value2 && GET_CODE (cc_status.value2) == MEM
> -	      || reg_mentioned_p (SET_DEST (exp), cc_status.value2))
> +	  if (cc_status.value2
> +	      && reg_overlap_mentioned_p (SET_DEST (exp), cc_status.value2))
>  	    cc_status.value2 = 0;
> +
>  	  return;
>  	}
> +
>        /* Function calls clobber the cc's.  */
>        else if (GET_CODE (SET_SRC (exp)) == CALL)
>  	{
>  	  CC_STATUS_INIT;
>  	  return;
>  	}
> +
>        /* Tests and compares set the cc's in predictable ways.  */
>        else if (SET_DEST (exp) == cc0_rtx)
>  	{
> @@ -3429,14 +3435,14 @@
>  	  cc_status.value1 = SET_SRC (exp);
>  	  return;
>  	}
> +
>        /* Certain instructions effect the condition codes. */
>        else if (GET_MODE (SET_SRC (exp)) == SImode
>  	       || GET_MODE (SET_SRC (exp)) == HImode
>  	       || GET_MODE (SET_SRC (exp)) == QImode)
>  	switch (GET_CODE (SET_SRC (exp)))
>  	  {
> -	  case ASHIFTRT: case LSHIFTRT:
> -	  case ASHIFT:
> +	  case ASHIFTRT: case LSHIFTRT: case ASHIFT:
>  	    /* Shifts on the 386 don't set the condition codes if the
>  	       shift count is zero. */
>  	    if (GET_CODE (XEXP (SET_SRC (exp), 1)) != CONST_INT)
> @@ -3444,6 +3450,7 @@
>  		CC_STATUS_INIT;
>  		break;
>  	      }
> +
>  	    /* We assume that the CONST_INT is non-zero (this rtx would
>  	       have been deleted if it were zero. */
>  
> @@ -3468,6 +3475,7 @@
>        if (SET_DEST (XVECEXP (exp, 0, 0)) == pc_rtx)
>  	return;
>        if (SET_DEST (XVECEXP (exp, 0, 0)) == cc0_rtx)
> +
>  	{
>  	  CC_STATUS_INIT;
>            if (stack_regs_mentioned_p (SET_SRC (XVECEXP (exp, 0, 0))))
> @@ -3481,6 +3489,7 @@
>  	    cc_status.value1 = SET_SRC (XVECEXP (exp, 0, 0));
>  	  return;
>  	}
> +
>        CC_STATUS_INIT;
>      }
>    else
> 

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

* Re: egcs 1.0.2
  1998-02-15 12:18   ` Joe Buck
@ 1998-02-15 14:04     ` H.J. Lu
  1998-02-16  4:49       ` Bernd Schmidt
  0 siblings, 1 reply; 19+ messages in thread
From: H.J. Lu @ 1998-02-15 14:04 UTC (permalink / raw)
  To: Joe Buck; +Cc: egcs

> 
> 
> > I have 8 patches for egcs 1.0.2. I have sent 3 of them, which have
> > yet to be acked. Should I send my other 5 or should I wait for
> > the backlog to be cleared first?
> 
> I gather that there is controversy about spending a lot of effort to
> fix "long double" in a minor release.  I would think that if these

I won't call it "a lot of effort".

> changes will not affect code that does not use long double they will
> at least do no harm, and not being able to build glibc does make us
> look bad.
> 
> 

Here is the patch I have been talking about. It was installed
in egcs evev before egcs 1.0.1 was released.


-- 
H.J. Lu (hjl@gnu.org)
---
Fri Dec  5 16:26:03 1997  Bernd Schmidt <crux@ohara.Informatik.RWTH-Aachen.DE>

	* i386.c (notice_update_cc): Remove bogus pentium GCC code.

--- ./../../../import/egcs/gcc/config/i386/i386.c	Fri Dec 19 00:47:13 1997
+++ config/i386/i386.c	Thu Feb 12 10:49:09 1998
@@ -3397,31 +3397,37 @@
 	  if (cc_status.value1
 	      && reg_overlap_mentioned_p (SET_DEST (exp), cc_status.value1))
 	    cc_status.value1 = 0;
+
 	  if (cc_status.value2
 	      && reg_overlap_mentioned_p (SET_DEST (exp), cc_status.value2))
 	    cc_status.value2 = 0;
+
 	  return;
 	}
+
       /* Moving register into memory doesn't alter the cc's.
 	 It may invalidate the RTX's which we remember the cc's came from.  */
       if (GET_CODE (SET_DEST (exp)) == MEM
 	  && (REG_P (SET_SRC (exp))
 	      || GET_RTX_CLASS (GET_CODE (SET_SRC (exp))) == '<'))
 	{
-	  if (cc_status.value1 && GET_CODE (cc_status.value1) == MEM
-	      || reg_mentioned_p (SET_DEST (exp), cc_status.value1))
+	  if (cc_status.value1
+	      && reg_overlap_mentioned_p (SET_DEST (exp), cc_status.value1))
 	    cc_status.value1 = 0;
-	  if (cc_status.value2 && GET_CODE (cc_status.value2) == MEM
-	      || reg_mentioned_p (SET_DEST (exp), cc_status.value2))
+	  if (cc_status.value2
+	      && reg_overlap_mentioned_p (SET_DEST (exp), cc_status.value2))
 	    cc_status.value2 = 0;
+
 	  return;
 	}
+
       /* Function calls clobber the cc's.  */
       else if (GET_CODE (SET_SRC (exp)) == CALL)
 	{
 	  CC_STATUS_INIT;
 	  return;
 	}
+
       /* Tests and compares set the cc's in predictable ways.  */
       else if (SET_DEST (exp) == cc0_rtx)
 	{
@@ -3429,14 +3435,14 @@
 	  cc_status.value1 = SET_SRC (exp);
 	  return;
 	}
+
       /* Certain instructions effect the condition codes. */
       else if (GET_MODE (SET_SRC (exp)) == SImode
 	       || GET_MODE (SET_SRC (exp)) == HImode
 	       || GET_MODE (SET_SRC (exp)) == QImode)
 	switch (GET_CODE (SET_SRC (exp)))
 	  {
-	  case ASHIFTRT: case LSHIFTRT:
-	  case ASHIFT:
+	  case ASHIFTRT: case LSHIFTRT: case ASHIFT:
 	    /* Shifts on the 386 don't set the condition codes if the
 	       shift count is zero. */
 	    if (GET_CODE (XEXP (SET_SRC (exp), 1)) != CONST_INT)
@@ -3444,6 +3450,7 @@
 		CC_STATUS_INIT;
 		break;
 	      }
+
 	    /* We assume that the CONST_INT is non-zero (this rtx would
 	       have been deleted if it were zero. */
 
@@ -3468,6 +3475,7 @@
       if (SET_DEST (XVECEXP (exp, 0, 0)) == pc_rtx)
 	return;
       if (SET_DEST (XVECEXP (exp, 0, 0)) == cc0_rtx)
+
 	{
 	  CC_STATUS_INIT;
           if (stack_regs_mentioned_p (SET_SRC (XVECEXP (exp, 0, 0))))
@@ -3481,6 +3489,7 @@
 	    cc_status.value1 = SET_SRC (XVECEXP (exp, 0, 0));
 	  return;
 	}
+
       CC_STATUS_INIT;
     }
   else

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

* Re: egcs 1.0.2
  1998-02-15  8:32 ` egcs 1.0.2 H.J. Lu
  1998-02-15  8:33   ` Jeffrey A Law
@ 1998-02-15 12:18   ` Joe Buck
  1998-02-15 14:04     ` H.J. Lu
  1 sibling, 1 reply; 19+ messages in thread
From: Joe Buck @ 1998-02-15 12:18 UTC (permalink / raw)
  To: H.J. Lu; +Cc: law, egcs

> I have 8 patches for egcs 1.0.2. I have sent 3 of them, which have
> yet to be acked. Should I send my other 5 or should I wait for
> the backlog to be cleared first?

I gather that there is controversy about spending a lot of effort to
fix "long double" in a minor release.  I would think that if these
changes will not affect code that does not use long double they will
at least do no harm, and not being able to build glibc does make us
look bad.


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

* Re: egcs 1.0.2
  1998-02-15  8:46       ` Jeffrey A Law
@ 1998-02-15  8:50         ` H.J. Lu
  0 siblings, 0 replies; 19+ messages in thread
From: H.J. Lu @ 1998-02-15  8:50 UTC (permalink / raw)
  To: law; +Cc: egcs

> 
> 
>   In message < m0y478b-0004eeC@ocean.lucon.org >you write:
>   > One of them is definitely critical. egcs 1.0.1 is broken on x86 at
>   > least with long double. I don't know what else is not working
>   > right. Basically egcs 1.0.1 turns
> I'd hesitate to call a long double bug critical -- few folks use
> long double on a regular basis.
> 

I cannot use egcs 1.0.x to compile glibc 2 since it uses long double
in many places. That is how I noticed the bug. It is hard to convince
anyone to use egcs 1.0.x if they want to use glibc 2, who happen to
be Debian, RedHat and SUSE.

-- 
H.J. Lu (hjl@gnu.org)

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

* Re: egcs 1.0.2
  1998-02-15  8:42     ` H.J. Lu
@ 1998-02-15  8:46       ` Jeffrey A Law
  1998-02-15  8:50         ` H.J. Lu
  0 siblings, 1 reply; 19+ messages in thread
From: Jeffrey A Law @ 1998-02-15  8:46 UTC (permalink / raw)
  To: H.J. Lu; +Cc: egcs

  In message < m0y478b-0004eeC@ocean.lucon.org >you write:
  > One of them is definitely critical. egcs 1.0.1 is broken on x86 at
  > least with long double. I don't know what else is not working
  > right. Basically egcs 1.0.1 turns
I'd hesitate to call a long double bug critical -- few folks use
long double on a regular basis.

jeff

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

* Re: egcs 1.0.2
  1998-02-15  8:33   ` Jeffrey A Law
@ 1998-02-15  8:42     ` H.J. Lu
  1998-02-15  8:46       ` Jeffrey A Law
  0 siblings, 1 reply; 19+ messages in thread
From: H.J. Lu @ 1998-02-15  8:42 UTC (permalink / raw)
  To: law; +Cc: egcs

> 
> 
>   In message < m0y46zd-0004ecC@ocean.lucon.org >you write:
>   > >   > tag do I specify for that ?
>   > > -regcs_1_00_branch
>   > > 
>   > > Will check out the 1.0.x branch.
>   > 
>   > I have 8 patches for egcs 1.0.2. I have sent 3 of them, which have
>   > yet to be acked. Should I send my other 5 or should I wait for
>   > the backlog to be cleared first?
> Please wait for the backlog to clear.
> 
> Also, are this *critical* patches?  Some of the stuff I've seen go
> by look more complex than I would prefer for 1.0.2.
> 

One of them is definitely critical. egcs 1.0.1 is broken on x86 at
least with long double. I don't know what else is not working
right. Basically egcs 1.0.1 turns

if (exp1 && exp2)

into

if (exp1)

under certain conditions. As for others, they make it to work on glibc
2.1 and fix some libstdc++ bugs.

BTW, most of them are already in the main trunk. Only 2 patches are
new.

Thanks.

-- 
H.J. Lu (hjl@gnu.org)

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

* Re: egcs 1.0.2
  1998-02-15  8:32 ` egcs 1.0.2 H.J. Lu
@ 1998-02-15  8:33   ` Jeffrey A Law
  1998-02-15  8:42     ` H.J. Lu
  1998-02-15 12:18   ` Joe Buck
  1 sibling, 1 reply; 19+ messages in thread
From: Jeffrey A Law @ 1998-02-15  8:33 UTC (permalink / raw)
  To: H.J. Lu; +Cc: egcs

  In message < m0y46zd-0004ecC@ocean.lucon.org >you write:
  > >   > tag do I specify for that ?
  > > -regcs_1_00_branch
  > > 
  > > Will check out the 1.0.x branch.
  > 
  > I have 8 patches for egcs 1.0.2. I have sent 3 of them, which have
  > yet to be acked. Should I send my other 5 or should I wait for
  > the backlog to be cleared first?
Please wait for the backlog to clear.

Also, are this *critical* patches?  Some of the stuff I've seen go
by look more complex than I would prefer for 1.0.2.

jeff

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

* egcs 1.0.2
  1998-02-15  8:24 egcs cvs'd between 980214 8:00 and 9:13 UTC on m68k-next-nextstep3: Success Jeffrey A Law
@ 1998-02-15  8:32 ` H.J. Lu
  1998-02-15  8:33   ` Jeffrey A Law
  1998-02-15 12:18   ` Joe Buck
  0 siblings, 2 replies; 19+ messages in thread
From: H.J. Lu @ 1998-02-15  8:32 UTC (permalink / raw)
  To: law; +Cc: egcs

>   > tag do I specify for that ?
> -regcs_1_00_branch
> 
> Will check out the 1.0.x branch.

I have 8 patches for egcs 1.0.2. I have sent 3 of them, which have
yet to be acked. Should I send my other 5 or should I wait for
the backlog to be cleared first?

Thanks.


-- 
H.J. Lu (hjl@gnu.org)

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

end of thread, other threads:[~1998-04-03 21:52 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1998-03-30 16:18 egcs 1.0.2 Oyvind Yrke
1998-04-01 13:41 ` Jeffrey A Law
1998-04-01 19:44 ` Jim Wilson
1998-04-03 21:52   ` Joe Buck
1998-04-03 21:52 ` Andreas Schwab
     [not found] <3525297C.4A20D761@stavanger.geoquest.slb.com>
1998-04-03 21:52 ` Jim Wilson
  -- strict thread matches above, loose matches on Subject: below --
1998-03-19 20:46 Felix Morley Finch
1998-02-16 13:34 Daniel Egger
1998-02-16 14:21 ` H.J. Lu
1998-02-15  8:24 egcs cvs'd between 980214 8:00 and 9:13 UTC on m68k-next-nextstep3: Success Jeffrey A Law
1998-02-15  8:32 ` egcs 1.0.2 H.J. Lu
1998-02-15  8:33   ` Jeffrey A Law
1998-02-15  8:42     ` H.J. Lu
1998-02-15  8:46       ` Jeffrey A Law
1998-02-15  8:50         ` H.J. Lu
1998-02-15 12:18   ` Joe Buck
1998-02-15 14:04     ` H.J. Lu
1998-02-16  4:49       ` Bernd Schmidt
1998-02-16 10:34         ` H.J. Lu
1998-02-16 18:19           ` Bruno Haible

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).