Re: C++ parsing regression?

2006-01-03 Thread Richard Guenther
On Mon, 2 Jan 2006, Mark Mitchell wrote:

> Richard Guenther wrote:
> > g++ no longer parses
> > 
> > ScalarCode >(CflFunctor(omrot, vis_f))(scratch, 
> > I, cs, nue, v);
> > 
> > correctly, but issues
> > 
> > tramp3d-v4.cpp:53573: error: invalid declarator
> > 
> > which can be fixed by putting parantheses around the decl.  Was this 
> > change intended?  
> 
> I'm not sure; please send me preprocessed source, and I will look into
> it.  It's certainly possible that those changes broke something.
> 
> What do you think the above code is supposed to mean?  Are you declaring
> a constructor for CflFunctor, or an unnamed variable of type
> ScalarCode > or ?

It's

  {
CflFunctor tmp1(omrot, vis_f);
ScalarCode > tmp2(tmp1);
tmp2.operator()(scratch, I, cs, nue, v);
  }

i.e. instantiating ScalarCode > using the constructor
that takes an argument of type CflFunctor that is constructed
with the two params omrot and vis_f and then calling operator() on
the constructed object.

Source is from http://www.suse.de/~rguenther/tramp3d/tramp3d-v4.cpp.gz

A reduced testcase looks like

template 
struct ScalarCode
{
  ScalarCode(const T&);
  template 
  void operator()(const A&, const B&);
};
template 
struct CflFunctor
{
  CflFunctor(bool omrot, bool vis_f);
};
struct Bar {};
void foo(bool omrot, bool vis_f, const Bar& x, const Bar& y)
{
  ScalarCode >(CflFunctor<3>(omrot, vis_f))(x, y);
}

Richard.



Re: Might a -native-semantics switch, forcing native target optimization semantics, be reasonable?

2006-01-03 Thread Paul Schlie
> Jim Blandy wrote:
> On 1/2/06, Paul Schlie wrote:
>> - at the most basic level, I feel like I've too often needlessly wasted
>>   time debugging programs at one level of optimization, to only see a
>>   different behavior needlessly expressed at a different level of
>>   optimization (which I understand means something isn't portable, but
>>   isn't the correct way to inform one of non-portable code, but is one
>>   hell of a way to unknowingly interject bugs into a program which didn't
>>   exist at a different level of optimization); however if a compiler
>>   supported the means by which a target could define the semantics left
>>   undefined by a language, an optimizing compiler could then both satisfy
>>   the formal constrains of language, while simultaneously enabling target
>>   specific semantics to be supported, and preserved through optimization.
>>   (which seems like a win-win to me)
> 
> Okay, this makes sense to me now.  If there were a switch that changed
> the language from ISO C to a very similar language that actually
> specified a fixed behavior for all the behaviors that ISO C says are
> unspecified or undefined, then you'd have a language that might not be
> possible to compile as efficiently in some cases, but in which every
> program had a unique correct behavior.  (Setting aside inherently
> unpredictable things like threads and signals.)  For example, the
> language would actually have to specify some default value for all
> variables, or require them to be assigned before their first use in a
> way that the compiler could statically verify (as in Java).
> 
> This is what the Java folks were shooting for, if you ignore the
> non-determinism introduced by threads.  Standard ML also specifies a
> particular result for all programs.  If my copies of both those specs
> weren't still packed, I think I could actually find quotes from each
> where they state being fully defined as a goal.  So I think it's clear
> there are a lot of people who think this is a worthwhile principle.
> 
> Paul is combining this suggestion with the further idea that the
> unspecified and undefined behaviors could be tied down in a way
> comfortable for the particular target.  I guess he's trying to reduce
> the performance impact.  That concession would allow the changes in
> behavior that annoy him now when he switches optimization levels to
> re-appear when one switches targets.  The opposite extreme to Paul's
> concession would be to eliminate all target-dependent characteristics
> from the language, including type size differences and alignment
> requirements, yielding a language which specified a unique correct
> result for all programs (again, setting aside threads and signals) on
> all targets.  As ML and Java do.
> Or, there could be a middle ground: you could specify some
> characteristics (say, integral type sizes and wrap-around on overflow)
> for all targets, but leave others (say, pointer size and alignment)
> target-specific.

Yes.





Re: Thumb optimization question

2006-01-03 Thread Richard Earnshaw
On Mon, 2005-12-26 at 21:41, Ivan Petrov wrote:
> I have one question. So... have small sample programm.
> 
> [code]
> int bar( int );
> 
> int foo( int a, int b )
> {
>return bar( a + b );
> }
> [/code]
>  
> If I compille it with out -thumb parameter, i have very clean code.
>  
>  add r0, r1, r0
> bx lr
>  
> But with -thumb parameter have unopimized code.
> 
> add r1, r1, r0
> mov r0, r1
> bx lr
>  
> All diff of it outrage on '*.27.combine' (key -da) optimization step. But I 
> long time can't understad how it work.
> Can anybody help me with it?

It's because the register allocator is stupid.

R.




Re: Xscale big endian tool-chain (how to build it?)

2006-01-03 Thread Richard Earnshaw
On Sat, 2005-12-31 at 20:26, Karel Gardas wrote:
> /home/karel/usr/local/arm-elf1/bin/../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/bin/ld:
>  
> ERROR: 
> /home/karel/usr/local/arm-elf1/bin/../lib/gcc/arm-elf/4.0.1/be/libgcc.a(_dvmd_tls.o)
>  
> uses hardware FP, whereas hello.xg2 uses software FP
> []
> 
> if I understand it correctly, then libgcc.a provided in 
> /home/karel/usr/local/arm-elf1/bin/../lib/gcc/arm-elf/4.0.1/be/libgcc.a is 
> build with -mhard-float, while my application with -msoft-float.
> 
> Question: any idea how to build GCC tool-chain with soft-float's libgcc.a for 
> big-endian Xscale? -- here I assume I'm right with my conclusion above, if 
> this 
> is not the case please correct me.
> 

You get this error if you try to use -msoft-float with a gcc
configuration that already defaults to -msoft-float.  This is because
the default object files are marked incorrectly in this case.  The
easiest way to work around it is to not use the -msoft-float option for
these configurations.

R.




Re: Xscale big endian tool-chain (how to build it?)

2006-01-03 Thread Karel Gardas

On Tue, 3 Jan 2006, Richard Earnshaw wrote:


On Sat, 2005-12-31 at 20:26, Karel Gardas wrote:

/home/karel/usr/local/arm-elf1/bin/../lib/gcc/arm-elf/4.0.1/../../../../arm-elf/bin/ld:
ERROR:
/home/karel/usr/local/arm-elf1/bin/../lib/gcc/arm-elf/4.0.1/be/libgcc.a(_dvmd_tls.o)
uses hardware FP, whereas hello.xg2 uses software FP
[]

if I understand it correctly, then libgcc.a provided in
/home/karel/usr/local/arm-elf1/bin/../lib/gcc/arm-elf/4.0.1/be/libgcc.a is
build with -mhard-float, while my application with -msoft-float.

Question: any idea how to build GCC tool-chain with soft-float's libgcc.a for
big-endian Xscale? -- here I assume I'm right with my conclusion above, if this
is not the case please correct me.



You get this error if you try to use -msoft-float with a gcc
configuration that already defaults to -msoft-float.  This is because
the default object files are marked incorrectly in this case.  The
easiest way to work around it is to not use the -msoft-float option for
these configurations.


OK, if I understand you well, then I should not use -msoft-float for both: 
compiling of eCos lib and then for compiling my eCos-based app. The 
problem is that this is not right way how to workaround this issue. I've 
checked that I'm not using -msoft-float neither for building eCos lib nor 
for building eCos-based app. I've saved typescript of `make' so I'm sure 
build does not use -msoft-float anywhere and the issue is still the same.


FYI: Options used for eCos lib build are:
-finline-limit=7000 -Wa,-mfpu=softfpa -mbig-endian -mcpu=xscale -Wall 
-Wpointer-arith -Wstrict-prototypes -Winline -Wundef  -g -O2 
-ffunction-sections -fdata-sections  -fno-exceptions  -mapcs-frame


