Re: 4.1.0-RC{1,2} installs headers to /include

2006-03-01 Thread René Rebe
Hi,

On Tuesday 28 February 2006 22:30, René Rebe wrote:
> Hi,
> 
> On Tuesday 28 February 2006 20:54, Mark Mitchell wrote:
> 
> > > gxx_include_dir = $(libsubdir)/include/c++
> > 
> > That's the problem, then; there's no definition of libsubdir in that
> > Makefile.  What happens if you provide the explicit
> > --with-gxx-include-dir option?
> > 
> > I'm not sure when this was broken, but clearly the Java Makefile.am is
> > incorrect; users of TL_AC_GXX_INCLUDE_DIR must define libsubdir.
> 
> Yes, then it is:
> 
> gxx_include_dir = /usr/include
> 
> Though despite ccache and a Turion with 1.2GB RAM I'm still waiting
> for "make instal" and the list of installed files ,-)

As expected the headers are in the correct location now.

Yours,

-- 
René Rebe - Rubensstr. 64 - 12157 Berlin (Europe / Germany)
http://www.exactcode.de | http://www.t2-project.org
+49 (0)30  255 897 45


tracking pointers in hardware

2006-03-01 Thread Yoav Etsion

Hi all,

I'm designing a new hardware that needs to know which GPR contains a 
simple integer, and which contained pointer. The hardware simply needs 
different load operations for both (we're talking load/store machines, 
with no indirect addressing to make life easier).


From the compiler's perspective, all it needs is to annotate load 
operations to tell the hardware if this is a pointer or an integer (say 
LD for integers and PLD for pointers).


As far as I can see, this data is not available in the final RTL stage:
the RTL contains some pointer data about virtual registers at first, but 
it seems this data gets lost during optimizations, and mainly during the 
reload phase.


Do any of you guys have suggestions how to implement it as part of gcc?
My only idea for now is to add an RTL pass just before the final pass 
tracking dataflow to find which registers are used as addresses in 
loads/stores (but this can probably be done by dataflow tracking 
asm-to-asm filter).


Thanks,

Yoav Etsion


mips-elf-linux and mips-linux-elf, another puzzler

2006-03-01 Thread Eric Fisher
Hi,
After talking about mips-elf, mips-linux, mips-elf-linux-gnu, my
friend told that there is also a target of mips-linux-elf. My God,
confused.

Yours,
Eric.


Re: mips-elf-linux and mips-linux-elf, another puzzler

2006-03-01 Thread Eric Christopher


On Mar 1, 2006, at 1:43 AM, Eric Fisher wrote:


Hi,
After talking about mips-elf, mips-linux, mips-elf-linux-gnu, my
friend told that there is also a target of mips-linux-elf. My God,
confused.


Ignore your friend.

-eric


Re: Preserving bootstrap with non-GCC compilers

2006-03-01 Thread Gabriel Dos Reis
Eric Botcazou <[EMAIL PROTECTED]> writes:

[...]

| Comments?

Go for it!

-- Gaby


Re: Libjava (gij) testting on the mainline

2006-03-01 Thread Andrew Haley
Andrew Pinski writes:
 > With clean sources on x86_64-linux-gnu, I am getting almost all tests 
 > for running gij to fail.  Does anyone know what is going on here?

I'll have a try now.

Andrew.


Re: Bootstrap failure on trunk: x86_64-linux-gnu

2006-03-01 Thread Sebastian Pop
Jeffrey A Law wrote:
> I wouldn't have a problem with non-canonical bounds if there were
> no way to get a value into an object which is outside the 
> bounds.  But if we can get values into the object which are outside
> those bounds, then either the bounds are incorrect or the program
> is invalid.  
> 

I would classify this as a gimplification bug, as the starting program
is correct, but the GIMPLE form is not.  GIMPLE was introduced for
reducing the complexity of the specific of each language, so I think
that the types should also be translated to a canonical form.

Sebastian


problem with the gcc 3.4.4

2006-03-01 Thread HASSAN AL MOATASSIME
 Hi,
I have a problem with the compiler gcc 3.4.4.
With the gcc 3.2 compiler, i have no problem with the following instruction :
   creal(U0[i])=PartieReelle;
   cimag(U0[i])=PartieImaginaire;

Now with the gcc 3.4.4 i have the folowing message :
 

-- erreur: invalid lvalue in assignment

-- erreur: invalid lvalue in assignment

Sincerly yours.

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.



Re: Libjava (gij) testting on the mainline

2006-03-01 Thread Andrew Haley
Andrew Haley writes:
 > Andrew Pinski writes:
 >  > With clean sources on x86_64-linux-gnu, I am getting almost all tests 
 >  > for running gij to fail.  Does anyone know what is going on here?
 > 
 > I'll have a try now.

You are right.  The error is

lt-gij: relocation error: 
/home/aph/gcc/trunk/build-x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/libjava/.libs/libgcj.so.7:
 symbol _Unwind_GetIPInfo, version GCC_4.2.0 not defined in file libgcc_s.so.1 
with link time reference

The problem is that gij has a hard-coded rpath to the install dir:

[EMAIL PROTECTED] libjava]$ readelf -d .libs/lt-gij 

Dynamic section at offset 0x830 contains 27 entries:
  TagType Name/Value
 0x0001 (NEEDED) Shared library: [libgij.so.7]
 0x0001 (NEEDED) Shared library: [libgcj.so.7]
 0x0001 (NEEDED) Shared library: [libpthread.so.0]
 0x0001 (NEEDED) Shared library: [libdl.so.2]
 0x0001 (NEEDED) Shared library: [libgcc_s.so.1]
 0x0001 (NEEDED) Shared library: [libc.so.6]
 0x0001 (NEEDED) Shared library: [libm.so.6]
 0x000f (RPATH)  Library rpath: 
[/home/aph/gcc/trunk/build-x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/libjava/.libs:/home/aph/gcc/install/lib/../lib64]

Running `make install' fixes it.  :-(

Andrew.



Re: Bootstrap failure on trunk: x86_64-linux-gnu

2006-03-01 Thread Laurent GUERBY
On Tue, 2006-02-28 at 18:59 -0500, Daniel Jacobowitz wrote:
> On Tue, Feb 28, 2006 at 03:40:37PM -0700, Jeffrey A Law wrote:
> > Here's a great example from uintp.adb (which is the cause of the
> > testsuite hang FWIW)
> > 
> > We have a loop with the following termination code in uintp.num_bits
> > 
> >   # BLOCK 8
> >   # PRED: 5 [100.0%]  (fallthru,exec) 6 (fallthru,dfs_back,exec)
> >   # num_2 = PHI ;
> >   # bits_1 = PHI ;
> > :;
> >   num.265_5 = (types__TintB) num_2;
> >   if (num.265_5 <= 0) goto ; else goto ;
> >   # SUCC: 7 (true,exec) 6 (false,exec)
> 
> ...
> 
> > So, why am I bringing this up?  Because num can actually have
> > the value 0x8000 at runtime, which is out of its type's
> > MIN/MAX range.  And what do you think happens?  Well, given the
> > (valid) simplification of the loop test and the way "num" is
> > assigned within the loop (num = num / 2), the loop never terminates.
> 
> I've been following this entire thread, and I think there's a serious
> disconnect between the parties - it's unfortunate that none of the
> tree-ssa folks involved know Ada as I suspect that would straighten
> it out in a hurry.  This is a perfect example.  Now that we have some
> concrete code that's causing a problem, let's take a look at it
> (bear in mind, I don't know Ada either):
> 
>function Num_Bits (Input : Uint) return Nat is
>   Bits : Nat;
>   Num  : Nat;
> 
>begin
>   if UI_Is_In_Int_Range (Input) then
>  Num := abs (UI_To_Int (Input));
>  Bits := 0;
> 
>   else
>  Bits := Base_Bits * (Uints.Table (Input).Length - 1);
>  Num  := abs (Udigits.Table (Uints.Table (Input).Loc));
>   end if;
> 
>   while Types.">" (Num, 0) loop
>  Num := Num / 2;
>  Bits := Bits + 1;
>   end loop;
> 
>   return Bits;
>end Num_Bits;

The specifications in uintp.ads says:

   function Num_Bits (Input : Uint) return Nat;
   --  Approximate number of binary bits in given universal integer.
   --  This function is used for capacity checks, and it can be one
   --  bit off without affecting its usage.

So this is a hint function, anything not hanging should do, like

if UI_Is_In_Int_Range (Input) then
   return Nat'Size;
else
...

> I'm going to assume that UI_Is_In_Int_Range isn't true for 0x8000.
> The other case is still assigning 0x8000 to Nat somehow.  I'd be
> amazed if that's really valid Ada!  Could someone who knows the
> language comment, please?

Ada checks are off when compiling the FE, in full Ada you
should get a Constraint_Error on the abs line on int'first.

You should get an exception it if you put a 

   pragma Unsuppress (All_Checks);

before begin.

So this is likely to be a FE Ada coding bug and not a FE/ME/BE interface
issue, thanks for spotting this!

Laurent



Re: gcc 4.1.0 NOT built on i686-pc-linux-gnu (Scientific Linux 3.0.4)

2006-03-01 Thread Andrew Pinski


On Mar 1, 2006, at 2:43 AM, Maurizio Loreti wrote:


/usr/soft/lib/libmpfr.a(set_str.o): In function `mpfr_set_str':
set_str.c:(.text+0x174): undefined reference to `__ctype_b'
set_str.c:(.text+0x3b5): undefined reference to `__ctype_b'
set_str.c:(.text+0x411): undefined reference to `__ctype_b'


This means your libmpfr.a was compiled for the wrong glibc.

Thanks,
Andrew Pinski



Re: Bootstrap failure on trunk: x86_64-linux-gnu

2006-03-01 Thread Richard Kenner
So this is likely to be a FE Ada coding bug and not a FE/ME/BE interface
issue, thanks for spotting this!

Indeed, having looked a bit closer at Uintp, I think this is the right fix.
Robert, please confirm.

*** uintp.adb   12 Sep 2003 21:50:56 -  1.80
--- uintp.adb   1 Mar 2006 13:08:06 -
*** package body Uintp is
*** 591,595 
  
 begin
!   if UI_Is_In_Int_Range (Input) then
   Num := abs (UI_To_Int (Input));
   Bits := 0;
--- 591,598 
  
 begin
!   if Input = Uint_Int_First then
!  Num := Int'Size;
! 
!   elsif UI_Is_In_Int_Range (Input) then
   Num := abs (UI_To_Int (Input));
   Bits := 0;




Re: Libjava (gij) testting on the mainline

2006-03-01 Thread Andrew Pinski


On Mar 1, 2006, at 6:48 AM, Andrew Haley wrote:


Andrew Haley writes:

Andrew Pinski writes:

With clean sources on x86_64-linux-gnu, I am getting almost all tests
for running gij to fail.  Does anyone know what is going on here?


I'll have a try now.


You are right.  The error is

lt-gij: relocation error:  
/home/aph/gcc/trunk/build-x86_64-unknown-linux-gnu/x86_64-unknown- 
linux-gnu/libjava/.libs/libgcj.so.7: symbol _Unwind_GetIPInfo, version  
GCC_4.2.0 not defined in file libgcc_s.so.1 with link time reference

Running `make install' fixes it.  :-(