and options used to build my app are:
-mbig-endian -O2 -g hello.c -o hello.xg -L../lib -nostdlib -Ttarget.ld

Anyway, could you be so kind and please have a look at 
my reply to gcc-help, where I've described my suspicion about this issue?


http://gcc.gnu.org/ml/gcc-help/2006-01/msg00015.html
http://gcc.gnu.org/ml/gcc-help/2006-01/msg00016.html

My major doubts are about the build of soft-float libgcc when -msoft-float 
is not used at all.


Thanks!
Karel
--
Karel Gardas  [EMAIL PROTECTED]
ObjectSecurity Ltd.   http://www.objectsecurity.com



Re: Xscale big endian tool-chain (how to build it?)

2006-01-03 Thread Richard Earnshaw
On Tue, 2006-01-03 at 15:38, Karel Gardas wrote:

> OK, if I understand you well, then I should not use -msoft-float for both: 
> compiling of eCos lib and then for compiling my eCos-based app. The 
> problem is that this is not right way how to workaround this issue. I've 
> checked that I'm not using -msoft-float neither for building eCos lib nor 
> for building eCos-based app. I've saved typescript of `make' so I'm sure 
> build does not use -msoft-float anywhere and the issue is still the same.
> 
> FYI: Options used for eCos lib build are:
> -finline-limit=7000 -Wa,-mfpu=softfpa -mbig-endian -mcpu=xscale -Wall 
> -Wpointer-arith -Wstrict-prototypes -Winline -Wundef  -g -O2 
> -ffunction-sections -fdata-sections  -fno-exceptions  -mapcs-frame

Try taking -Wa,-mfpu=softfpa out as well.  That will probably have the
same adverse effect on the object files generated.

R.




Re: Xscale big endian tool-chain (how to build it?)

2006-01-03 Thread Karel Gardas

On Tue, 3 Jan 2006, Richard Earnshaw wrote:


On Tue, 2006-01-03 at 15:38, Karel Gardas wrote:


OK, if I understand you well, then I should not use -msoft-float for both:
compiling of eCos lib and then for compiling my eCos-based app. The
problem is that this is not right way how to workaround this issue. I've
checked that I'm not using -msoft-float neither for building eCos lib nor
for building eCos-based app. I've saved typescript of `make' so I'm sure
build does not use -msoft-float anywhere and the issue is still the same.

FYI: Options used for eCos lib build are:
-finline-limit=7000 -Wa,-mfpu=softfpa -mbig-endian -mcpu=xscale -Wall
-Wpointer-arith -Wstrict-prototypes -Winline -Wundef  -g -O2
-ffunction-sections -fdata-sections  -fno-exceptions  -mapcs-frame


Try taking -Wa,-mfpu=softfpa out as well.  That will probably have the
same adverse effect on the object files generated.


OK, I've removed this and got this one now:

silence:~/usr/local/xscale-ecos-default/ixdp425_install/examples$ 
arm-elf-gcc -mbig-endian -O2 -g hello.c -o hello.xg -I../include -L../lib 
-nostdlib -Ttarget.ld
/home/karel/usr/local/arm-elf1/lib/gcc/arm-elf/4.0.1/../../../../arm-elf/bin/ld: 
ERROR: /tmp/ccKN8dgp.o uses FPA instructions, whereas hello.xg does not
/home/karel/usr/local/arm-elf1/lib/gcc/arm-elf/4.0.1/../../../../arm-elf/bin/ld: 
failed to merge target specific data of file /tmp/ccKN8dgp.o
/home/karel/usr/local/arm-elf1/lib/gcc/arm-elf/4.0.1/../../../../arm-elf/bin/ld: 
ERROR: 
/home/karel/usr/local/arm-elf1/lib/gcc/arm-elf/4.0.1/be/libgcc.a(_udivsi3.o) 
uses FPA instructions, whereas hello.xg does not