That only fixed some of the failures.
The rest are like:
Exception in thread "main" java.lang.NoClassDefFoundError: bytebuffer
   at java.lang.Class.initializeClass (natClass.cc:691)
   at java.lang.Class.forName (Class.h:624)
   at gnu.java.lang.MainThread.run (MainThread.java:95)
Caused by: java.lang.VerifyError: verification failed at PC 3 in  
bytebuffer:main(([Ljava.lang.String;)V): incompatible type on stack

   at java.lang.Class.initializeClass (natClass.cc:685)
   ...2 more
FAIL: bytebuffer execution - gij test

And I just doubled checked to make sure I don't have CLASSPATH set.

-- Pinski



Re: Bootstrap failure on trunk: x86_64-linux-gnu

2006-03-01 Thread Richard Kenner
So this is likely to be a FE Ada coding bug and not a FE/ME/BE interface
issue, thanks for spotting this!

Sorry, my last suggestion is clearly wrong.  I think is right.

*** uintp.adb   12 Sep 2003 21:50:56 -  1.80
--- uintp.adb   1 Mar 2006 13:16:21 -
*** package body Uintp is
*** 591,595 
  
 begin
!   if UI_Is_In_Int_Range (Input) then
   Num := abs (UI_To_Int (Input));
   Bits := 0;
--- 591,598 
  
 begin
!   if Input = Uint_Int_First then
!  return Int'Size;
! 
!   elsif UI_Is_In_Int_Range (Input) then
   Num := abs (UI_To_Int (Input));
   Bits := 0;


Re: gcc 4.1.0 NOT built on i686-pc-linux-gnu (Scientific Linux 3.0.4)

2006-03-01 Thread Maurizio Loreti

On Wed, 1 Mar 2006, Andrew Pinski wrote:


This means your libmpfr.a was compiled for the wrong glibc.


Thanks for the hint -- now I have completed the 4.1.0 build/install, with

[EMAIL PROTECTED] 19 $ gcc -v
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: ../gcc-4.1.0/configure --prefix=/usr/soft/gcc4 
--with-mpfr=/usr/soft --with-gmp=/usr/soft 
--enable-languages=c,c++,fortran

Thread model: posix
gcc version 4.1.0

My problem was that I manage a cluster of several gnu-linux machines, 
where the user may choose between gcc 4.1.0 and 3.4.5 executing shell 
scripts.  As you guessed, libmpfr.a has been compiled against an old glibc 
(2.2.5) where the PC used for "make bootstrap" had glibc 2.3.2 .


Many thanks for the help, and thank for maintaining gcc.

--
Maurizio Loreti   http://www.pd.infn.it/~loreti/mlo.html
Un. of Padova, Dept. of Physics - Padova, Italy[EMAIL PROTECTED]


Re: Libjava (gij) testting on the mainline

2006-03-01 Thread H. J. Lu
On Tue, Feb 28, 2006 at 08:40:18PM -0500, Andrew Pinski wrote:
> With clean sources on x86_64-linux-gnu, I am getting almost all tests 
> for running gij to fail.  Does anyone know what is going on here?

I will bet it is

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17311


H.J.


PATCH: Libjava (gij) testting on the mainline

2006-03-01 Thread H. J. Lu
On Wed, Mar 01, 2006 at 11:48:39AM +, Andrew Haley wrote:
> Andrew Haley writes:
>  > Andrew Pinski writes:
>  >  > With clean sources on x86_64-linux-gnu, I am getting almost all tests 
>  >  > for running gij to fail.  Does anyone know what is going on here?
>  > 
>  > I'll have a try now.
> 
> You are right.  The error is
> 
> lt-gij: relocation error: 
> /home/aph/gcc/trunk/build-x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/libjava/.libs/libgcj.so.7:
>  symbol _Unwind_GetIPInfo, version GCC_4.2.0 not defined in file 
> libgcc_s.so.1 with link time reference
> 
> The problem is that gij has a hard-coded rpath to the install dir:
> 
> [EMAIL PROTECTED] libjava]$ readelf -d .libs/lt-gij 
> 
> Dynamic section at offset 0x830 contains 27 entries:
>   TagType Name/Value
>  0x0001 (NEEDED) Shared library: [libgij.so.7]
>  0x0001 (NEEDED) Shared library: [libgcj.so.7]
>  0x0001 (NEEDED) Shared library: [libpthread.so.0]
>  0x0001 (NEEDED) Shared library: [libdl.so.2]
>  0x0001 (NEEDED) Shared library: [libgcc_s.so.1]
>  0x0001 (NEEDED) Shared library: [libc.so.6]
>  0x0001 (NEEDED) Shared library: [libm.so.6]
>  0x000f (RPATH)  Library rpath: 
> [/home/aph/gcc/trunk/build-x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/libjava/.libs:/home/aph/gcc/install/lib/../lib64]
> 
> Running `make install' fixes it.  :-(
> 

The fix was posted at

http://gcc.gnu.org/ml/gcc-patches/2004-09/msg01486.html


H.J.


Re: PATCH: Libjava (gij) testting on the mainline

2006-03-01 Thread Andrew Haley
H. J. Lu writes:
 > On Wed, Mar 01, 2006 at 11:48:39AM +, Andrew Haley wrote:
 > > Andrew Haley writes:
 > >  > Andrew Pinski writes:
 > >  >  > With clean sources on x86_64-linux-gnu, I am getting almost all 
 > > tests 
 > >  >  > for running gij to fail.  Does anyone know what is going on here?
 > >  > 
 > >  > I'll have a try now.
 > > 
 > > You are right.  The error is
 > > 
 > > lt-gij: relocation error: 
 > > /home/aph/gcc/trunk/build-x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/libjava/.libs/libgcj.so.7:
 > >  symbol _Unwind_GetIPInfo, version GCC_4.2.0 not defined in file 
 > > libgcc_s.so.1 with link time reference
 > > 
 > > The problem is that gij has a hard-coded rpath to the install dir:
 > > 
 > > [EMAIL PROTECTED] libjava]$ readelf -d .libs/lt-gij 
 > > 
 > > Dynamic section at offset 0x830 contains 27 entries:
 > >   TagType Name/Value
 > >  0x0001 (NEEDED) Shared library: [libgij.so.7]
 > >  0x0001 (NEEDED) Shared library: [libgcj.so.7]
 > >  0x0001 (NEEDED) Shared library: [libpthread.so.0]
 > >  0x0001 (NEEDED) Shared library: [libdl.so.2]
 > >  0x0001 (NEEDED) Shared library: [libgcc_s.so.1]
 > >  0x0001 (NEEDED) Shared library: [libc.so.6]
 > >  0x0001 (NEEDED) Shared library: [libm.so.6]
 > >  0x000f (RPATH)  Library rpath: 
 > > [/home/aph/gcc/trunk/build-x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/libjava/.libs:/home/aph/gcc/install/lib/../lib64]
 > > 
 > > Running `make install' fixes it.  :-(
 > > 
 > 
 > The fix was posted at
 > 
 > http://gcc.gnu.org/ml/gcc-patches/2004-09/msg01486.html

If it still works, please check it in.

Andrew.


Re: iWMMXt/Linux EABI toolchain

2006-03-01 Thread Daniel Jacobowitz
On Wed, Mar 01, 2006 at 05:15:07AM +, Steven Newbury wrote:
> I have managed to build with arm-iwmmxt-linux-gnu, where iwmmxt as the vendor
> string is picked up by my ebuild scripts to pass the iwmmxt target flags. 
> Given my objective, am I wrong to try to make a tool chain that targets
> xscale-iwmmxt-linux-gnueabi specifically or do you just consider it 
> unnecessary
> effort?

I don't think there's any point to the xscale-* triplets nowadays.

-- 
Daniel Jacobowitz
CodeSourcery


Marking a builtin function as `noreturn'.

2006-03-01 Thread Daniel Towner

Hi all,

I maintain a port of gcc for an embedded processor which has a HALT 
instruction. This instruction stops the processor, and generates an 
appropriate interrupt to indicate to its parent system that it has 
stopped. The instruction is accessed by the programmer using a 
port-specific builtin, which can then be used, amongst other things, to 
implement the `assert' macro.


At the moment, whenever a HALT instruction is emitted, the compiler 
still seems to assume that execution will continue after the HALT 
instruction has executed (e.g., the compiler emits branches to the 
function epilogue, etc.). I would like the compiler to treat the builtin 
instruction as though it had the attribute `noreturn'. I have added this 
attribute to the builtin declaration in the TARGET_INIT_BUILTINS 
function, but it appears to make no difference. I may have got the code 
wrong, but assuming the code is correct, should gcc allow a builtin to 
be marked as a noreturn? Should a builtin marked in this way stop any 
code flow after the HALT? Is there another way to achieve the effect I 
am after?


Thanks,

dan.

--

Daniel Towner
picoChip Designs Ltd, Riverside Buildings, 108, Walcot Street, BATH, BA1 5BG
[EMAIL PROTECTED]
+44 (0) 7786 702589



Re: Marking a builtin function as `noreturn'.

2006-03-01 Thread Andrew Pinski
> 
> Hi all,
> 
> I maintain a port of gcc for an embedded processor which has a HALT 
> instruction. This instruction stops the processor, and generates an 
> appropriate interrupt to indicate to its parent system that it has 
> stopped. The instruction is accessed by the programmer using a 
> port-specific builtin, which can then be used, amongst other things, to 
> implement the `assert' macro.

Why doesn't this HALT instruction map directly to the trap builtin?
Isn't that a better way of doing it then using a port specific builtin?

-- Pinski


Re: PATCH: Libjava (gij) testting on the mainline

2006-03-01 Thread H. J. Lu
On Wed, Mar 01, 2006 at 02:11:21PM +, Andrew Haley wrote:
> H. J. Lu writes:
>  > On Wed, Mar 01, 2006 at 11:48:39AM +, Andrew Haley wrote:
>  > > Andrew Haley writes:
>  > >  > Andrew Pinski writes:
>  > >  >  > With clean sources on x86_64-linux-gnu, I am getting almost all 
> tests 
>  > >  >  > for running gij to fail.  Does anyone know what is going on here?
>  > >  > 
>  > >  > I'll have a try now.
>  > > 
>  > > You are right.  The error is
>  > > 
>  > > lt-gij: relocation error: 
> /home/aph/gcc/trunk/build-x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/libjava/.libs/libgcj.so.7:
>  symbol _Unwind_GetIPInfo, version GCC_4.2.0 not defined in file 
> libgcc_s.so.1 with link time reference
>  > > 
>  > > The problem is that gij has a hard-coded rpath to the install dir:
>  > > 
>  > > [EMAIL PROTECTED] libjava]$ readelf -d .libs/lt-gij 
>  > > 
>  > > Dynamic section at offset 0x830 contains 27 entries:
>  > >   TagType Name/Value
>  > >  0x0001 (NEEDED) Shared library: [libgij.so.7]
>  > >  0x0001 (NEEDED) Shared library: [libgcj.so.7]
>  > >  0x0001 (NEEDED) Shared library: 
> [libpthread.so.0]
>  > >  0x0001 (NEEDED) Shared library: [libdl.so.2]
>  > >  0x0001 (NEEDED) Shared library: [libgcc_s.so.1]
>  > >  0x0001 (NEEDED) Shared library: [libc.so.6]
>  > >  0x0001 (NEEDED) Shared library: [libm.so.6]
>  > >  0x000f (RPATH)  Library rpath: 
> [/home/aph/gcc/trunk/build-x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/libjava/.libs:/home/aph/gcc/install/lib/../lib64]
>  > > 
>  > > Running `make install' fixes it.  :-(
>  > > 
>  > 
>  > The fix was posted at
>  > 
>  > http://gcc.gnu.org/ml/gcc-patches/2004-09/msg01486.html
> 
> If it still works, please check it in.