Anyway, I've now compared fpu and common libgcc and found that really fpu 
(which should be hard-float) is different from the common lib in be 
subdirectory (I'm talking about gcc/be/libgcc.a and gcc/be/fpu/libgcc.a), 
so my assumption about building hard-float libgcc by default is not true 
neither.


Do you have any idea how to proceed with this?

Thanks,
Karel
--
Karel Gardas  [EMAIL PROTECTED]
ObjectSecurity Ltd.   http://www.objectsecurity.com



Re: RFC: peephole vs RTX_FRAME_RELATED_P

2006-01-03 Thread Richard Henderson
On Mon, Jan 02, 2006 at 10:35:40PM -0500, Hans-Peter Nilsson wrote:
> I was just bitten by the same behavior for define_split.
> Should the same go for define_splits ...

Um, sure.

> and maybe also as a guard test for combine?

That would be silly, since the note doesn't exist that early.


r~



Re: RFC: peephole vs RTX_FRAME_RELATED_P

2006-01-03 Thread Richard Henderson
On Mon, Jan 02, 2006 at 08:10:21PM -0800, Ian Lance Taylor wrote:
> And flow2 calls split_all_insns before the
> prologue and epilogue insns are threaded.  When did the bogus split
> happen?

There are at least 3 post-reload split points.


r~



Re: RTL alias analysis

2006-01-03 Thread Richard Henderson
On Mon, Jan 02, 2006 at 12:45:49AM -0500, Daniel Berlin wrote:
> ... the real
> solution is to transfer the information that the stack space sharing
> knows into some simple set form, and use *that directly* in alias.c, and
> check it *first*, so that if they have the same stack slot, we say there
> is a dependence, even if the memory expressions/types/etc look
> different.

... And that doesn't work for the test case, because we've
carefuly thrown away any information that might have given
us any information wrt the stack slots.

I'll have to give this some thought.


r~



Re: Xscale big endian tool-chain (how to build it?)

2006-01-03 Thread Richard Earnshaw
On Tue, 2006-01-03 at 15:52, Karel Gardas wrote:
> On Tue, 3 Jan 2006, Richard Earnshaw wrote:
> 
> > On Tue, 2006-01-03 at 15:38, Karel Gardas wrote:
> >
> >> OK, if I understand you well, then I should not use -msoft-float for both:
> >> compiling of eCos lib and then for compiling my eCos-based app. The
> >> problem is that this is not right way how to workaround this issue. I've
> >> checked that I'm not using -msoft-float neither for building eCos lib nor
> >> for building eCos-based app. I've saved typescript of `make' so I'm sure
> >> build does not use -msoft-float anywhere and the issue is still the same.
> >>
> >> FYI: Options used for eCos lib build are:
> >> -finline-limit=7000 -Wa,-mfpu=softfpa -mbig-endian -mcpu=xscale -Wall
> >> -Wpointer-arith -Wstrict-prototypes -Winline -Wundef  -g -O2
> >> -ffunction-sections -fdata-sections  -fno-exceptions  -mapcs-frame
> >
> > Try taking -Wa,-mfpu=softfpa out as well.  That will probably have the
> > same adverse effect on the object files generated.
> 
> OK, I've removed this and got this one now:
> 
> silence:~/usr/local/xscale-ecos-default/ixdp425_install/examples$ 
> arm-elf-gcc -mbig-endian -O2 -g hello.c -o hello.xg -I../include -L../lib 
> -nostdlib -Ttarget.ld
> /home/karel/usr/local/arm-elf1/lib/gcc/arm-elf/4.0.1/../../../../arm-elf/bin/ld:
>  
> ERROR: /tmp/ccKN8dgp.o uses FPA instructions, whereas hello.xg does not
> /home/karel/usr/local/arm-elf1/lib/gcc/arm-elf/4.0.1/../../../../arm-elf/bin/ld:
>  
> failed to merge target specific data of file /tmp/ccKN8dgp.o
> /home/karel/usr/local/arm-elf1/lib/gcc/arm-elf/4.0.1/../../../../arm-elf/bin/ld:
>  
> ERROR: 
> /home/karel/usr/local/arm-elf1/lib/gcc/arm-elf/4.0.1/be/libgcc.a(_udivsi3.o) 
> uses FPA instructions, whereas hello.xg does not
> 
> 
> Anyway, I've now compared fpu and common libgcc and found that really fpu 
> (which should be hard-float) is different from the common lib in be 
> subdirectory (I'm talking about gcc/be/libgcc.a and gcc/be/fpu/libgcc.a), 
> so my assumption about building hard-float libgcc by default is not true 
> neither.
> 
> Do you have any idea how to proceed with this?

Ug, this would appear to be a bundle of different options plus a
build-process that ends up with everything conflicting[1] with itself...
;-(

First of all, you can't in general just copy in the old version of
t-arm-elf into a later version of GCC and expect it to work correctly. 
Compare the gcc-4.0.x version against the sample one from the website
and then uncomment the relevant bits to suit your needs (this is for the
multilibs stuff).  You probably won't need everything, but if you
closely mimic what's been done before you should have fewer problems. 
The options are generally grouped, so if you uncomment one option, make
sure you uncomment the entire group.

Next, I suggest you add --with-cpu=xscale when configuring GCC.  You can
then drop the -mcpu=xscale when compiling (this should also give you
better libraries for your system).  However, beware that you libraries
will now only run on ARMv5 or later processors.

R.

[1] If you want the gory details, then I think they are as follows:
- With no CPU specified the assembler assumes -msoft-fpa as a default,
but it incorrectly marks the objects as being hard-fpa
- With -mcpu=xscale the assembler defaults to -msoft-vfp and correctly
marks the objects as such.
- There's then no way to switch back to 'soft-fpa, but with the hard-fpa
marking used by the default configuration.




Re: Xscale big endian tool-chain (how to build it?)

2006-01-03 Thread Karel Gardas

On Tue, 3 Jan 2006, Richard Earnshaw wrote:


First of all, you can't in general just copy in the old version of
t-arm-elf into a later version of GCC and expect it to work correctly.
Compare the gcc-4.0.x version against the sample one from the website
and then uncomment the relevant bits to suit your needs (this is for the
multilibs stuff).


Just a note. I'm using/building gcc-4.0.1 and I'm using/hacking t-arm-elf 
from the gcc-4.0.1 release.


Anyway, thanks for your kind explanation and advice which I'm going to 
follow to see if it solves my issue.


Thanks,
Karel
--
Karel Gardas  [EMAIL PROTECTED]
ObjectSecurity Ltd.   http://www.objectsecurity.com



inconsistency in location of static and shared libraries on sparc64-sun-solaris*

2006-01-03 Thread Aleksandar Milivojevic
I've just built gcc with sparc64 as build target (64-bit gcc binary that
generates 64-bit code by default, much like Linux amd64 does).

I've noticed one inconsistency how libraries are installed.  For shared
libraries (lib*.so), the 32-bit version is installed in prefix/lib, while
64-bit version is installed in prefix/lib/sparcv9.

For static libraries (lib*.a archives), it is the other way around.  The 64-bit
version is installed in prefix/lib, while 32-bit version is installed in
prefix/lib/sparcv7!?

Just wondering if this was by design, and/or if there was some good reason for
this?  Looking at the system libraries (/lib, /usr/lib), the lib/lib*.a are
32-bit, there is no sparcv7 directory anywhere in sight.  There's almost no
static 64-bit libs either (with exception of two, libadt_jni.a and
libldfeature.a, and they are in lib/sparcv9 as expected).

A bit off topic.  While configure script for gcc creates makefiles that generate
both 32-bit and 64-bit libraries, I noticed that configure script in all other
GNU packages doesn't.  Even more, when building on sparc64 target, the
libraries (which are 64-bit) get installed in prefix/lib (not in
prefix/lib/sparcv9).  Hmmm... kind of annoying.  Is this generic configure
script problem, or libtool problem, or developers not caring about Solaris
32/64 bit specifics, or something else?  Any good way to go around that?  I've
used --libdir $prefix/lib/sparcv9, but that has side effect of placing data
files in sparcv9 with some packages (while only 64-bit libs should go there). 
Gettext is an example of such package where using --libdir has not desired
side-effects.



This message was sent using IMP, the Internet Messaging Program.




Re: Xscale big endian tool-chain (how to build it?)

2006-01-03 Thread Karel Gardas

On Tue, 3 Jan 2006, Richard Earnshaw wrote:


On Tue, 2006-01-03 at 15:52, Karel Gardas wrote:

On Tue, 3 Jan 2006, Richard Earnshaw wrote:


On Tue, 2006-01-03 at 15:38, Karel Gardas wrote:


OK, if I understand you well, then I should not use -msoft-float for both:
compiling of eCos lib and then for compiling my eCos-based app. The
problem is that this is not right way how to workaround this issue. I've
checked that I'm not using -msoft-float neither for building eCos lib nor
for building eCos-based app. I've saved typescript of `make' so I'm sure
build does not use -msoft-float anywhere and the issue is still the same.

FYI: Options used for eCos lib build are:
-finline-limit=7000 -Wa,-mfpu=softfpa -mbig-endian -mcpu=xscale -Wall
-Wpointer-arith -Wstrict-prototypes -Winline -Wundef  -g -O2
-ffunction-sections -fdata-sections  -fno-exceptions  -mapcs-frame


Try taking -Wa,-mfpu=softfpa out as well.  That will probably have the
same adverse effect on the object files generated.


OK, I've removed this and got this one now:

silence:~/usr/local/xscale-ecos-default/ixdp425_install/examples$
arm-elf-gcc -mbig-endian -O2 -g hello.c -o hello.xg -I../include -L../lib
-nostdlib -Ttarget.ld
/home/karel/usr/local/arm-elf1/lib/gcc/arm-elf/4.0.1/../../../../arm-elf/bin/ld:
ERROR: /tmp/ccKN8dgp.o uses FPA instructions, whereas hello.xg does not
/home/karel/usr/local/arm-elf1/lib/gcc/arm-elf/4.0.1/../../../../arm-elf/bin/ld:
failed to merge target specific data of file /tmp/ccKN8dgp.o
/home/karel/usr/local/arm-elf1/lib/gcc/arm-elf/4.0.1/../../../../arm-elf/bin/ld:
ERROR:
/home/karel/usr/local/arm-elf1/lib/gcc/arm-elf/4.0.1/be/libgcc.a(_udivsi3.o)
uses FPA instructions, whereas hello.xg does not


Anyway, I've now compared fpu and common libgcc and found that really fpu
(which should be hard-float) is different from the common lib in be
subdirectory (I'm talking about gcc/be/libgcc.a and gcc/be/fpu/libgcc.a),
so my assumption about building hard-float libgcc by default is not true
neither.

Do you have any idea how to proceed with this?


Ug, this would appear to be a bundle of different options plus a
build-process that ends up with everything conflicting[1] with itself...
;-(

First of all, you can't in general just copy in the old version of
t-arm-elf into a later version of GCC and expect it to work correctly.
Compare the gcc-4.0.x version against the sample one from the website
and then uncomment the relevant bits to suit your needs (this is for the
multilibs stuff).  You probably won't need everything, but if you
closely mimic what's been done before you should have fewer problems.
The options are generally grouped, so if you uncomment one option, make
sure you uncomment the entire group.

Next, I suggest you add --with-cpu=xscale when configuring GCC.  You can
then drop the -mcpu=xscale when compiling (this should also give you
better libraries for your system).  However, beware that you libraries
will now only run on ARMv5 or later processors.


I have tried this with binutils 2.16.1 and gcc 4.0.1, but w/o success. The 
failure happen during compilation of gcc and it looks like:


/tmp/arm-elf-build/obj-gcc/gcc/xgcc -B/tmp/arm-elf-build/obj-gcc/gcc/ 
-nostdinc -B/tmp/arm-elf-build/obj-gcc/arm-elf/newlib/ -isystem 
/tmp/arm-elf-build/obj-gcc/arm-elf/newlib/targ-include -isystem 
/tmp/arm-elf-build/gcc-4.0.1/newlib/libc/include 
-B/home/karel/usr/local/arm-elf1/arm-elf/bin/ 
-B/home/karel/usr/local/arm-elf1/arm-elf/lib/ -isystem 
/home/karel/usr/local/arm-elf1/arm-elf/include -isystem 
/home/karel/usr/local/arm-elf1/arm-elf/sys-include -O2  -DIN_GCC 
-DCROSS_COMPILE   -W -Wall -Wwrite-strings -Wstrict-prototypes 
-Wmissing-prototypes -Wold-style-definition  -isystem ./include 
-Dinhibit_libc -fno-inline -g  -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED 
-Dinhibit_libc -I. -I. -I../../gcc-4.0.1/gcc -I../../gcc-4.0.1/gcc/. 
-I../../gcc-4.0.1/gcc/../include -I../../gcc-4.0.1/gcc/../libcpp/include 
-mhard-float -DL_addsubdf3 -xassembler-with-cpp -c 
../../gcc-4.0.1/gcc/config/arm/lib1funcs.asm -o libgcc/fpu/_addsubdf3.o

../../gcc-4.0.1/gcc/config/arm/ieee754-df.S: Assembler messages:
../../gcc-4.0.1/gcc/config/arm/ieee754-df.S:454: Error: selected processor does 
not support `mvfeqd f0,#0.0'
../../gcc-4.0.1/gcc/config/arm/ieee754-df.S:476: Error: selected processor does 
not support `mvfeqd f0,#0.0'
../../gcc-4.0.1/gcc/config/arm/ieee754-df.S:530: Error: selected processor does 
not support `ldfd f0,[sp],#8'
make[2]: *** [libgcc/fpu/_addsubdf3.o] Error 1
make[2]: Leaving directory `/tmp/arm-elf-build/obj-gcc/gcc'
make[1]: *** [stmp-multilib] Error 2
make[1]: Leaving directory `/tmp/arm-elf-build/obj-gcc/gcc'
make: *** [all-gcc] Error 2

First of all, I've thought this is because of my original binutils 
binaries configured with out --with-cpu=xscale, but even if I add this 
configure switch and rebuild them, the issue is still the same. Perhaps, 
my bintutils config is still wrong? But I'm short of ideas what to do 
n

keeping branch up to date with mainline

2006-01-03 Thread mcrosier
All,
I've recently opened a new branch for treegion (tree-region) scheduling. 
I'm new at this and was just wondering if someone could tell me how to
keep my branch updated with the mainline?

 Thanks,
   Chad Rosier




Re: keeping branch up to date with mainline

2006-01-03 Thread Diego Novillo
On Tuesday 03 January 2006 12:17, [EMAIL PROTECTED] wrote:

> how to keep my branch updated with the mainline?
>
The easiest way is using svnmerge.py (included in SVN's contrib directory).  
There's documentation in the GCC wiki:  http://gcc.gnu.org/wiki/SvnBranch



Re: HARD_REGNO_MODE_OK_FOR_CLASS Might Be Nice (tm)

2006-01-03 Thread Joern RENNECKE

In http://gcc.gnu.org/ml/gcc/2005-12/msg00642.html, Bernd Jendrissek wrote:
> Which leads me to the subject.  Would it be a win to have a macro
> HARD_REGNO_MODE_OK_FOR_CLASS (REGNO, MODE, CLASS) which would be the
> authoritative test for this loop in find_reg()?  On my port, and I
> imagine on many others too, I think a default
>
> #ifndef HARD_REGNO_MODE_OK_FOR_CLASS
> #define HARD_REGNO_MODE_OK_FOR_CLASS(REGNO, MODE, CLASS) \
>   HARD_REGNO_MODE_OK ((REGNO), (MODE))
> #endif
>
> would be okay.

It's not that simple.  For example, consider multi-word integer arithmetic.
If you want to allocate a 32 bit integer register on your 16 bit x86,
all the integer registers are suitable as parts of the allocation.
However, if you start with the last integer register, the second part
will end up in a hard register which is not an integer register.
So to make this work, you's have to say that the last integer register is
not suitable for SImode, SFmode or CHImode, the last three ones are not
suitable for DImode, DFmode, CSImode or SCmode etc.




Re: Bootstrap failure on Linux/i686 in Ada

2006-01-03 Thread Jeffrey A Law
On Mon, 2006-01-02 at 19:31 +0100, Laurent GUERBY wrote:
> Hi Rainer, this is PR24994:
> 
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24994
> 
> And is under investigation:
> 
> http://gcc.gnu.org/ml/gcc-patches/2005-12/msg01756.html
Still under investigation.  Very little happened over the last week.

I'm back on it though :-)

jeff





Re: RFC: peephole vs RTX_FRAME_RELATED_P

2006-01-03 Thread Hans-Peter Nilsson
On Mon, 2 Jan 2006, Ian Lance Taylor wrote:
> When did the bogus split
> happen?

Sorry, I didn't answer this question and now the gdb session is
gone.  Hopefully the answer isn't that important given RTH's
comment?  I'd guess reorg.

brgds, H-P



Re: Xscale big endian tool-chain (how to build it?)

2006-01-03 Thread Richard Earnshaw
On Tue, 2006-01-03 at 17:15, Karel Gardas wrote:

> I have tried this with binutils 2.16.1 and gcc 4.0.1, but w/o success. The 
> failure happen during compilation of gcc and it looks like:
> 
> /tmp/arm-elf-build/obj-gcc/gcc/xgcc -B/tmp/arm-elf-build/obj-gcc/gcc/ 
> -nostdinc -B/tmp/arm-elf-build/obj-gcc/arm-elf/newlib/ -isystem 
> /tmp/arm-elf-build/obj-gcc/arm-elf/newlib/targ-include -isystem 
> /tmp/arm-elf-build/gcc-4.0.1/newlib/libc/include 
> -B/home/karel/usr/local/arm-elf1/arm-elf/bin/ 
> -B/home/karel/usr/local/arm-elf1/arm-elf/lib/ -isystem 
> /home/karel/usr/local/arm-elf1/arm-elf/include -isystem 
> /home/karel/usr/local/arm-elf1/arm-elf/sys-include -O2  -DIN_GCC 
> -DCROSS_COMPILE   -W -Wall -Wwrite-strings -Wstrict-prototypes 
> -Wmissing-prototypes -Wold-style-definition  -isystem ./include 
> -Dinhibit_libc -fno-inline -g  -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED 
> -Dinhibit_libc -I. -I. -I../../gcc-4.0.1/gcc -I../../gcc-4.0.1/gcc/. 
> -I../../gcc-4.0.1/gcc/../include -I../../gcc-4.0.1/gcc/../libcpp/include 
> -mhard-float -DL_addsubdf3 -xassembler-with-cpp -c 
> ../../gcc-4.0.1/gcc/config/arm/lib1funcs.asm -o libgcc/fpu/_addsubdf3.o
> ../../gcc-4.0.1/gcc/config/arm/ieee754-df.S: Assembler messages:
> ../../gcc-4.0.1/gcc/config/arm/ieee754-df.S:454: Error: selected processor 
> does not support `mvfeqd f0,#0.0'
> ../../gcc-4.0.1/gcc/config/arm/ieee754-df.S:476: Error: selected processor 
> does not support `mvfeqd f0,#0.0'
> ../../gcc-4.0.1/gcc/config/arm/ieee754-df.S:530: Error: selected processor 
> does not support `ldfd f0,[sp],#8'
> make[2]: *** [libgcc/fpu/_addsubdf3.o] Error 1
> make[2]: Leaving directory `/tmp/arm-elf-build/obj-gcc/gcc'
> make[1]: *** [stmp-multilib] Error 2
> make[1]: Leaving directory `/tmp/arm-elf-build/obj-gcc/gcc'
> make: *** [all-gcc] Error 2
> 
> First of all, I've thought this is because of my original binutils 
> binaries configured with out --with-cpu=xscale, but even if I add this 
> configure switch and rebuild them, the issue is still the same. Perhaps, 
> my bintutils config is still wrong? But I'm short of ideas what to do 
> now...
> 
> Thanks!
> Karel
> PS: in gcc/config/arm/t-arm-elf I only uncommented those options to get BE 
> build:
> 
> MULTILIB_OPTIONS += mlittle-endian/mbig-endian
> MULTILIB_DIRNAMES+= le be
> MULTILIB_MATCHES += mbig-endian=mbe mlittle-endian=mle
> 
> MULTILIB_OPTIONS+= mhard-float/msoft-float
> MULTILIB_DIRNAMES   += fpu soft
> MULTILIB_EXCEPTIONS += *mthumb/*mhard-float*
> 
> MULTILIB_OPTIONS+= mno-thumb-interwork/mthumb-interwork
> MULTILIB_DIRNAMES   += normal interwork

You don't need the hard/soft float variants.  Just comment them out (the
middle group).

R.




Re: Bootstrap failure on Linux/i686 in Ada

2006-01-03 Thread Jeffrey A Law
On Mon, 2006-01-02 at 19:31 +0100, Laurent GUERBY wrote:
> Hi Rainer, this is PR24994:
> 
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24994
> 
> And is under investigation:
> 
> http://gcc.gnu.org/ml/gcc-patches/2005-12/msg01756.html
Hmmm, I'm still having trouble disabling this (*&@#$ address
space randomization, more so than I've had in the past.  Dorking
around with exec-shield and randomize_va_space doesn't seem to
do the right thing on any box I've got around here.

This is, err, (*&@#$ annoying.  I really need a stable VM
layout so that I can set some watchpoints on the mmap'd
space.  G.

jeff







Re: inconsistency in location of static and shared libraries on sparc64-sun-solaris*

2006-01-03 Thread Eric Botcazou
> I've noticed one inconsistency how libraries are installed.  For shared
> libraries (lib*.so), the 32-bit version is installed in prefix/lib, while
> 64-bit version is installed in prefix/lib/sparcv9.
>
> For static libraries (lib*.a archives), it is the other way around.  The
> 64-bit version is installed in prefix/lib, while 32-bit version is
> installed in prefix/lib/sparcv7!?

How many libraries do you have in prefix/lib/sparcv7?  Which one(s)?

-- 
Eric Botcazou



Re: inconsistency in location of static and shared libraries on sparc64-sun-solaris*

2006-01-03 Thread Aleksandar Milivojevic

Quoting Eric Botcazou <[EMAIL PROTECTED]>:


I've noticed one inconsistency how libraries are installed.  For shared
libraries (lib*.so), the 32-bit version is installed in prefix/lib, while
64-bit version is installed in prefix/lib/sparcv9.

For static libraries (lib*.a archives), it is the other way around.  The
64-bit version is installed in prefix/lib, while 32-bit version is
installed in prefix/lib/sparcv7!?


How many libraries do you have in prefix/lib/sparcv7?  Which one(s)?


Only one so far, libiberty.a.  The lib/sparcv7/libiberty.a contains 32-bit
object files, while lib/libiberty.a contains 64-bit object files.

Actually, looking more closely, the libiberty.a is the only one installed that
way (from the gcc sources).  All others (for example libstdc++.a) seem to
follow standard convention (32 bit in lib, 64 bit in lib/sparcv9).  
Hmmm... bug

in gcc-4.0.2/libiberty/Makefile.in?



This message was sent using IMP, the Internet Messaging Program.





Re: Bootstrap failure on Linux/i686 in Ada

2006-01-03 Thread Jeffrey A Law
On Mon, 2006-01-02 at 19:31 +0100, Laurent GUERBY wrote:
> Hi Rainer, this is PR24994:
> 
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24994
> 
> And is under investigation:
> 
> http://gcc.gnu.org/ml/gcc-patches/2005-12/msg01756.html
Finally!

To stop the annoying VM randomization you need to turn on
the old style VM layout in the kernel.   Grrr.  I'm
making progress now, believe it or not, I'm actually focused
on a possible latent bug in the SRA code...

Jeff




Re: inconsistency in location of static and shared libraries on sparc64-sun-solaris*

2006-01-03 Thread Eric Botcazou
> Actually, looking more closely, the libiberty.a is the only one installed
> that way (from the gcc sources).  All others (for example libstdc++.a) seem
> to follow standard convention (32 bit in lib, 64 bit in lib/sparcv9).
> Hmmm... bug in gcc-4.0.2/libiberty/Makefile.in?

Bingo. :-)  http://gcc.gnu.org/PR16513

-- 
Eric Botcazou



Re: Bootstrap failure on Linux/i686 in Ada

2006-01-03 Thread Andrew Haley
Jeffrey A Law writes:
 > On Mon, 2006-01-02 at 19:31 +0100, Laurent GUERBY wrote:
 > > Hi Rainer, this is PR24994:
 > > 
 > > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24994
 > > 
 > > And is under investigation:
 > > 
 > > http://gcc.gnu.org/ml/gcc-patches/2005-12/msg01756.html
 > Finally!
 > 
 > To stop the annoying VM randomization you need to turn on
 > the old style VM layout in the kernel.   Grrr.  I'm
 > making progress now, believe it or not, I'm actually focused
 > on a possible latent bug in the SRA code...

Please, post instructions about how to turn on the old style VM layout
in the kernel.  Sooner or later, many of us on this list will need to
know...

Andrew.




Re: Bootstrap failure on Linux/i686 in Ada

2006-01-03 Thread Diego Novillo
On Tuesday 03 January 2006 14:47, Andrew Haley wrote:

> Please, post instructions about how to turn on the old style VM layout
> in the kernel.  Sooner or later, many of us on this list will need to
> know...
>
Adding this to /etc/sysctl.conf works for me:

# Do not randomize memory addresses
kernel.randomize_va_space = 0

After that, run 'sysctl -p' as root to update the kernel without rebooting.



Re: Bootstrap failure on Linux/i686 in Ada

2006-01-03 Thread Jeffrey A Law
On Tue, 2006-01-03 at 14:51 -0500, Diego Novillo wrote:
> On Tuesday 03 January 2006 14:47, Andrew Haley wrote:
> 
> > Please, post instructions about how to turn on the old style VM layout
> > in the kernel.  Sooner or later, many of us on this list will need to
> > know...
> >
> Adding this to /etc/sysctl.conf works for me:
> 
> # Do not randomize memory addresses
> kernel.randomize_va_space = 0
> 
> After that, run 'sysctl -p' as root to update the kernel without rebooting.
No, this is not sufficient. 

You also need to:

/sbin/sysctl -w vm.legacy_va_layout=1

Otherwise you still get randomizations.

Jeff




Re: Bootstrap failure on Linux/i686 in Ada

2006-01-03 Thread Diego Novillo
On Tuesday 03 January 2006 14:57, Jeffrey A Law wrote:

> No, this is not sufficient.
>
*shrug* that works for me without the legacy_va_layout setting.

$ sysctl vm.legacy_va_layout
vm.legacy_va_layout = 0

(On 2.6.14-1.1653_FC4smp)



Re: Bootstrap failure on Linux/i686 in Ada

2006-01-03 Thread Jeffrey A Law
On Tue, 2006-01-03 at 15:02 -0500, Diego Novillo wrote:
> On Tuesday 03 January 2006 14:57, Jeffrey A Law wrote:
> 
> > No, this is not sufficient.
> >
> *shrug* that works for me without the legacy_va_layout setting.
> 
> $ sysctl vm.legacy_va_layout
> vm.legacy_va_layout = 0
> 
> (On 2.6.14-1.1653_FC4smp)
That definitely wasn't sufficient for me -- on effectively virgin
FC4 and FC5T1 systems.

Jeff




Re: Xscale big endian tool-chain (how to build it?)

2006-01-03 Thread Kai Ruottu

Richard Earnshaw wrote:


Next, I suggest you add --with-cpu=xscale when configuring GCC.  You can
then drop the -mcpu=xscale when compiling (this should also give you
better libraries for your system).  However, beware that you libraries
will now only run on ARMv5 or later processors.
 

IMHO using the separate 'xscale-elf' target template in the 
'gcc/config.gcc', this defining its
own things, instead of the generic ARM files, could sound being the most 
clean solution :


 xscale-*-elf)
 tm_file="arm/xscale-elf.h dbxelf.h elfos.h arm/unknown-elf.h 
arm/elf.h arm/aout.h arm/arm.h"

 tmake_file=arm/t-xscale-elf
 out_file=arm/arm.c
 md_file=arm/arm.md
 extra_modes=arm/arm-modes.def
  use_fixproto=yes
 ;;

This was taken from gcc-3.4.5 sources but I would assume gcc-4.x keeping 
the separate 'xscale-*'
targets.  Anyway when the primary target is XScale, those 'xscale-*' 
target names should be the

first to try, not the 'arm-*'.





Re: Xscale big endian tool-chain (how to build it?)

2006-01-03 Thread Karel Gardas

On Tue, 3 Jan 2006, Richard Earnshaw wrote:


On Tue, 2006-01-03 at 17:15, Karel Gardas wrote:


I have tried this with binutils 2.16.1 and gcc 4.0.1, but w/o success. The
failure happen during compilation of gcc and it looks like:

/tmp/arm-elf-build/obj-gcc/gcc/xgcc -B/tmp/arm-elf-build/obj-gcc/gcc/
-nostdinc -B/tmp/arm-elf-build/obj-gcc/arm-elf/newlib/ -isystem
/tmp/arm-elf-build/obj-gcc/arm-elf/newlib/targ-include -isystem
/tmp/arm-elf-build/gcc-4.0.1/newlib/libc/include
-B/home/karel/usr/local/arm-elf1/arm-elf/bin/
-B/home/karel/usr/local/arm-elf1/arm-elf/lib/ -isystem
/home/karel/usr/local/arm-elf1/arm-elf/include -isystem
/home/karel/usr/local/arm-elf1/arm-elf/sys-include -O2  -DIN_GCC
-DCROSS_COMPILE   -W -Wall -Wwrite-strings -Wstrict-prototypes
-Wmissing-prototypes -Wold-style-definition  -isystem ./include
-Dinhibit_libc -fno-inline -g  -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED
-Dinhibit_libc -I. -I. -I../../gcc-4.0.1/gcc -I../../gcc-4.0.1/gcc/.
-I../../gcc-4.0.1/gcc/../include -I../../gcc-4.0.1/gcc/../libcpp/include
-mhard-float -DL_addsubdf3 -xassembler-with-cpp -c
../../gcc-4.0.1/gcc/config/arm/lib1funcs.asm -o libgcc/fpu/_addsubdf3.o
../../gcc-4.0.1/gcc/config/arm/ieee754-df.S: Assembler messages:
../../gcc-4.0.1/gcc/config/arm/ieee754-df.S:454: Error: selected processor does 
not support `mvfeqd f0,#0.0'
../../gcc-4.0.1/gcc/config/arm/ieee754-df.S:476: Error: selected processor does 
not support `mvfeqd f0,#0.0'
../../gcc-4.0.1/gcc/config/arm/ieee754-df.S:530: Error: selected processor does 
not support `ldfd f0,[sp],#8'
make[2]: *** [libgcc/fpu/_addsubdf3.o] Error 1
make[2]: Leaving directory `/tmp/arm-elf-build/obj-gcc/gcc'
make[1]: *** [stmp-multilib] Error 2
make[1]: Leaving directory `/tmp/arm-elf-build/obj-gcc/gcc'
make: *** [all-gcc] Error 2

First of all, I've thought this is because of my original binutils
binaries configured with out --with-cpu=xscale, but even if I add this
configure switch and rebuild them, the issue is still the same. Perhaps,
my bintutils config is still wrong? But I'm short of ideas what to do
now...

Thanks!
Karel
PS: in gcc/config/arm/t-arm-elf I only uncommented those options to get BE
build:

MULTILIB_OPTIONS += mlittle-endian/mbig-endian
MULTILIB_DIRNAMES+= le be
MULTILIB_MATCHES += mbig-endian=mbe mlittle-endian=mle

MULTILIB_OPTIONS+= mhard-float/msoft-float
MULTILIB_DIRNAMES   += fpu soft
MULTILIB_EXCEPTIONS += *mthumb/*mhard-float*

MULTILIB_OPTIONS+= mno-thumb-interwork/mthumb-interwork
MULTILIB_DIRNAMES   += normal interwork


You don't need the hard/soft float variants.  Just comment them out (the
middle group).


And this makes the job! Thank you very much for your help!

Karel
--
Karel Gardas  [EMAIL PROTECTED]
ObjectSecurity Ltd.   http://www.objectsecurity.com



Re: Bootstrap failure on Linux/i686 in Ada

2006-01-03 Thread Laurent GUERBY
On Tue, 2006-01-03 at 12:42 -0700, Jeffrey A Law wrote:
> On Mon, 2006-01-02 at 19:31 +0100, Laurent GUERBY wrote:
> > Hi Rainer, this is PR24994:
> > 
> > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24994
> > 
> > And is under investigation:
> > 
> > http://gcc.gnu.org/ml/gcc-patches/2005-12/msg01756.html
> Finally!
> 
> To stop the annoying VM randomization you need to turn on
> the old style VM layout in the kernel.   Grrr.  

I believe detailed instructions on the ways to disable VM randomization
in the GCC wiki would be a welcomed addition by many GCC hackers :).

Laurent




Re: Bootstrap failure on Linux/i686 in Ada

2006-01-03 Thread Jeffrey A Law
On Mon, 2006-01-02 at 19:31 +0100, Laurent GUERBY wrote:
> Hi Rainer, this is PR24994:
> 
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24994
> 
> And is under investigation:
> 
> http://gcc.gnu.org/ml/gcc-patches/2005-12/msg01756.html
> 
So, here's what appears to be happening.

  1. A statement is recorded into the EH throw
 statement hash table.

  2. SRA replaces the statement in the IL, but does
 not remove the statement from the EH throw
 statement table.  This is our bug.

  3. remove_cfg_annotations removes annotations from
 all the statements in the IL, but note that it
 does not walk the EH throw table (a reasonable thing
 since statements in the EH table ought to appear
 in the IL).

  4. Eventually the RTL optimizers run and remove the 
 block referenced by the bogus statement in the
 EH hash table.  

  5. Even later GC runs, walks the EH throw statement
 table, the bogus statement within the table, then
 the bogus statement's annotation, then the block
 in the annotation, which was expunged and unlinked
 leading to dereferencing a null pointer.

It'll take until tomorrow or so before I can get all the
bootstrapping and regression testing done, but I'm pretty
sure all we need to do is add 

remove_stmt_from_eh_region (orig_stmt);

into the appropriate location within bsi_replace.

jeff







Re: inconsistency in location of static and shared libraries on sparc64-sun-solaris*

2006-01-03 Thread Laurent GUERBY
On Tue, 2006-01-03 at 20:47 +0100, Eric Botcazou wrote:
> > Actually, looking more closely, the libiberty.a is the only one installed
> > that way (from the gcc sources).  All others (for example libstdc++.a) seem
> > to follow standard convention (32 bit in lib, 64 bit in lib/sparcv9).
> > Hmmm... bug in gcc-4.0.2/libiberty/Makefile.in?
> 
> Bingo. :-)  http://gcc.gnu.org/PR16513

I wonder how many more examples like that we need before we impose
testing after install and not in tree...

Only consequence for the few who configure with --prefix=/usr from their
tree will be to change to --prefix=/some/user/dir so install doesn't
break the system if the tested compiler is not up to the task.

Benefit will be that we can get rid of some Makefile and script code
and we'll at last test what we ship and not a random subset of it.

Quick poll: who does configure for some system dir when doing
development?

Laurent





Re: inconsistency in location of static and shared libraries on sparc64-sun-solaris*

2006-01-03 Thread Richard Kenner
 Quick poll: who does configure for some system dir when doing
 development?

I do.  Doesn't mean I have to keep doing it that way, of course, but that's
not what you asked.



Re: inconsistency in location of static and shared libraries on sparc64-sun-solaris*

2006-01-03 Thread Daniel Jacobowitz
On Tue, Jan 03, 2006 at 09:26:11PM +0100, Laurent GUERBY wrote:
> On Tue, 2006-01-03 at 20:47 +0100, Eric Botcazou wrote:
> > > Actually, looking more closely, the libiberty.a is the only one installed
> > > that way (from the gcc sources).  All others (for example libstdc++.a) 
> > > seem
> > > to follow standard convention (32 bit in lib, 64 bit in lib/sparcv9).
> > > Hmmm... bug in gcc-4.0.2/libiberty/Makefile.in?
> > 
> > Bingo. :-)  http://gcc.gnu.org/PR16513
> 
> I wonder how many more examples like that we need before we impose
> testing after install and not in tree...
> 
> Only consequence for the few who configure with --prefix=/usr from their
> tree will be to change to --prefix=/some/user/dir so install doesn't
> break the system if the tested compiler is not up to the task.

We can do this without touching --prefix, in fact, via DESTDIR and
relocatable installs.  It's just a bit disruptive to the workflow, so I
wanted to wait until toplevel bootstrap was settled first.

-- 
Daniel Jacobowitz
CodeSourcery



Re: inconsistency in location of static and shared libraries on sparc64-sun-solaris*

2006-01-03 Thread Laurent GUERBY
On Tue, 2006-01-03 at 15:54 -0500, Richard Kenner wrote:
>  Quick poll: who does configure for some system dir when doing
>  development?
> 
> I do.  Doesn't mean I have to keep doing it that way, of course, but that's
> not what you asked.

I assume linux (and GCC) distributors also do it at some point in their
chain (but already have a controlled environment to do so :), but I'm
curious to know how many GCC developpers prefer to use /usr for their
dev builds.

Laurent





Re: Installing GCC 4.1-20051223 on FreeBSD 6 failed

2006-01-03 Thread Gerald Pfeifer
On Fri, 30 Dec 2005, Jon Brisbin wrote:
> I'm trying to install the GCC 4.1 snapshot from Dec 23, 2005 on my 
> FreeBSD box. I'm trying to try out gcj. The installation fails, 
> complaining about not enough virtual memory. I just added another 2GB 
> swap file on this box. I now have 1GB of physical RAM and 4GBs of swap. 
> And that's not enough?!
> 
> What do I need to do to get gcj and libjava to install? Is this a 
> problem with GNU make or GCC?

As Joe Wilson indicated, this may be related to FreeBSD's malloc.

However, there is a general problem in GNU make (which uses too much
memory, H.J. Lu proposed a patch) and libgcj (the Makefile dependencies
suffer from combinatorial explosion).

Gerald



Testing GCC install (was: inconsistency in location of static and shared libraries on sparc64-sun-solaris*)

2006-01-03 Thread Laurent GUERBY
On Tue, 2006-01-03 at 16:01 -0500, Daniel Jacobowitz wrote:
> On Tue, Jan 03, 2006 at 09:26:11PM +0100, Laurent GUERBY wrote:
> > On Tue, 2006-01-03 at 20:47 +0100, Eric Botcazou wrote:
> > > > Actually, looking more closely, the libiberty.a is the only one 
> > > > installed
> > > > that way (from the gcc sources).  All others (for example libstdc++.a) 
> > > > seem
> > > > to follow standard convention (32 bit in lib, 64 bit in lib/sparcv9).
> > > > Hmmm... bug in gcc-4.0.2/libiberty/Makefile.in?
> > > 
> > > Bingo. :-)  http://gcc.gnu.org/PR16513
> > 
> > I wonder how many more examples like that we need before we impose
> > testing after install and not in tree...
> > 
> > Only consequence for the few who configure with --prefix=/usr from their
> > tree will be to change to --prefix=/some/user/dir so install doesn't
> > break the system if the tested compiler is not up to the task.
> 
> We can do this without touching --prefix, in fact, via DESTDIR and
> relocatable installs.  

I assume DESTDIR will suffer a lot of recurrent breakage if we still
test in tree when it goes in.

> It's just a bit disruptive to the workflow, so I
> wanted to wait until toplevel bootstrap was settled first.

Yes, another impact of testing after install is that
many small dev scripts will have to be changed to
make check after make install and not before.

Laurent




Re: Testing GCC install (was: inconsistency in location of static and shared libraries on sparc64-sun-solaris*)

2006-01-03 Thread Daniel Jacobowitz
On Tue, Jan 03, 2006 at 10:39:06PM +0100, Laurent GUERBY wrote:
> On Tue, 2006-01-03 at 16:01 -0500, Daniel Jacobowitz wrote:
> > On Tue, Jan 03, 2006 at 09:26:11PM +0100, Laurent GUERBY wrote:
> > > On Tue, 2006-01-03 at 20:47 +0100, Eric Botcazou wrote:
> > > > > Actually, looking more closely, the libiberty.a is the only one 
> > > > > installed
> > > > > that way (from the gcc sources).  All others (for example 
> > > > > libstdc++.a) seem
> > > > > to follow standard convention (32 bit in lib, 64 bit in lib/sparcv9).
> > > > > Hmmm... bug in gcc-4.0.2/libiberty/Makefile.in?
> > > > 
> > > > Bingo. :-)  http://gcc.gnu.org/PR16513
> > > 
> > > I wonder how many more examples like that we need before we impose
> > > testing after install and not in tree...
> > > 
> > > Only consequence for the few who configure with --prefix=/usr from their
> > > tree will be to change to --prefix=/some/user/dir so install doesn't
> > > break the system if the tested compiler is not up to the task.
> > 
> > We can do this without touching --prefix, in fact, via DESTDIR and
> > relocatable installs.  
> 
> I assume DESTDIR will suffer a lot of recurrent breakage if we still
> test in tree when it goes in.
> 
> > It's just a bit disruptive to the workflow, so I
> > wanted to wait until toplevel bootstrap was settled first.
> 
> Yes, another impact of testing after install is that
> many small dev scripts will have to be changed to
> make check after make install and not before.

No, you've missed my point.

DESTDIR support (which we already have, and people use constantly)
allows us to install a tree somewhere different than its configured
--prefix.  Relocatable toolchains (ditto) allow the toolchain to work
when run from an address different than the configured --prefix.

"make check", or even "make all", can finish with "make install
DESTDIR=$top_objdir/install".  That will generate an installed
toolchain which behaves just like the final installed toolchain.

-- 
Daniel Jacobowitz
CodeSourcery



Re: insv vs one-bit fields

2006-01-03 Thread DJ Delorie

Revisiting an old thread...

> On Fri, Sep 02, 2005 at 09:40:20PM -0400, DJ Delorie wrote:
> > So... why is it illegal to put a constant into a single bit field?
> 
> Probably because it was more efficient to use some other pattern
> for some other target.

That's a bad reason to put it in the MI code, since the target could
simply reject those requests itself.  Does anyone remember which
target needed this?  If not, can we remove that test?

> But there's absolutely zero chance you can reliably use a volatile
> bit field to emit a given insn sequence necessary for accessing a
> hardware register.

I don't need reliable, I'm working on optimal.  If/when the compiler
can detect that a single "bit insert" opcode can be used instead of a
read/change/write opcode sequence, it's a big win.  The fact that the
bitfield is volatile means that a lot of other optimizations get
bypassed, the only way to get it in there is to use insv.



Ben Elliston appointed libdecnumber maintainer

2006-01-03 Thread Mark Mitchell
Ben --

The GCC SC has appointed you as a maintainer of libdecnumber.

Please add yourself to MAINTAINERS.

Thanks,

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



gcc-3.4-20060103 is now available

2006-01-03 Thread gccadmin
Snapshot gcc-3.4-20060103 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/3.4-20060103/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 3.4 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/branches/gcc-3_4-branch 
revision 109291

You'll find:

gcc-3.4-20060103.tar.bz2  Complete GCC (includes all of below)

gcc-core-3.4-20060103.tar.bz2 C front end and core compiler

gcc-ada-3.4-20060103.tar.bz2  Ada front end and runtime

gcc-g++-3.4-20060103.tar.bz2  C++ front end and runtime

gcc-g77-3.4-20060103.tar.bz2  Fortran 77 front end and runtime

gcc-java-3.4-20060103.tar.bz2 Java front end and runtime

gcc-objc-3.4-20060103.tar.bz2 Objective-C front end and runtime

gcc-testsuite-3.4-20060103.tar.bz2The GCC testsuite

Diffs from 3.4-20051227 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-3.4
link is updated and a message is sent to the gcc list.  Please do not use
a snapshot before it has been announced that way.



Re: Testing GCC install (was: inconsistency in location of static and shared libraries on sparc64-sun-solaris*)

2006-01-03 Thread Laurent GUERBY
On Tue, 2006-01-03 at 16:41 -0500, Daniel Jacobowitz wrote:
> DESTDIR support (which we already have, and people use constantly)
> allows us to install a tree somewhere different than its configured
> --prefix.  Relocatable toolchains (ditto) allow the toolchain to work
> when run from an address different than the configured --prefix.

A precision from Daniel: <> (that was the source of my misunderstanding) so the change
will indeed imply testing make install during regular make bootstrap or
make; make -k check.

cross with already filled prefix should work too.

Looks great!

Laurent




Re: Bootstrap failure on Linux/i686 in Ada

2006-01-03 Thread Mike Stump

On Jan 3, 2006, at 11:54 AM, Laurent GUERBY wrote:

To stop the annoying VM randomization you need to turn on
the old style VM layout in the kernel.   Grrr.


I believe detailed instructions on the ways to disable VM  
randomization

in the GCC wiki would be a welcomed addition by many GCC hackers :).


Done.

http://gcc.gnu.org/wiki/DebuggingGCC

seemed like the best place to put it, the node is:

http://gcc.gnu.org/wiki/Randomization

if you want to jump directly there.



Re: RTL alias analysis

2006-01-03 Thread Steven Bosscher
On Tuesday 03 January 2006 17:27, Richard Henderson wrote:
> I'll have to give this some thought.

Heh, like many before you...  Hope you can come up with an answer.

This is now bug 25654 in Bugzilla.

Gr.
Steven



Re: insv vs one-bit field

2006-01-03 Thread Paul Schlie
> DJ Delorie wrote
> Revisiting an old thread...
>> > On Fri, Sep 02, 2005 at 09:40:20PM -0400, DJ Delorie wrote:
>> > So... why is it illegal to put a constant into a single bit field?
>> 
>> Probably because it was more efficient to use some other pattern
>> for some other target.
>
> That's a bad reason to put it in the MI code, since the target could
> simply reject those requests itself.  Does anyone remember which
> target needed this?  If not, can we remove that test?
>
>> But there's absolutely zero chance you can reliably use a volatile
>> bit field to emit a given insn sequence necessary for accessing a
>> hardware register.
>
> I don't need reliable, I'm working on optimal.  If/when the compiler
> can detect that a single "bit insert" opcode can be used instead of a
> read/change/write opcode sequence, it's a big win.  The fact that the
> bitfield is volatile means that a lot of other optimizations get
> bypassed, the only way to get it in there is to use insv.

If of any significance, as the AVR aliases GPR's and I/O registers
into low order memory addresses, and supports limited bit operations
on a subset of those registers; it's therefore possible to consider
the AVR as being capable of correspondingly directly manipulating
bits mapped into a limited subset of low-order memory addresses;
although truly representing I/O ports, not generalized memory per-se.





Accessing the file scope C++ data structs in GIMPLE

2006-01-03 Thread Prateek Saxena
Hello,

I want to dump out all the c++ classes/structs and global data
structures defined in a given file scope or transaltion unit, as  part
of the debug dumps in C-like syntax, from GIMPLE data structs. Is
there a TREE_VEC or BIND_EXPR_VARS that I can traverse through and get
all these ?

Thanks a lot for the help provided in the past as well.

Thanks,
Prateek.



about REG_DEP_OUTPUT dependence

2006-01-03 Thread Liu Haibin
Hi,

Can someone help me explain that why there's an REG_DEP_OUTPUT (write
after write dependence) between jump_insn 547 and insn 82?

(insn 82 543 478 3 (set (mem/s:SI (reg/f:SI 6 r6 [224]) [4 W S4 A32])
(reg:SI 2 r2 [95])) 8 {movsi_internal} (insn_list 81 (nil))
(expr_list:REG_DEAD (reg:SI 2 r2 [95])
(nil)))
(insn 478 82 547 3 (set (reg/f:SI 6 r6 [224])
(plus:SI (reg/f:SI 6 r6 [224])
(const_int 4 [0x4]))) 20 {addsi3} (insn_list:REG_DEP_ANTI
65 (insn_list:REG_DEP_ANTI 66 (insn_list:REG_DEP_ANTI 73
(insn_list:REG_DEP_ANTI 80 (insn_list:REG_DEP_ANTI 82 (nil))
(nil))
(jump_insn 547 478 93 3 (set (pc)
(if_then_else (ne:SI (reg/v:SI 7 r7 [orig:270 i ] [270])
(const_int 0 [0x0]))
(label_ref 88)
(pc))) 61 {*cbranch} (insn_list 543
(insn_list:REG_DEP_OUTPUT 82 (nil)))
(expr_list:REG_BR_PROB (const_int 9844 [0x2674])
(nil)))


Regards,
Haibin



Re: Patches for RDOS (version 4.1 of GCC)

2006-01-03 Thread Ben Elliston
>2005-12-28  Leif Ekblad  [EMAIL PROTECTED]
> 
> * gcc/config.gcc: Added support for target RDOS
> * gcc/config/i386/rdos.h: Added rdos.h file for RDOS definitions

Patches should be sent to gcc-patches. Thanks.

Ben



Re: test for excess errors

2006-01-03 Thread Ben Elliston
> Could you tell me what it means for 'test for excess errors'?  I run
> make check-gcc RUNTESTFLAGS='dg.exp' on my machine, and got many
> failed tests for these errors on my porting gcc.

The dg.exp tests can instruct DejaGnu to look for specific
warnings/errors in diagnostics.  The final test is called "test for
excess errors", which decides if any additional errors were produced
(ie. excess ones).

> Do I need to setup something in order to run these testsuites for my
> port?  Besides DejaGnu and Tcl.

No, that's all.

Ben



Re: about REG_DEP_OUTPUT dependence

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

> Can someone help me explain that why there's an REG_DEP_OUTPUT (write
> after write dependence) between jump_insn 547 and insn 82?
> 
> (insn 82 543 478 3 (set (mem/s:SI (reg/f:SI 6 r6 [224]) [4 W S4 A32])
> (reg:SI 2 r2 [95])) 8 {movsi_internal} (insn_list 81 (nil))
> (expr_list:REG_DEAD (reg:SI 2 r2 [95])
> (nil)))
> (insn 478 82 547 3 (set (reg/f:SI 6 r6 [224])
> (plus:SI (reg/f:SI 6 r6 [224])
> (const_int 4 [0x4]))) 20 {addsi3} (insn_list:REG_DEP_ANTI
> 65 (insn_list:REG_DEP_ANTI 66 (insn_list:REG_DEP_ANTI 73
> (insn_list:REG_DEP_ANTI 80 (insn_list:REG_DEP_ANTI 82 (nil))
> (nil))
> (jump_insn 547 478 93 3 (set (pc)
> (if_then_else (ne:SI (reg/v:SI 7 r7 [orig:270 i ] [270])
> (const_int 0 [0x0]))
> (label_ref 88)
> (pc))) 61 {*cbranch} (insn_list 543
> (insn_list:REG_DEP_OUTPUT 82 (nil)))
> (expr_list:REG_BR_PROB (const_int 9844 [0x2674])
> (nil)))

The scheduler must not move the memory write after the conditional
jump.  The dependency code models this by adding a REG_DEP_OUTPUT
dependency from any conditional jump to any memory write for which
there is no other dependency.  See the JUMP_P code in
sched_analyze_insn.

Ian