Ooops. The correct patch is

http://gcc.gnu.org/ml/gcc-patches/2004-09/msg00663.html

for ltmain.sh. Libtool is braindead when libgcc_s is involved. Should
I check it in once it is verified?


H.J.


Re: PATCH: Libjava (gij) testting on the mainline

2006-03-01 Thread Andrew Haley
H. J. Lu writes:
 > On Wed, Mar 01, 2006 at 02:11:21PM +, Andrew Haley wrote:
 > > H. J. Lu writes:
 > >  > 
 > >  > The fix was posted at
 > >  > 
 > >  > http://gcc.gnu.org/ml/gcc-patches/2004-09/msg01486.html
 > > 
 > > If it still works, please check it in.
 > 
 > Ooops. The correct patch is
 > 
 > http://gcc.gnu.org/ml/gcc-patches/2004-09/msg00663.html
 > 
 > for ltmain.sh. Libtool is braindead when libgcc_s is involved. Should
 > I check it in once it is verified?

That doesn't look right: we _need_ the rpath for gij to be in the install dir.

Andrew.


Re: PATCH: Libjava (gij) testting on the mainline

2006-03-01 Thread H. J. Lu
On Wed, Mar 01, 2006 at 03:19:18PM +, Andrew Haley wrote:
> H. J. Lu writes:
>  > On Wed, Mar 01, 2006 at 02:11:21PM +, Andrew Haley wrote:
>  > > H. J. Lu writes:
>  > >  > 
>  > >  > The fix was posted at
>  > >  > 
>  > >  > http://gcc.gnu.org/ml/gcc-patches/2004-09/msg01486.html
>  > > 
>  > > If it still works, please check it in.
>  > 
>  > Ooops. The correct patch is
>  > 
>  > http://gcc.gnu.org/ml/gcc-patches/2004-09/msg00663.html
>  > 
>  > for ltmain.sh. Libtool is braindead when libgcc_s is involved. Should
>  > I check it in once it is verified?
> 
> That doesn't look right: we _need_ the rpath for gij to be in the install dir.

There are 2 gij, one for installation and one for build. We do want
the installed dir in the rpath of the installed gij. But we don't want
it in the rpath of the gij used for build. My patch only removes
the installed dir from the rpath of the gij used for build. The rpath
of the installed gij is unchanged.


H.J.


Re: PATCH: Libjava (gij) testting on the mainline

2006-03-01 Thread Andrew Haley
H. J. Lu writes:
 > On Wed, Mar 01, 2006 at 03:19:18PM +, Andrew Haley wrote:
 > > H. J. Lu writes:
 > >  > On Wed, Mar 01, 2006 at 02:11:21PM +, Andrew Haley wrote:
 > >  > > H. J. Lu writes:
 > >  > >  > 
 > >  > >  > The fix was posted at
 > >  > >  > 
 > >  > >  > http://gcc.gnu.org/ml/gcc-patches/2004-09/msg01486.html
 > >  > > 
 > >  > > If it still works, please check it in.
 > >  > 
 > >  > Ooops. The correct patch is
 > >  > 
 > >  > http://gcc.gnu.org/ml/gcc-patches/2004-09/msg00663.html
 > >  > 
 > >  > for ltmain.sh. Libtool is braindead when libgcc_s is involved. Should
 > >  > I check it in once it is verified?
 > > 
 > > That doesn't look right: we _need_ the rpath for gij to be in the install 
 > > dir.
 > 
 > There are 2 gij, one for installation and one for build. We do want
 > the installed dir in the rpath of the installed gij. But we don't want
 > it in the rpath of the gij used for build. My patch only removes
 > the installed dir from the rpath of the gij used for build. The rpath
 > of the installed gij is unchanged.

That's OK, then.

Andrew.


Re: iWMMXt/Linux EABI toolchain

2006-03-01 Thread Paul Brook
On Wednesday 01 March 2006 05:05, Daniel Jacobowitz wrote:
> On Wed, Mar 01, 2006 at 04:57:03AM +, Steven Newbury wrote:
> > Thanks for the quick response!
> > I'm sure it seems I like to make hard wok for myself! It gets worse, I'm
> > porting Gentoo Linux to iWMMXt with pure EABI kernel and userspace.  I'm
> > not concerned about being able to run old binaries. So is using
> > abi=iwmmxt really not what I want? A really bad idea?
>
> Absolutely.  You want the AAPCS, not Intel's pre-AAPCS ABI.

Actually, -mabi=iwmmxt is AAPCS based. It's diffferent from the old intel 
iwmmxt ABI.

Having said that, it probably hasn't been tested particularly well, and I 
wouldn't advise using it unless you really need it (ie. you know you have 
performace sensitive code that makes extensive use of iWMMXt vector types in 
function arguments).

Paul


Re: Marking a builtin function as `noreturn'.

2006-03-01 Thread Daniel Towner

Hi Andrew,

The problem with calling __builtin_trap directly comes when several 
traps are called in the same function. For example, if a function 
contains several identical assertions on different code paths, then gcc 
will generate a single copy of the assertion, and branch to that copy 
from each of the original assertion sites. If an assertion is hit, it 
becomes impossible to tell which of the original source assertions this 
relates to. Note that this is an embedded processor, so the source line, 
error description and so on can't be embedded in the assertion, since 
that consumes too much space; all an assertion does is test the 
condition, and possibly call the HALT.


I defined my own builtin to access the HALT, in such a way that every 
time a HALT instruction is generated, it is assigned a unique id. This 
id does nothing (it just generates a comment in the assembly output), 
but its presence is enough to fool the compiler into treating identical 
source assertions as though they were different. This means that the 
different assertions get their own HALT's, and if a HALT is detected at 
runtime, the debugger can easily determine which source assertion this 
relates to.


Thanks,

dan.

I maintain a port of gcc for an embedded processor which has a HALT 
instruction. This instruction stops the processor, and generates an 
appropriate interrupt to indicate to its parent system that it has 
stopped. The instruction is accessed by the programmer using a 
port-specific builtin, which can then be used, amongst other things, to 
implement the `assert' macro.
   



Why doesn't this HALT instruction map directly to the trap builtin?
Isn't that a better way of doing it then using a port specific builtin?

-- Pinski
 



--

Daniel Towner
picoChip Designs Ltd, Riverside Buildings, 108, Walcot Street, BATH, BA1 5BG
[EMAIL PROTECTED]
+44 (0) 7786 702589



Re: Inconsistency in ix86_binary_operator_ok?

2006-03-01 Thread Ross Ridge
>My confusion is that these functions currently allow arithmetic
>operations of the form "reg = op(mem,immed)" even though this
>shape isn't supported by x86 ISA.

The IMUL instruction can have this form.

Ross Ridge



GCC 4.1.0 Released

2006-03-01 Thread Mark Mitchell

GCC 4.1.0 has been released.

This release is a major release, containing substantial new
functionality relative to previous releases.  See:

  http://gcc.gnu.org/gcc-4.1/changes.html

for a list of new features, improvements, and other changes.

This release is available from the FTP servers listed here:

  http://www.gnu.org/order/ftp.html

The release is in the gcc/gcc-4.1.0 subdirectory.

There are two important caveats beyond those listed on the web page
above:

1. GNU TAR 1.14 is required to unpack the source releases.  Other
   versions of tar are likely to report errors or silently unpack the
   file incorrectly.

2. It was discovered after the final release had been made that there
   is an installation problem when building with Java enabled and when
   "--enable-version-specific-runtime-libs" is in use .  In
   particular, header files for some of the Java APIs will be placed
   in "/include" (with no prefix), due to a defect in the Java
   Makefiles.

   There are three known work-arounds:

   a) Disable Java by using "--enable-languages" when configuring
  GCC.  For example, to build just the C and C++ compilers, use
  "--enable-languages=c,c++".

   b) Do not use "--enable-version-specific-runtime-libs".

   c) Use "--with-gxx-include-dir=" to explicitly indicate where
  you would like the Java header files to be placed.  For
  example, if you use "--prefix=/path/to/prefix" then using:

--with-gxx-include-dir=/path/to/prefix/lib/gcc//4.1.0

  will place the header files in the appropriate version-specific
  location.

   I expect this problem will be corrected in GCC 4.1.1.

If you encounter any difficulties using GCC 4.1.0, please do not send
them directly to me.  Instead, please http://gcc.gnu.org/ for
information about getting help and filing problem reports.

We expect to release GCC 4.0.3 (an bug-fix release relative to GCC
4.0.2) in the near future.  GCC 4.1.1 (a bug-fix release for GCC
4.1.0) will be released in approximately two months.

As usual, a vast number of people contributed to this release -- far
too many to thank by name!

--
Mark Mitchell
CodeSourcery
[EMAIL PROTECTED]
(650) 331-3385 x713


Re: Preserving bootstrap with non-GCC compilers

2006-03-01 Thread Jeffrey A Law
On Wed, 2006-03-01 at 08:15 +0100, Eric Botcazou wrote:
> Hi,
> 
> I'm a big fan of Zack's "over-my-dead-body" motto when it comes to ditching 
> bootstrap with non-GCC compilers. :-)  It turns out that bootstrap is again 
> broken on mainline for them (at least Sun CC) and that the problem is another 
> instance of PR bootstrap/18058.
Even though I don't mess with HP-UX anymore (and boy I'm a happier man
for that!), I'm still a supporter of the ability to bootstrap with
non-GCC compilers.


> Given that the problem has already showed up at least twice and that there is 
> a straightforward way to mimic it with GCC, I'm proposing to be proactive and 
> add -fkeep-inline-functions to CFLAGS for stage1 of an --enable-bootstrap 
> build if the bootstrap compiler is a version of GCC that supports it.  More 
> generally, if other bootstrap with non-GCC compilers issues pop up, I think 
> we should strive to emulate them with GCC.
Seems quite reasonable to me.

jeff




Re: Marking a builtin function as `noreturn'.

2006-03-01 Thread Andrew Pinski
> 
> Hi Andrew,
> 
> The problem with calling __builtin_trap directly comes when several 
> traps are called in the same function. For example, if a function 
> contains several identical assertions on different code paths, then gcc 
> will generate a single copy of the assertion, and branch to that copy 
> from each of the original assertion sites. If an assertion is hit, it 
> becomes impossible to tell which of the original source assertions this 
> relates to. Note that this is an embedded processor, so the source line, 
> error description and so on can't be embedded in the assertion, since 
> that consumes too much space; all an assertion does is test the 
> condition, and possibly call the HALT.

Well the easy way around this is have a function which just does halt but
sends the line number before halting.  I don't see anyway around this really
except taking up more space.

-- Pinski


Re: 4.1.0-RC{1,2} installs headers to /include

2006-03-01 Thread Mark Mitchell
René Rebe wrote:

> As expected the headers are in the correct location now.

Good.  Have you filed a bug in Bugzilla about this issue?  If not, would
you care to do so?  To do so, please visit gcc.gnu.org, and look for the
link on the left side of the page.

Thanks,

-- 
Mark Mitchell
CodeSourcery
[EMAIL PROTECTED]
(650) 331-3385 x713


Re: iWMMXt/Linux EABI toolchain

2006-03-01 Thread Steven Newbury

--- Paul Brook <[EMAIL PROTECTED]> wrote:

> On Wednesday 01 March 2006 05:05, Daniel Jacobowitz wrote:
> > On Wed, Mar 01, 2006 at 04:57:03AM +, Steven Newbury wrote:
> > > Thanks for the quick response!
> > > I'm sure it seems I like to make hard wok for myself! It gets worse, I'm
> > > porting Gentoo Linux to iWMMXt with pure EABI kernel and userspace.  I'm
> > > not concerned about being able to run old binaries. So is using
> > > abi=iwmmxt really not what I want? A really bad idea?
> >
> > Absolutely.  You want the AAPCS, not Intel's pre-AAPCS ABI.
> 
> Actually, -mabi=iwmmxt is AAPCS based. It's diffferent from the old intel 
> iwmmxt ABI.
> 
> Having said that, it probably hasn't been tested particularly well, and I 
> wouldn't advise using it unless you really need it (ie. you know you have 
> performace sensitive code that makes extensive use of iWMMXt vector types in 
> function arguments).
My project is to build a complete system optimized for iWMMXt.  I am expecting
to have to do the odd bit of debugging when things break, so I'll be doing the
testing..!


Steve





___ 
Yahoo! Messenger - NEW crystal clear PC to PC calling worldwide with voicemail 
http://uk.messenger.yahoo.com


Re: iWMMXt/Linux EABI toolchain

2006-03-01 Thread Steven Newbury

--- Daniel Jacobowitz <[EMAIL PROTECTED]> wrote:

> On Wed, Mar 01, 2006 at 05:15:07AM +, Steven Newbury wrote:
> > I have managed to build with arm-iwmmxt-linux-gnu, where iwmmxt as the
> vendor
> > string is picked up by my ebuild scripts to pass the iwmmxt target flags. 
> > Given my objective, am I wrong to try to make a tool chain that targets
> > xscale-iwmmxt-linux-gnueabi specifically or do you just consider it
> unnecessary
> > effort?
> 
> I don't think there's any point to the xscale-* triplets nowadays.
My reason for using the xscale-* triplets was because of the warning below from
gcc/config/arm/t-xscale-elf:

# The iWMMXt multilibs are suppressed for now because gcc only
# supports generating them with the IWMMXT or AAPCS ABIs, neither of
# which is the default.  Until GCC can generate code for an iWMMXt  
# which will work with the default ABI it is not possible to safely 
# generate these multilibs.
#

Since I'm not going to be using the default ABI I thought I would be better off
adding a specific target since my aim is to produce a complete Linux
environment for general use rather than a stand-alone project.  That way I
could enable the iWMMXt multilibs without worrying about incompatibility with
non iWMMXt targets.  Perhaps I'd be better off using iwmmxt-*?


Steve





___ 
Yahoo! Messenger - NEW crystal clear PC to PC calling worldwide with voicemail 
http://uk.messenger.yahoo.com


Re: iWMMXt/Linux EABI toolchain

2006-03-01 Thread Daniel Jacobowitz
On Wed, Mar 01, 2006 at 05:43:53PM +, Steven Newbury wrote:
> My reason for using the xscale-* triplets was because of the warning below 
> from
> gcc/config/arm/t-xscale-elf:
> 
> # The iWMMXt multilibs are suppressed for now because gcc only
> # supports generating them with the IWMMXT or AAPCS ABIs, neither of
> # which is the default.  Until GCC can generate code for an iWMMXt  
> # which will work with the default ABI it is not possible to safely 
> # generate these multilibs.
> #
> 
> Since I'm not going to be using the default ABI I thought I would be better 
> off
> adding a specific target since my aim is to produce a complete Linux
> environment for general use rather than a stand-alone project.  That way I
> could enable the iWMMXt multilibs without worrying about incompatibility with
> non iWMMXt targets.  Perhaps I'd be better off using iwmmxt-*?

The comment does not apply to an EABI toolchain, which you are
building.  And comments about multilibs don't apply to anything
using --with-cpu; if you're doing that you ought to be using
--disable-multilib anyway.

-- 
Daniel Jacobowitz
CodeSourcery


re: GCC 4.1.0 Released

2006-03-01 Thread Dan Kegel
Mark wrote:
> 1. GNU TAR 1.14 is required to unpack the source releases.  Other
>   versions of tar are likely to report errors or silently unpack the
>   file incorrectly.

Now hold on there, bubaloo.
I thought the warnings from older versions of tar were benign.
The warnings I'm seeing from tar-1.13.19 are
  tar: pax_global_header: Unknown file type 'g', extracted as normal file
Searching for this error message, I find a quote from Linus Torvalds,
(http://lkml.org/lkml/2005/6/18/5):

>Yes, git creates tar-archives that use the extended pax headers, and I
>think you need tar-1.14 to fully understand them. They should not hurt
>(apart from the warning) on older versions of tar.
>
>The extended header just contains a hidden comment record that tells the
>git commit ID that was used to generate the tar-tree.
>
>Because it's extracted as a regular file (instead of tar knowing that it's
>a comment header), you will now have a file called "pax_global_header"
>that has the contents
>   52 comment=9ee1c939d1cb936b1f98e8d81aeffab57bae46ab
>
>in it (where "9ee1c939d1cb936b1f98e8d81aeffab57bae46ab" is the git SHA1
>name of the Linux-2.6.12 commit).
>
>So it's not entirely "harmless" in that it causes a bogus file to be
>created, but it's not like it's a huge problem either, and that bogus file
>actually does contain real information (although it's not useful unless
>you're a git user).

So perhaps the release notes should say

1. GNU TAR 1.14 is recommended to unpack the source releases.  Other
  versions of tar may issue the warning
  tar: pax_global_header: Unknown file type 'g', extracted as normal file
  and/or silently create spurious files named 'pax_global_header'.
  These are artifacts reflecting the fact that the tarballs were
created with git.

Or something like that.

Or is tar-1.14 really required?  That would be highly annoying.
- Dan

--
Wine for Windows ISVs: http://kegel.com/wine/isv


Re: GCC 4.1.0 Released

2006-03-01 Thread Daniel Jacobowitz
On Wed, Mar 01, 2006 at 10:05:52AM -0800, Dan Kegel wrote:
> Mark wrote:
> > 1. GNU TAR 1.14 is required to unpack the source releases.  Other
> >   versions of tar are likely to report errors or silently unpack the
> >   file incorrectly.
> 
> Now hold on there, bubaloo.
> I thought the warnings from older versions of tar were benign.
> The warnings I'm seeing from tar-1.13.19 are
>   tar: pax_global_header: Unknown file type 'g', extracted as normal file
> Searching for this error message, I find a quote from Linus Torvalds,
> (http://lkml.org/lkml/2005/6/18/5):

The problem has nothing to do with warnings from tar, which are neither
errors nor silent failures.  I believe a file either got skipped or
unpacked with the wrong name.

> 1. GNU TAR 1.14 is recommended to unpack the source releases.  Other
>   versions of tar may issue the warning
>   tar: pax_global_header: Unknown file type 'g', extracted as normal file
>   and/or silently create spurious files named 'pax_global_header'.
>   These are artifacts reflecting the fact that the tarballs were
> created with git.

The tarballs most certainly weren't created with git.

-- 
Daniel Jacobowitz
CodeSourcery


Re: GCC 4.1.0 Released

2006-03-01 Thread Dan Kegel
On 3/1/06, Daniel Jacobowitz <[EMAIL PROTECTED]> wrote:
> > > 1. GNU TAR 1.14 is required to unpack the source releases.  Other
> > >   versions of tar are likely to report errors or silently unpack the
> > >   file incorrectly.
>
> The problem has nothing to do with warnings from tar, which are neither
> errors nor silent failures.  I believe a file either got skipped or
> unpacked with the wrong name.

Egads.   Can you point me to more info?  I've been building with older
versions of tar without any problem beyond the warnings.
- Dan


--
Wine for Windows ISVs: http://kegel.com/wine/isv


Re: GCC 4.1.0 Released

2006-03-01 Thread Daniel Jacobowitz
On Wed, Mar 01, 2006 at 10:10:39AM -0800, Dan Kegel wrote:
> On 3/1/06, Daniel Jacobowitz <[EMAIL PROTECTED]> wrote:
> > > > 1. GNU TAR 1.14 is required to unpack the source releases.  Other
> > > >   versions of tar are likely to report errors or silently unpack the
> > > >   file incorrectly.
> >
> > The problem has nothing to do with warnings from tar, which are neither
> > errors nor silent failures.  I believe a file either got skipped or
> > unpacked with the wrong name.
> 
> Egads.   Can you point me to more info?  I've been building with older
> versions of tar without any problem beyond the warnings.

I don't know where the report was.  I think it was on this list in the
last week or two.

-- 
Daniel Jacobowitz
CodeSourcery


Re: iWMMXt/Linux EABI toolchain

2006-03-01 Thread Steven Newbury

--- Daniel Jacobowitz <[EMAIL PROTECTED]> wrote:

> On Wed, Mar 01, 2006 at 05:43:53PM +, Steven Newbury wrote:
> > My reason for using the xscale-* triplets was because of the warning below
> from
> > gcc/config/arm/t-xscale-elf:
> > 
> > # The iWMMXt multilibs are suppressed for now because gcc only
> > # supports generating them with the IWMMXT or AAPCS ABIs, neither of
> > # which is the default.  Until GCC can generate code for an iWMMXt  
> > # which will work with the default ABI it is not possible to safely 
> > # generate these multilibs.
> > #
> > 
> > Since I'm not going to be using the default ABI I thought I would be better
> off
> > adding a specific target since my aim is to produce a complete Linux
> > environment for general use rather than a stand-alone project.  That way I
> > could enable the iWMMXt multilibs without worrying about incompatibility
> with
> > non iWMMXt targets.  Perhaps I'd be better off using iwmmxt-*?
> 
> The comment does not apply to an EABI toolchain, which you are
> building.  And comments about multilibs don't apply to anything
> using --with-cpu; if you're doing that you ought to be using
> --disable-multilib anyway.
OK, thank-you.  I'll target "arm-iwmmxt-linux-gnueabi" with --with-cpu= etc and
--disable-multilib.  The vendor string is for my build scripts and also will
help differentiate the toolchain, is that valid?


Steve



___ 
To help you stay safe and secure online, we've developed the all new Yahoo! 
Security Centre. http://uk.security.yahoo.com


Re: iWMMXt/Linux EABI toolchain

2006-03-01 Thread Daniel Jacobowitz
On Wed, Mar 01, 2006 at 06:20:53PM +, Steven Newbury wrote:
> OK, thank-you.  I'll target "arm-iwmmxt-linux-gnueabi" with --with-cpu= etc 
> and
> --disable-multilib.  The vendor string is for my build scripts and also will
> help differentiate the toolchain, is that valid?

Yep.

-- 
Daniel Jacobowitz
CodeSourcery


GCC-3.4.6 release status

2006-03-01 Thread Gabriel Dos Reis

Hi,

   A pre-release of GCC-3.4.6 is available at

  ftp://gcc.gnu.org/pub/gcc/prerelease-3.4.6-20060301/


Please download and test.

At the moment, there is only one issue I consider important for
GCC-3.4.6.  This is wrong code generation issue middle-end/24804.  It
was already present in GCC-3.4.4, GCC-3.4.5.  If no "acceptable" fix
can be found, then GCC-3.4.6 will also have it.

GCC-3.4.6 will be the last release from the GCC-3.4 series.  After
that, the branch will be closed.

-- 
   Gabriel Dos Reis 
   [EMAIL PROTECTED]


Re: GCC 4.1.0 Released

2006-03-01 Thread Joe Buck
On Wed, Mar 01, 2006 at 08:24:18AM -0800, Mark Mitchell wrote:
> 1. GNU TAR 1.14 is required to unpack the source releases.  Other
>versions of tar are likely to report errors or silently unpack the
>file incorrectly.

Red Hat EL3 comes with tar 1.13.25 (though since the RPM package on the
machine I used is 1.13.25-13, it's likely that Red Hat has applied some
fixes to get up to rev 13).

I unpacked gcc-4.1.0.tar.bz2 with both the Red Hat tar package and
with the newest FSF tar (version 1.15.1).  There were no warning messages,
and diff -r reports that the two tars produce identical files.

What is the basis for the report that older tars don't work?




Re: GCC 4.1.0 Released

2006-03-01 Thread H. J. Lu
On Wed, Mar 01, 2006 at 08:24:18AM -0800, Mark Mitchell wrote:
> 
> GCC 4.1.0 has been released.
> 

It is great. Is 4.1 branch open now? I'd like to back port the x86
-mtune=generic patch:

http://gcc.gnu.org/ml/gcc-patches/2006-01/msg01436.html

to 4.1.1.

Thanks.


H.J.


GCC 4.1 branch open

2006-03-01 Thread Mark Mitchell
The GCC 4.1 branch is now open, under the usual branch rules: fixes for
regressions only.

Remember: the GCC 4.0 branch will freeze at midnight tonight, GMT-8, in
preparation for GCC 4.0.3.

Thanks,

-- 
Mark Mitchell
CodeSourcery
[EMAIL PROTECTED]
(650) 331-3385 x713


Re: GCC 4.1.0 Released

2006-03-01 Thread Steven Bosscher
On Wednesday 01 March 2006 21:14, H. J. Lu wrote:
> Is 4.1 branch open now? I'd like to back port the x86
> -mtune=generic patch:

Isn't that totally inappropriate for a release branch?

Gr.
Steven


Re: GCC 4.1.0 Released

2006-03-01 Thread H. J. Lu
On Wed, Mar 01, 2006 at 09:21:19PM +0100, Steven Bosscher wrote:
> On Wednesday 01 March 2006 21:14, H. J. Lu wrote:
> > Is 4.1 branch open now? I'd like to back port the x86
> > -mtune=generic patch:
> 
> Isn't that totally inappropriate for a release branch?
> 

What is it inappropriate about?


H.J.


Re: GCC 4.1.0 Released

2006-03-01 Thread Richard Guenther
On 3/1/06, H. J. Lu <[EMAIL PROTECTED]> wrote:
> On Wed, Mar 01, 2006 at 09:21:19PM +0100, Steven Bosscher wrote:
> > On Wednesday 01 March 2006 21:14, H. J. Lu wrote:
> > > Is 4.1 branch open now? I'd like to back port the x86
> > > -mtune=generic patch:
> >
> > Isn't that totally inappropriate for a release branch?
> >
>
> What is it inappropriate about?

It's a new feature and not a fix for a regression.  -> totally inappropriate.

Richard.


Re: GCC 4.1.0 Released

2006-03-01 Thread H. J. Lu
On Wed, Mar 01, 2006 at 09:42:19PM +0100, Richard Guenther wrote:
> On 3/1/06, H. J. Lu <[EMAIL PROTECTED]> wrote:
> > On Wed, Mar 01, 2006 at 09:21:19PM +0100, Steven Bosscher wrote:
> > > On Wednesday 01 March 2006 21:14, H. J. Lu wrote:
> > > > Is 4.1 branch open now? I'd like to back port the x86
> > > > -mtune=generic patch:
> > >
> > > Isn't that totally inappropriate for a release branch?
> > >
> >
> > What is it inappropriate about?
> 
> It's a new feature and not a fix for a regression.  -> totally inappropriate.

It is the issue of quality of gcc 4.1 on IA32/x86-64. The current gcc
4.1 performs very poorly on IA32/x86-64, comparing against gcc 4.2. I
can't recommond gcc 4.1 to most people using IA32/x86-64. This change
is specific to the IA32/x86-64 backend and won't affect any other
targets.


H.J.


Re: GCC 4.1.0 Released

2006-03-01 Thread Paul Brook
> > It's a new feature and not a fix for a regression.  -> totally
> > inappropriate.
>
> It is the issue of quality of gcc 4.1 on IA32/x86-64. The current gcc
> 4.1 performs very poorly on IA32/x86-64, comparing against gcc 4.2. I
> can't recommond gcc 4.1 to most people using IA32/x86-64. This change
> is specific to the IA32/x86-64 backend and won't affect any other
> targets.

Presumably it's no worse than 4.0 though.

Paul


Re: GCC 4.1.0 Released

2006-03-01 Thread Steven Bosscher
On Wednesday 01 March 2006 21:49, H. J. Lu wrote:
> It is the issue of quality of gcc 4.1 on IA32/x86-64. The current gcc
> 4.1 performs very poorly on IA32/x86-64, comparing against gcc 4.2.

Oh, really?  Where are the numbers you have to support this, may I
say, unlikely claim?

It seemed to me that the patch you propose does not help that much at
all.  At least, if it does then that was not clear from the initial
postings for the trunk, where except for Nocona it was a wash.

> I can't recommond gcc 4.1 to most people using IA32/x86-64.

You'd have to recommend ICC anyway :-P 
GCC 4.1 works a lot better for me on my AMD64 box than any previous
GCC (except for the usual compile time regressions).  so I _would_
recommend it to, well, everyone!

> This change 
> is specific to the IA32/x86-64 backend and won't affect any other
> targets.

Hmm...  I thought Mark's message was pretty clear:
http://gcc.gnu.org/ml/gcc-patches/2006-03/msg00060.html
To quote:
"The GCC 4.1 branch is now open, under the usual branch rules: fixes for
regressions only."

Those are just the same rules that gcc has had for release branches
since forever.  I think everyone understands that you, with an Intel
cap on, have to care more about Nocona than about GCC stability in
general. But that doesn't mean that the rules that apply to everyone
else should not apply to you.

Your patch implements a new feature. New features usually don't fix
regression. So your patch should be considered for GCC 4.1 IMHO.

Gr.
Steven







Re: Bootstrap failure on trunk: x86_64-linux-gnu

2006-03-01 Thread Jeffrey A Law
On Wed, 2006-03-01 at 08:24 -0500, Richard Kenner wrote:
> So this is likely to be a FE Ada coding bug and not a FE/ME/BE interface
> issue, thanks for spotting this!
> 
> Sorry, my last suggestion is clearly wrong.  I think is right.
> 
> *** uintp.adb 12 Sep 2003 21:50:56 -  1.80
> --- uintp.adb 1 Mar 2006 13:16:21 -
> *** package body Uintp is
> *** 591,595 
>   
>  begin
> !   if UI_Is_In_Int_Range (Input) then
>Num := abs (UI_To_Int (Input));
>Bits := 0;
> --- 591,598 
>   
>  begin
> !   if Input = Uint_Int_First then
> !  return Int'Size;
> ! 
> !   elsif UI_Is_In_Int_Range (Input) then
>Num := abs (UI_To_Int (Input));
>Bits := 0;
It certainly fixes the testsuite hang.  If it's the correct
fix, then can you please make sure it gets installed.

Thanks,
Jeff



Re: GCC 4.1.0 Released

2006-03-01 Thread H. J. Lu
On Wed, Mar 01, 2006 at 10:06:57PM +0100, Steven Bosscher wrote:
> On Wednesday 01 March 2006 21:49, H. J. Lu wrote:
> > It is the issue of quality of gcc 4.1 on IA32/x86-64. The current gcc
> > 4.1 performs very poorly on IA32/x86-64, comparing against gcc 4.2.
> 
> Oh, really?  Where are the numbers you have to support this, may I
> say, unlikely claim?

Here are diffs of SPEC CPU 2K between before and after with gcc 4.1
using "-O2 -ffast-math" on Nocona:

164.gzip2.50%
175.vpr 1.55%
176.gcc -0.33%
181.mcf 0.85%
186.crafty  0.06%
197.parser  0.62%
252.eon 8.58%
253.perlbmk 2.75%
254.gap 0.66%
255.vortex  7.59%
256.bzip2   4.45%
300.twolf   21.11%
SPECint_base20004.04%

168.wupwise 39.10%
171.swim38.88%
172.mgrid   61.64%
173.applu   37.62%
177.mesa3.12%
178.galgel  27.13%
179.art 18.98%
183.equake  26.67%
187.facerec 0.35%
188.ammp36.78%
189.lucas   3.52%
191.fma3d   42.71%
200.sixtrack116.13%
301.apsi32.75%
SPECfp_base2000 32.18%

> > This change 
> > is specific to the IA32/x86-64 backend and won't affect any other
> > targets.
> 
> Hmm...  I thought Mark's message was pretty clear:
> http://gcc.gnu.org/ml/gcc-patches/2006-03/msg00060.html
> To quote:
> "The GCC 4.1 branch is now open, under the usual branch rules: fixes for
> regressions only."
> 

The exception is the rule. We have done so on gcc 3.4 branch:

http://gcc.gnu.org/ml/gcc-cvs/2004-04/msg00775.html



H.J.


Re: GCC 4.1.0 Released

2006-03-01 Thread Richard Guenther
On 3/1/06, H. J. Lu <[EMAIL PROTECTED]> wrote:
> On Wed, Mar 01, 2006 at 10:06:57PM +0100, Steven Bosscher wrote:
> > On Wednesday 01 March 2006 21:49, H. J. Lu wrote:
> > > It is the issue of quality of gcc 4.1 on IA32/x86-64. The current gcc
> > > 4.1 performs very poorly on IA32/x86-64, comparing against gcc 4.2.
> >
> > Oh, really?  Where are the numbers you have to support this, may I
> > say, unlikely claim?
>
> Here are diffs of SPEC CPU 2K between before and after with gcc 4.1
> using "-O2 -ffast-math" on Nocona:

Please post more meaningful numbers, like a comparison to -mtune=nocona,
not whatever you used (the old default is i386 or i586).

Richard.


Re: GCC 4.1.0 Released

2006-03-01 Thread H. J. Lu
On Wed, Mar 01, 2006 at 10:43:40PM +0100, Richard Guenther wrote:
> On 3/1/06, H. J. Lu <[EMAIL PROTECTED]> wrote:
> > On Wed, Mar 01, 2006 at 10:06:57PM +0100, Steven Bosscher wrote:
> > > On Wednesday 01 March 2006 21:49, H. J. Lu wrote:
> > > > It is the issue of quality of gcc 4.1 on IA32/x86-64. The current gcc
> > > > 4.1 performs very poorly on IA32/x86-64, comparing against gcc 4.2.
> > >
> > > Oh, really?  Where are the numbers you have to support this, may I
> > > say, unlikely claim?
> >
> > Here are diffs of SPEC CPU 2K between before and after with gcc 4.1
> > using "-O2 -ffast-math" on Nocona:
> 
> Please post more meaningful numbers, like a comparison to -mtune=nocona,
> not whatever you used (the old default is i386 or i586).

That is the whole point: I'd like to back port the -mtune=generic
change to 4.1 branch. There are so many different IA32/x86-64
processors. The default optimization is more useful than -mtune=xxx.
The new default (-mtune=generic) is much better than the old one for
the current IA32/x86-64 processors.


H.J.


Re: GCC 4.1.0 Released

2006-03-01 Thread Andrew Pinski
> That is the whole point: I'd like to back port the -mtune=generic
> change to 4.1 branch. There are so many different IA32/x86-64
> processors. The default optimization is more useful than -mtune=xxx.
> The new default (-mtune=generic) is much better than the old one for
> the current IA32/x86-64 processors.

You are missing the whole point about a release branch though.  Yes
there have been exceptions in the past to the policy but they should
not be taken for granted.  GCC is growing up as a real professional
compiler which means no new features in minor revisions aka bug fixes
releases.  Yes there are a few exception but others and I feel this is
not an example of one of the exception at least at this point in time.

One of the reasons why people are against this patch is because one
it touches the most popular target which means it could unstablize it.
Two there are still known regressions with this patch.

PR 26146 for an example.

Thanks,
Andrew Pinski


Re: GCC 4.1.0 Released

2006-03-01 Thread Mark Mitchell
H. J. Lu wrote:

> Here are diffs of SPEC CPU 2K between before and after with gcc 4.1
> using "-O2 -ffast-math" on Nocona:

Steven's right; this is clearly a new feature.  HJ's also right; we've
made exceptions before.

Like Steven, I would like to see what the difference is between
-mtune=generic and -mtune=nocona.  If there is not much difference, then
that's an argument against a backport; just tell users to add
-mtune=nocona.  It's up to architecture maintainers to get defaults set
well for their systems in advance of releases.

I'd also like to hear from our IA32 maintainers.

I'm going to set the bar here relatively high on several grounds:

1. I've just been reminded, once again, of the dangers of "safe"
patches; c.f., the Alpha OSF threads patch for 4.1.0 which turned out to
break NetBSD.  (Fortunately, that configuration was badly enough broken
before the patch that I don't think any terribly serious damage was
done; 4.1.1 will presumably have Roger's patches which fix all of that.)
 I'm in no way criticizing Roger, and it was I who approved the patch;
however, the key point is that danger lurks everywhere.

2. IA32 is one of, if not the, most popular GCC architectures.  On the
one hand, yes, that argues for making it perform well there; on the
other, it also argues very strongly for stability.  Effectively changing
the default optimization behavior on a release branch substantially
invalidates previous validation done on that branch.

3. Slippery slope.  Every time I bend the rules, I get criticized for
bending the rules, and I get besieged by people who want other rules
bent, and then I get criticized for bending rule X for person A, but not
 rule Y for person B.  I've got a thick skin, and I feel omfortable
exercising my own non-algorithmic discretion to do what I believe is the
right thing.  But, I will also be sensitive to the developer community's
desire for predictability of decision-making.

-- 
Mark Mitchell
CodeSourcery
[EMAIL PROTECTED]
(650) 331-3385 x713


Re: GCC 4.1.0 Released

2006-03-01 Thread Mark Mitchell
Joe Buck wrote:

> What is the basis for the report that older tars don't work?

This posting:

http://gcc.gnu.org/ml/gcc-patches/2006-02/msg01861.html

It may certainly be the case that some patched version of tar on RHEL
works fine (one would indeed hope and expect that distributors are
adding value in precisely such ways!) but it's better to be safe than
sorry, and I didn't have the resources to verify exactly which versions
might or might not work.

-- 
Mark Mitchell
CodeSourcery
[EMAIL PROTECTED]
(650) 331-3385 x713


Re: Bootstrap failure on trunk: x86_64-linux-gnu

2006-03-01 Thread Jeffrey A Law

Here's the next segment in the ongoing saga of VRP vs Ada...
Not surprisingly we have another case where an object gets a
value outside of its TYPE_MIN_VALUE/TYPE_MAX_VALUE defined range.

Investigating the c460008 testsuite failure we have the following
code for Fixed_To_Short before VRP runs:




  # BLOCK 4
  # PRED: 3 (fallthru,exec)
  D.1294_13 = D.1294_12;
  D.1309_32 = for_the_value_31 /[rd] 10;
  D.1310_33 = (UNSIGNED_64) D.1309_32;
  if (D.1310_33 > 255) goto ; else goto ;
  # SUCC: 5 (true,exec) 6 (false,exec)

  # BLOCK 5 
  # PRED: 4 (true,exec)
:;
  __gnat_rcheck_10 ("c460008.adb", 162);
  # SUCC: 13 (ab,eh,exec) 18 (ab,eh,exec) 29 (ab,eh,exec)
  
  # BLOCK 6
  # PRED: 4 (false,exec)
:;
  iftmp.78_63 = D.1309_32;
  iftmp.78_64 = D.1309_32;
  D.1316_65 = (c460008__unsigned_edge_8) D.1309_32;
  if (D.1316_65 == 255) goto ; else goto ;
  # SUCC: 7 (true,exec) 8 (false,exec)

D.1309_32's type has the range [0x8000,0x7fff]
with 64bit precision.

In block #6 we cast the value of D.1309_32 into a smaller type,
specifically c460008__unsigned_edge_8 and store the result into
D.1316_64 which has type c460008__unsigned_edge_8.

c460008__unsigned_edge_8's range is [ ,254] with 8 bit precision.

Note carefully that with the range [ ,254] (according to
TYPE_MIN_VALUE/TYPE_MAX_VALUE) that the test

if (D.1316_65 == 255)

Must always be false.  So VRP, as expected, wipes out test
completely.

The problem (of course) is D.1316_65 can and does actually hold
values outside the range [ ,254] at runtime.  For example, it could
hold the value 255 if D.1309_32 had the value 255, which would occur
if for_the_value_31 held the value 2550.

Someone with a better knowledge of Ada is going to need to step
in here, but based on the type information provided by the Ada
front-end, VRP is doing the right thing here.


Jeff



Re: GCC 4.1.0 Released

2006-03-01 Thread Joe Buck
On Wed, Mar 01, 2006 at 02:24:58PM -0800, Mark Mitchell wrote:
> Joe Buck wrote:
> 
> > What is the basis for the report that older tars don't work?
> 
> This posting:
> 
> http://gcc.gnu.org/ml/gcc-patches/2006-02/msg01861.html
> 
> It may certainly be the case that some patched version of tar on RHEL
> works fine (one would indeed hope and expect that distributors are
> adding value in precisely such ways!) but it's better to be safe than
> sorry, and I didn't have the resources to verify exactly which versions
> might or might not work.

I just repeated the test with the FSF 1.13 release.  Again, no complaints
and diff -r matches what 1.15.1 gives.

I suppose I could repeat the test with the gcc 4.1 RC1 tarball, where
David E. saw a problem.





Re: GCC 4.1.0 Released

2006-03-01 Thread Steven Bosscher
On Wednesday 01 March 2006 22:06, Steven Bosscher wrote:
> Your patch implements a new feature. New features usually don't fix
> regression. So your patch should be considered for GCC 4.1 IMHO.
 
 I mean should not, obviously.

Gr.
Steven




Re: GCC 4.1.0 Released

2006-03-01 Thread H. J. Lu
On Wed, Mar 01, 2006 at 02:19:47PM -0800, Mark Mitchell wrote:
> H. J. Lu wrote:
> 
> > Here are diffs of SPEC CPU 2K between before and after with gcc 4.1
> > using "-O2 -ffast-math" on Nocona:
> 
> Steven's right; this is clearly a new feature.  HJ's also right; we've
> made exceptions before.
> 
> Like Steven, I would like to see what the difference is between
> -mtune=generic and -mtune=nocona.  If there is not much difference, then

Here are diffs of "-O2 -mtune=nocona -ffast-math" vs
"-O2 -mtune=generic -ffast-math" on Nocona:

164.gzip1.30%
175.vpr -0.29%
176.gcc -4.04%
181.mcf 0.74%
186.crafty  1.65%
197.parser  -0.10%
252.eon -0.38%
253.perlbmk 5.25%
254.gap 0.93%
255.vortex  1.54%
256.bzip2   0.72%
300.twolf   9.70%
SPECint_base20001.31%

168.wupwise 2.49%
171.swim-0.55%
172.mgrid   6.46%
173.applu   0.65%
177.mesa2.56%
178.galgel  0.14%
179.art 1.79%
183.equake  0.79%
187.facerec -0.07%
188.ammp4.86%
189.lucas   1.21%
191.fma3d   1.08%
200.sixtrack0.00%
301.apsi1.21%
SPECfp_base2000 1.62%

I'd like to see the default -O2 generate decent code for Nocona. It
is independent of improviong -mtune=nocona for Nocona.

> that's an argument against a backport; just tell users to add
> -mtune=nocona.  It's up to architecture maintainers to get defaults set
> well for their systems in advance of releases.
> 
> I'd also like to hear from our IA32 maintainers.

My IA32 numbers show that -mtune=generic gives the better SPEC CPU 2K
-O2 numbers on Dothan, Yonah, Northwood and Yonah than the previous
-O2 option.

> 
> 2. IA32 is one of, if not the, most popular GCC architectures.  On the
> one hand, yes, that argues for making it perform well there; on the
> other, it also argues very strongly for stability.  Effectively changing
> the default optimization behavior on a release branch substantially
> invalidates previous validation done on that branch.
> 

The last thing I want to see is the instability on IA32. I can't
guarantee it won't happen. But I will do my best to fix it if the
backported patch is the cause.


H.J.


Re: GCC 4.1.0 Released

2006-03-01 Thread Steven Bosscher
On Wednesday 01 March 2006 23:51, H. J. Lu wrote:
> I'd like to see the default -O2 generate decent code for Nocona.

But then, you did so too months ago, when the GCC 4.1 development
cycle was still in stage1/stage2.  Nocona has been around for a
very long time already (I have a Prescott-T myself which is going
to celebrate its second birthday soon), so you've had plenty of
time to make -O2 produce decent code for Nocona, really.  You just
didn't do that.

What's that what my professor always said... Ah yes, "Poor planning
by you does not constitute an emergency for me".

> The last thing I want to see is the instability on IA32. I can't
> guarantee it won't happen. But I will do my best to fix it if the
> backported patch is the cause.

You still have to fix a few open regressions against 4.2 caused by
this patch, and 4.2 has not even received as much testing as 4.1
so it is almost certain that there are going to be more bugs that
your patch causes or will expose.

Gr.
Steven



Re: GCC 4.1.0 Released

2006-03-01 Thread Mark Mitchell
H. J. Lu wrote:

> Here are diffs of "-O2 -mtune=nocona -ffast-math" vs
> "-O2 -mtune=generic -ffast-math" on Nocona:

A 1.5% performance improvement, while certainly significant for some
users, is not worth taking any serious risks on a release branch.  The
purpose of bug-fix releases on the release branch is to correct
regressions.  The goal is that (a) any happy user of 4.1.0 can upgrade
to 4.1.1, and (b) that users presently stuck with older releases because
of regressions in 4.1.0 can upgrade to 4.1.1.  In other words, the goal
is to shift the userbase forward to 4.1.x -- not to improve the
experience of people already using 4.1.0.

> My IA32 numbers show that -mtune=generic gives the better SPEC CPU 2K
> -O2 numbers on Dothan, Yonah, Northwood and Yonah than the previous
> -O2 option.

Yes, I understand.  I hope that 4.2 will in fact have quite a few
improvements on quite a few architectures of at least this magnitude!
However, we're not going to backport them all to 4.1.

> The last thing I want to see is the instability on IA32. I can't
> guarantee it won't happen. But I will do my best to fix it if the
> backported patch is the cause.

The first step is to address regressions on the mainline.  I have not
myself verified the claim, but there has been a suggestion that there is
at least one open regression due to the patch.  If there are any known
regressions from the patch, it's certainly not eligible for a backport.

-- 
Mark Mitchell
CodeSourcery
[EMAIL PROTECTED]
(650) 331-3385 x713


ACATS c460008 and VRP (was: Bootstrap failure on trunk: x86_64-linux-gnu)

2006-03-01 Thread Laurent GUERBY
Ok this test is checking a corner case of the language, namely
non power of two modular types.

It looks like this one needs overflow checking to pass (-gnato):

$ gnatmake -f -I../../../support/ c460008.adb
gcc -c -I../../../support/ c460008.adb
gcc -c -I./ -I../../../support/ -I- 
/home/guerby/work/gcc/build/build-head-20060301T130355/gcc/testsuite/ada/acats/support/report.adb
gnatbind -aO./ -I../../../support/ -I- -x c460008.ali
gnatlink c460008.ali
$ ./c460008

,.,. C460008 ACATS 2.5 06-03-02 00:28:43
 C460008 Check that conversion to a modular type raises
Constraint_Error when the operand value is outside the
base range of the modular type.
   * C460008 Fix expected Constraint_Error D2S Dynamic, Negative.
   - C460008 Value of 251 not properly converted.
   * C460008 Fix expected Constraint_Error D2S Static,  Over_Mod.
   - C460008 Value of 204 not properly converted.
   * C460008 Fix expected Constraint_Error D28 Static, Negative.
   - C460008 Value of 255 not properly converted.
   * C460008 Fix expected Constraint_Error D28 Static,  At_Mod.
   - C460008 Value of 0 not properly converted.
   * C460008 Fix expected Constraint_Error D28 Dynamic, Over_Mod.
   - C460008 Value of 209 not properly converted.
 C460008 FAILED .

$ gnatmake -f -gnato -I../../../support/ c460008.adb
gcc -c -gnato -I../../../support/ c460008.adb
gcc -c -I./ -gnato -I../../../support/ -I- 
/home/guerby/work/gcc/build/build-head-20060301T130355/gcc/testsuite/ada/acats/support/report.adb
gnatbind -aO./ -I../../../support/ -I- -x c460008.ali
gnatlink c460008.ali
$ ./c460008

,.,. C460008 ACATS 2.5 06-03-02 00:27:21
 C460008 Check that conversion to a modular type raises
Constraint_Error when the operand value is outside the
base range of the modular type.
 C460008 PASSED .

I'm rerunning the whole testsuite on x86_64-linux with an edited
gcc/testsuite/ada/acats/run_all.sh that includes -gnato for all tests:

gnatflags="-gnatws -gnato"

We'll see what new ACATS FAIL go away.

Richard, Arnaud, could you check amongst GNAT experts if for such types
(non power of two modulus), it's not worth enabling overflow checks by
default now that we have VRP doing non trivial optimisations? People
using non power of two modulus are not caring for performance anyway, so
having a compliant implementation by default won't harm.

Laurent

On Wed, 2006-03-01 at 15:35 -0700, Jeffrey A Law wrote:
> Here's the next segment in the ongoing saga of VRP vs Ada...
> Not surprisingly we have another case where an object gets a
> value outside of its TYPE_MIN_VALUE/TYPE_MAX_VALUE defined range.
> 
> Investigating the c460008 testsuite failure we have the following
> code for Fixed_To_Short before VRP runs:
> 
> 
> 
> 
>   # BLOCK 4
>   # PRED: 3 (fallthru,exec)
>   D.1294_13 = D.1294_12;
>   D.1309_32 = for_the_value_31 /[rd] 10;
>   D.1310_33 = (UNSIGNED_64) D.1309_32;
>   if (D.1310_33 > 255) goto ; else goto ;
>   # SUCC: 5 (true,exec) 6 (false,exec)
> 
>   # BLOCK 5 
>   # PRED: 4 (true,exec)
> :;
>   __gnat_rcheck_10 ("c460008.adb", 162);
>   # SUCC: 13 (ab,eh,exec) 18 (ab,eh,exec) 29 (ab,eh,exec)
>   
>   # BLOCK 6
>   # PRED: 4 (false,exec)
> :;
>   iftmp.78_63 = D.1309_32;
>   iftmp.78_64 = D.1309_32;
>   D.1316_65 = (c460008__unsigned_edge_8) D.1309_32;
>   if (D.1316_65 == 255) goto ; else goto ;
>   # SUCC: 7 (true,exec) 8 (false,exec)
> 
> D.1309_32's type has the range [0x8000,0x7fff]
> with 64bit precision.
> 
> In block #6 we cast the value of D.1309_32 into a smaller type,
> specifically c460008__unsigned_edge_8 and store the result into
> D.1316_64 which has type c460008__unsigned_edge_8.
> 
> c460008__unsigned_edge_8's range is [ ,254] with 8 bit precision.
> 
> Note carefully that with the range [ ,254] (according to
> TYPE_MIN_VALUE/TYPE_MAX_VALUE) that the test
> 
> if (D.1316_65 == 255)
> 
> Must always be false.  So VRP, as expected, wipes out test
> completely.
> 
> The problem (of course) is D.1316_65 can and does actually hold
> values outside the range [ ,254] at runtime.  For example, it could
> hold the value 255 if D.1309_32 had the value 255, which would occur
> if for_the_value_31 held the value 2550.
> 
> Someone with a better knowledge of Ada is going to need to step
> in here, but based on the type information provided by the Ada
> front-end, VRP is doing the right thing here.
> 
> 
> Jeff
> 
> 



Re: ACATS c460008 and VRP (was: Bootstrap failure on trunk: x86_64-linux-gnu)

2006-03-01 Thread Richard Kenner
It looks like this one needs overflow checking to pass (-gnato):

ACATS should aways be run with -gnato since that's the only way to
get the behavior mandated by RM.  Why are we running it without it?  Is
this new?  Certainly -gnato was used during validations.

Richard, Arnaud, could you check amongst GNAT experts if for such
types (non power of two modulus), it's not worth enabling overflow
checks by default now that we have VRP doing non trivial
optimisations? People using non power of two modulus are not caring
for performance anyway, so having a compliant implementation by
default won't harm.

Hardly worth writing the code to bother with that given how rare
such things are ...


Re: ACATS c460008 and VRP (was: Bootstrap failure on trunk: x86_64-linux-gnu)

2006-03-01 Thread Laurent GUERBY
On Wed, 2006-03-01 at 18:48 -0500, Richard Kenner wrote:
> It looks like this one needs overflow checking to pass (-gnato):
> 
> ACATS should aways be run with -gnato since that's the only way to
> get the behavior mandated by RM.  Why are we running it without it?  Is
> this new?  Certainly -gnato was used during validations.

On GCC we use -gnato on tests known to need it
(/gcc/testsuite/ada/acats/overflow.lst) since we want to test
flags the typical GCC/Ada user does use and not what official validation
requires (which is -gnato -gnatE IIRC).

VRP might now force us to update the overflow list but I'm not sure
about switching to a full -gnato everywhere.

> Richard, Arnaud, could you check amongst GNAT experts if for such
> types (non power of two modulus), it's not worth enabling overflow
> checks by default now that we have VRP doing non trivial
> optimisations? People using non power of two modulus are not caring
> for performance anyway, so having a compliant implementation by
> default won't harm.
> 
> Hardly worth writing the code to bother with that given how rare
> such things are ...

True.

Laurent



Re: ACATS c460008 and VRP

2006-03-01 Thread Robert Dewar

Laurent GUERBY wrote:

Ok this test is checking a corner case of the language, namely
non power of two modular types.

It looks like this one needs overflow checking to pass (-gnato):


All ACATS tests should be run with -gnatE -gnato




Re: problem with the gcc 3.4.4

2006-03-01 Thread Mike Stump

On Mar 1, 2006, at 3:47 AM, HASSAN AL MOATASSIME wrote:

I have a problem with the compiler gcc 3.4.4.
With the gcc 3.2 compiler, i have no problem with the following  
instruction :

   creal(U0[i])=PartieReelle;
   cimag(U0[i])=PartieImaginaire;

Now with the gcc 3.4.4 i have the folowing message :

-- erreur: invalid lvalue in assignment


Wrong mailing list, please use gcc-help.

I suspect that your code is invalid C/C++ code and that you may want  
to read up on what language you're using and then change your code to  
conform to that language.


Re: ACATS c460008 and VRP (was: Bootstrap failure on trunk: x86_64-linux-gnu)

2006-03-01 Thread Richard Kenner
On GCC we use -gnato on tests known to need it
(/gcc/testsuite/ada/acats/overflow.lst) since we want to test flags
the typical GCC/Ada user does use and not what official validation
requires (which is -gnato -gnatE IIRC).

Well that would make the most sense if the code in the ACATS tests was
typical of what users *write* but, as we both know, it's mostly
boundary cases in the language ...


Re: GCC 4.1.0 Released

2006-03-01 Thread H. J. Lu
On Wed, Mar 01, 2006 at 03:06:46PM -0800, Mark Mitchell wrote:
> H. J. Lu wrote:
> 
> > Here are diffs of "-O2 -mtune=nocona -ffast-math" vs
> > "-O2 -mtune=generic -ffast-math" on Nocona:
> 
> A 1.5% performance improvement, while certainly significant for some
> users, is not worth taking any serious risks on a release branch.  The

You are comparing apply with orange. If a user uses -O2, he/she will
see much more than that.

> 
> The first step is to address regressions on the mainline.  I have not
> myself verified the claim, but there has been a suggestion that there is
> at least one open regression due to the patch.  If there are any known
> regressions from the patch, it's certainly not eligible for a backport.

I am only aware of

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26146

and I have a patch. BTW, I don't think it is a real regression, just
a latent bug. I doubt

# configure i[456]86-pc-solaris2.10
# onfigure --with-cpu=i[3456]86 i386-pc-solaris2.10

had ever worked.

In any case, please CC me any -mtune=generic patch.


H.J.


Re: GCC 4.1.0 Released

2006-03-01 Thread H. J. Lu
On Wed, Mar 01, 2006 at 04:05:16PM -0800, H. J. Lu wrote:
> On Wed, Mar 01, 2006 at 03:06:46PM -0800, Mark Mitchell wrote:
> > H. J. Lu wrote:
> > 
> > > Here are diffs of "-O2 -mtune=nocona -ffast-math" vs
> > > "-O2 -mtune=generic -ffast-math" on Nocona:
> > 
> > A 1.5% performance improvement, while certainly significant for some
> > users, is not worth taking any serious risks on a release branch.  The
> 
> You are comparing apply with orange. If a user uses -O2, he/she will
> see much more than that.

I meant to say "comparing apple with orange".

> 
> > 
> > The first step is to address regressions on the mainline.  I have not
> > myself verified the claim, but there has been a suggestion that there is
> > at least one open regression due to the patch.  If there are any known
> > regressions from the patch, it's certainly not eligible for a backport.
> 
> I am only aware of
> 
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26146
> 
> and I have a patch. BTW, I don't think it is a real regression, just
> a latent bug. I doubt
> 
> # configure i[456]86-pc-solaris2.10
> # onfigure --with-cpu=i[3456]86 i386-pc-solaris2.10
> 
> had ever worked.
> 
> In any case, please CC me any -mtune=generic patch.

Let me rephrase, please CC me any -mtune=generic related bugs.


H.J.


Re: iWMMXt/Linux EABI toolchain

2006-03-01 Thread Steven Newbury

--- Daniel Jacobowitz <[EMAIL PROTECTED]> wrote:

> On Wed, Mar 01, 2006 at 06:20:53PM +, Steven Newbury wrote:
> > OK, thank-you.  I'll target "arm-iwmmxt-linux-gnueabi" with --with-cpu= etc
> and
> > --disable-multilib.  The vendor string is for my build scripts and also
> will
> > help differentiate the toolchain, is that valid?
> 
> Yep.
I've given this a go.  I've successully built a stage1 cross compiler and
installed the glibc headers.  However, on re-building gcc it fails to link
libgcc:

... ./libgcc_s.so.1.backup; else true; fi && mv ./libgcc_s.so.1.tmp
./libgcc_s.so.1 && ln -s libgcc_s.so.1 ./libgcc_s.so
/usr/arm-iwmmxt-linux-gnueabi/bin/ld: crti.o: No such file: No such file or
directory
collect2: ld returned 1 exit status
make[3]: *** [libgcc_s.so] Error 1

Any hints?


Steve



___ 
Win a BlackBerry device from O2 with Yahoo!. Enter now. 
http://www.yahoo.co.uk/blackberry


Re: ACATS c460008 and VRP (was: Bootstrap failure on trunk: x86_64-linux-gnu)

2006-03-01 Thread Eric Botcazou
> Richard, Arnaud, could you check amongst GNAT experts if for such types
> (non power of two modulus), it's not worth enabling overflow checks by
> default now that we have VRP doing non trivial optimisations? People
> using non power of two modulus are not caring for performance anyway, so
> having a compliant implementation by default won't harm.

Changing compilation options to paper over potential bugs is IMHO not the best 
approach, especially if the new options are little used.  And the current 
implementation of -gnato makes it a "heavy" option, not a "light" one.

-- 
Eric Botcazou


Re: ACATS c460008 and VRP

2006-03-01 Thread Robert Dewar

Laurent GUERBY wrote:


VRP might now force us to update the overflow list but I'm not sure
about switching to a full -gnato everywhere.


well you can expect some fiddling each version if you work this way




Re: ACATS c460008 and VRP

2006-03-01 Thread Robert Dewar

Eric Botcazou wrote:

Richard, Arnaud, could you check amongst GNAT experts if for such types
(non power of two modulus), it's not worth enabling overflow checks by
default now that we have VRP doing non trivial optimisations? People
using non power of two modulus are not caring for performance anyway, so
having a compliant implementation by default won't harm.


Changing compilation options to paper over potential bugs is IMHO not the best 
approach, especially if the new options are little used.  And the current 
implementation of -gnato makes it a "heavy" option, not a "light" one.


it's not a bug, -gnato is clearly documented as required in this
case, what makes you think otherwise?

Non power of 2 modular is so rare that using -gnato in this
case seems just fine to me.








Re: GCC 4.1.0 Released

2006-03-01 Thread Mark Mitchell
H. J. Lu wrote:

> You are comparing apply with orange. If a user uses -O2, he/she will
> see much more than that.

We can argue about that, but I don't think so.  I'm comparing a user can
achieve without the patch with the performance they can achieve with the
patch.  On all chips, for all time, users have been expected to specify
their target CPU in order to get good performance.  It's swell that GCC
4.2 will work better by default on IA32, but that's not a compelling
argument for a backport.

-- 
Mark Mitchell
CodeSourcery
[EMAIL PROTECTED]
(650) 331-3385 x713


Re: iWMMXt/Linux EABI toolchain

2006-03-01 Thread Daniel Jacobowitz
On Thu, Mar 02, 2006 at 12:27:46AM +, Steven Newbury wrote:
> I've given this a go.  I've successully built a stage1 cross compiler and
> installed the glibc headers.  However, on re-building gcc it fails to link
> libgcc:
> 
> ... ./libgcc_s.so.1.backup; else true; fi && mv ./libgcc_s.so.1.tmp
> ./libgcc_s.so.1 && ln -s libgcc_s.so.1 ./libgcc_s.so
> /usr/arm-iwmmxt-linux-gnueabi/bin/ld: crti.o: No such file: No such file or
> directory
> collect2: ld returned 1 exit status
> make[3]: *** [libgcc_s.so] Error 1
> 
> Any hints?

Please either take this to the crossgcc list or look at how crosstool
works.  This is a FAQ for building Linux cross-compilers.

-- 
Daniel Jacobowitz
CodeSourcery


Re: Marking a builtin function as `noreturn'.

2006-03-01 Thread Ian Lance Taylor
Daniel Towner <[EMAIL PROTECTED]> writes:

> I maintain a port of gcc for an embedded processor which has a HALT
> instruction. This instruction stops the processor, and generates an
> appropriate interrupt to indicate to its parent system that it has
> stopped. The instruction is accessed by the programmer using a
> port-specific builtin, which can then be used, amongst other things,
> to implement the `assert' macro.
> 
> At the moment, whenever a HALT instruction is emitted, the compiler
> still seems to assume that execution will continue after the HALT
> instruction has executed (e.g., the compiler emits branches to the
> function epilogue, etc.). I would like the compiler to treat the
> builtin instruction as though it had the attribute `noreturn'. I have
> added this attribute to the builtin declaration in the
> TARGET_INIT_BUILTINS function, but it appears to make no difference. I
> may have got the code wrong, but assuming the code is correct, should
> gcc allow a builtin to be marked as a noreturn? Should a builtin
> marked in this way stop any code flow after the HALT? Is there another
> way to achieve the effect I am after?

Define the builtin function to first emit the HALT instruction and
then call emit_barrier().

Ian


Re: GCC 4.1.0 Released

2006-03-01 Thread Diego Novillo
On 03/01/06 17:51, H. J. Lu wrote:

> SPECint_base2000  1.31%
> SPECfp_base2000   1.62%
> 
All these numbers are within the usual SPEC noise.  Not Worth It.


Re: GCC-4.1.x include/ssl/*.h ??

2006-03-01 Thread Mark Mitchell
Greg Schafer wrote:

> Remove the -j3 and all is well. I suppose most folks never run `make
> install' in parallel.. but sometimes it's convenient to just simply:
> 
>  export MAKEFLAGS=-j3
> 
> for big compile jobs.

I'm not aware of anything parallel-make unfriendly about my patch, but I
can believe there's a problem in there somewhere.  I never run "make
install" in parallel because, frankly, it's *never* worked for me; I
just thought all of our makefiles were generally broken for parallel
installation. :-(

-- 
Mark Mitchell
CodeSourcery
[EMAIL PROTECTED]
(650) 331-3385 x713


Re: GCC 4.1.0 Released

2006-03-01 Thread David Edelsohn
> Dan Kegel writes:

>> The problem has nothing to do with warnings from tar, which are neither
>> errors nor silent failures.  I believe a file either got skipped or
>> unpacked with the wrong name.

Dan> Egads.   Can you point me to more info?  I've been building with older
Dan> versions of tar without any problem beyond the warnings.

The problem I experienced was a missing last character of some
very long filenames when untarring.  Some C++ header files with .hpp
prefix were untarred as .hp.  Listing the files in the tarball displayed
the same filename truncation.  Upgrading GNU tar to 1.15.1 fixed the
problem for me.

David



Re: GCC 4.1.0 Released

2006-03-01 Thread Roman Belenov
David Edelsohn <[EMAIL PROTECTED]> writes:

> Upgrading GNU tar to 1.15.1 fixed the problem for me.

So what is the actual requirement - 1.14 or "1.14 or above" ?

-- 
With regards, Roman.