4.3 build failure in driver-i386.c

2008-02-17 Thread Greg Schafer
Hi,

driver-i386.s: Assembler messages:
driver-i386.s:2454: Error: invalid character '{' in mnemonic
driver-i386.s:2455: Error: invalid character '{' in mnemonic
driver-i386.s:2456: Error: invalid character '{' in mnemonic
driver-i386.s:2457: Error: invalid character '{' in mnemonic
driver-i386.s:2458: Error: invalid character '{' in mnemonic
driver-i386.s:2459: Error: invalid character '{' in mnemonic
driver-i386.s:2460: Error: invalid character '{' in mnemonic
driver-i386.s:2461: Error: invalid character '{' in mnemonic
driver-i386.s:2462: Error: invalid character '{' in mnemonic
driver-i386.s:2463: Error: invalid character '{' in mnemonic

This is on an ancient distro (don't ask..) i.e. RedHat 6.2. (4.2.3 builds
fine so this is somewhat of a regression...)

Looking at the -save-temps output, it seems the old assembler is choking
on this syntax from __get_cpuid_max() in cpuid.h:

.stabn 68,0,91,.LM210-__get_cpuid_max
.LM210:
#APP
pushf{l|d}
pushf{l|d}
pop{l}  %eax
mov{l}  {%eax, %edx|%edx, %eax}
xor{l}  {$2097152, %eax|%eax, $2097152}
push{l} %eax
popf{l|d}
pushf{l|d}
pop{l}  %eax
popf{l|d}

#NO_APP


It's kind of unfortunate for the build to break in this way. Is there any
hope for some kind of fix or workaround? I realize ancient distros are not
a priority, but still

Thanks
Greg




Re: 4.3 build failure in driver-i386.c

2008-02-17 Thread Richard Guenther
On Feb 17, 2008 10:40 AM, Richard Guenther <[EMAIL PROTECTED]> wrote:
>
> On Feb 17, 2008 9:38 AM, Greg Schafer <[EMAIL PROTECTED]> wrote:
> > Hi,
> >
> > driver-i386.s: Assembler messages:
> > driver-i386.s:2454: Error: invalid character '{' in mnemonic
> > driver-i386.s:2455: Error: invalid character '{' in mnemonic
> > driver-i386.s:2456: Error: invalid character '{' in mnemonic
> > driver-i386.s:2457: Error: invalid character '{' in mnemonic
> > driver-i386.s:2458: Error: invalid character '{' in mnemonic
> > driver-i386.s:2459: Error: invalid character '{' in mnemonic
> > driver-i386.s:2460: Error: invalid character '{' in mnemonic
> > driver-i386.s:2461: Error: invalid character '{' in mnemonic
> > driver-i386.s:2462: Error: invalid character '{' in mnemonic
> > driver-i386.s:2463: Error: invalid character '{' in mnemonic
> >
> > This is on an ancient distro (don't ask..) i.e. RedHat 6.2. (4.2.3 builds
> > fine so this is somewhat of a regression...)
> >
> > Looking at the -save-temps output, it seems the old assembler is choking
> > on this syntax from __get_cpuid_max() in cpuid.h:
> >
> > .stabn 68,0,91,.LM210-__get_cpuid_max
> > .LM210:
> > #APP
> > pushf{l|d}
> > pushf{l|d}
> > pop{l}  %eax
> > mov{l}  {%eax, %edx|%edx, %eax}
> > xor{l}  {$2097152, %eax|%eax, $2097152}
> > push{l} %eax
> > popf{l|d}
> > pushf{l|d}
> > pop{l}  %eax
> > popf{l|d}
> >
> > #NO_APP
> >
> >
> > It's kind of unfortunate for the build to break in this way. Is there any
> > hope for some kind of fix or workaround? I realize ancient distros are not
> > a priority, but still
>
> The problem is that your host GCC doesn't recognize the inline asm correctly
> (the above should not reach the assembler), GCC 3.3.x handles the above fine.
> This probably also breaks build with non-GCC host compilers.
>
> Rask, you introduced this change - any idea on how to fix this?  Can we please
> revert the cpuid.h change for 4.3.0 if this is too hard to fix in a short 
> time?

I see the use of cpuid.h is wrapped inside #ifdef __GNUC__, so the issue is only
using old GCC as the host compiler (I checked 2.95 which chokes on the asm).
Can we change this guard to only allow GCC >= 3.3 which would also fix this?

Thanks,
Richard.


Re: Optimizations documentation

2008-02-17 Thread Ira Rosen
Hi,

Dorit Nuzman/Haifa/IBM wrote on 14/02/2008 17:02:45:

> This is an old debt: A while back Tim had sent me a detailed report
> off line showing which C++ tests (originally from the Dongara loops
> suite) were vectorized by current g++ or icpc, or both, as well as
> when the vectorization by icpc required a pragma, or was partial. I
> went over the loops that were reported to be vectorized by icc but
> not by gcc, to see which features we are missing. There are 23 such
> loops (out of a total of 77). They fall into the following 7 categories:
>
> (1) scalar evolution analysis fails with "evolution of base is not
affine".
> This happens in the 3 loops in lines 4267, 4204 and 511.
> Here an example:
>  for (i__ = 1; i__ <= i__2; ++i__)
> {
>   a[i__] = (b[i__] + b[im1] + b[im2]) * .333f;
>   im2 = im1;
>   im1 = i__;
> }
> Missed optimization PR to be opened.

I opened PR35224.

>
> (2) Function calls inside a loop. These are calls to the math
> functions sin/cos, which I expect would be vectorized if the proper
> simd math lib was available.
> This happens in the loop in line 6932.
> I think there's an open PR for this one (at least for
> powerpc/Altivec?) - need to look/open.

There is PR6.

>
> (3) This one is the most dominant missed optimization: if-conversion
> is failing to if-convert, most likely due to the very limited
> handling of loads/stores (i.e. load/store hoisting/sinking is required).
> This happens in the 13 loops in lines 4085, 4025, 3883, 3818, 3631,
> 355, 3503, 2942, 877, 6740, 6873, 5191, 7943.
> There is on going work towards addressing this issue - see http:
> //gcc.gnu.org/ml/gcc/2007-07/msg00942.html, http://gcc.gnu.
> org/ml/gcc/2007-09/msg00308.html. (I think Victor Kaplansky is
> currently working on this).
>
> (4) A scalar variable, whose address is taken outside the loop (in
> an enclosing outer-loop) is analyzed by the data-references
> analysis, which fails because it is invariant.
> Here's an example:
>   for (nl = 1; nl <= i__1; ++nl)
> {
>   sum = 0.f;
>   for (i__ = 1; i__ <= i__2; ++i__)
> {
>   a[i__] = c__[i__] + d__[i__];
>   b[i__] = c__[i__] + e[i__];];
> sum += a[i__] + b[i__];];];
> }
>   dummy_ (ld, n, &a[1], &b[1], &c__[1], &d__[1], &e[1], &aa
[aa_offset],
>   &bb[bb_offset], &cc[cc_offset], &sum);
> }
> (Analysis of 'sum' fails with "FAILED as dr address is invariant".
> This happens in the 2 loops in lines 5053 and 332.
> I think there is a missed optimization PR for this one already. need
> to look/open.
>

The related PRs are PR33245 and PR33244. Also there is a FIXME comment in
tree-data-ref.c before the failure with "FAILED as dr address is invariant"
error:

  /* FIXME -- data dependence analysis does not work correctly for
objects with
 invariant addresses.  Let us fail here until the problem is fixed.
*/


> (5) Reduction and induction that involve multiplication (i.e. 'prod
> *= CST' or 'prod *= a[i]') are currently not supported by the
> vectorizer. It should be trivial to add support for this feature
> (for reduction, it shouldn't be much more than adding a case for
> MULT_EXPR in tree-vectorizer.c:reduction_code_for_scalar_code, I think).
> This happens in the 2 loops in lines 4921 and 4632.
> A missed-optimization PR to be opened.

Opened PR35226.

>
> (6) loop distribution is required to break a dependence. This may
> already be handled by Sebastian's loop-distribution pass that will
> be incorporated in 4.4.
> Here is an example:
>  for (i__ = 2; i__ <= i__2; ++i__)
> {
>   a[i__] += c__[i__] * d__[i__];
>   b[i__] = a[i__] + d__[i__] + b[i__ - 1];
> }
> This happens in the loop in line 2136.
> Need to check if we need to open a missed optimization PR for this.

I don't think that this is a loop distribution issue. The dependence
between the store to a[i] and the load from a[i] doesn't prevent
vectorization. The problematic one is between the store to b[i] and the
load from b[i-1] in the second statement.

>
> (7) A dependence, similar to such that would be created by
> predictive commoning (or even PRE), is present in the loop:
>  for (i__ = 1; i__ <= i__2; ++i__)
> {
>   a[i__] = (b[i__] + x) * .5f;
>   x = b[i__];
> }
> This happens in the loop in line 3003.
> The vectorizer needs to be extended to handle such cases.
> A missed optimization PR to be opened (if doesn't exist already).

I opened a new PR - 35229. (PR33244 is somewhat related).

Ira



Re: 4.3 build failure in driver-i386.c

2008-02-17 Thread Richard Guenther
On Feb 17, 2008 9:38 AM, Greg Schafer <[EMAIL PROTECTED]> wrote:
> Hi,
>
> driver-i386.s: Assembler messages:
> driver-i386.s:2454: Error: invalid character '{' in mnemonic
> driver-i386.s:2455: Error: invalid character '{' in mnemonic
> driver-i386.s:2456: Error: invalid character '{' in mnemonic
> driver-i386.s:2457: Error: invalid character '{' in mnemonic
> driver-i386.s:2458: Error: invalid character '{' in mnemonic
> driver-i386.s:2459: Error: invalid character '{' in mnemonic
> driver-i386.s:2460: Error: invalid character '{' in mnemonic
> driver-i386.s:2461: Error: invalid character '{' in mnemonic
> driver-i386.s:2462: Error: invalid character '{' in mnemonic
> driver-i386.s:2463: Error: invalid character '{' in mnemonic
>
> This is on an ancient distro (don't ask..) i.e. RedHat 6.2. (4.2.3 builds
> fine so this is somewhat of a regression...)
>
> Looking at the -save-temps output, it seems the old assembler is choking
> on this syntax from __get_cpuid_max() in cpuid.h:
>
> .stabn 68,0,91,.LM210-__get_cpuid_max
> .LM210:
> #APP
> pushf{l|d}
> pushf{l|d}
> pop{l}  %eax
> mov{l}  {%eax, %edx|%edx, %eax}
> xor{l}  {$2097152, %eax|%eax, $2097152}
> push{l} %eax
> popf{l|d}
> pushf{l|d}
> pop{l}  %eax
> popf{l|d}
>
> #NO_APP
>
>
> It's kind of unfortunate for the build to break in this way. Is there any
> hope for some kind of fix or workaround? I realize ancient distros are not
> a priority, but still

The problem is that your host GCC doesn't recognize the inline asm correctly
(the above should not reach the assembler), GCC 3.3.x handles the above fine.
This probably also breaks build with non-GCC host compilers.

Rask, you introduced this change - any idea on how to fix this?  Can we please
revert the cpuid.h change for 4.3.0 if this is too hard to fix in a short time?

Thanks,
Richard.


Re: Ada: building 4.3 cross-gnattools with gcc-4.2.1

2008-02-17 Thread Arnaud Charlet
> 1) Is it supposed to work? (i.e. building an Ada cross compiler 4.3 by a 
> 4.2 compiler)

No, as documented, you need a matching native compiler to build a cross Ada
compiler (e.g. build from the same 4.3 sources a native compiler first, and
then use it to build the cross compiler).

> 2) does it work to build 4.3 cross-gnattools with the current 4.3 Ada 
> compiler?

It does in general. I do not know for avr in particular.

> 3) Would a patch be accepted that makes the 4.3 gnattols be compilable 
> by 4.2 compiler?

In general, no. On a case by case basis, assuming the patch is simple and
does not make the code worse in terms of maintenance, then it can be OK.

Arno


Re: 4.3 build failure in driver-i386.c

2008-02-17 Thread Andreas Schwab
"Richard Guenther" <[EMAIL PROTECTED]> writes:

> I see the use of cpuid.h is wrapped inside #ifdef __GNUC__, so the issue is 
> only
> using old GCC as the host compiler (I checked 2.95 which chokes on the asm).
> Can we change this guard to only allow GCC >= 3.3 which would also fix this?

Won't those host dependent parameters cause bootstrap comparison
failures?  If the stage1 compiler doesn't use the same detection
routines as the stage2 compiler then the stage2 compiler is compiled
with different options than the stage3 compiler.

Andreas.

-- 
Andreas Schwab, SuSE Labs, [EMAIL PROTECTED]
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."


gcc hangs ! (version 4.1.2, Ubuntu 4.1.2-0ubuntu4)

2008-02-17 Thread Sunzir Deepur
hello,

I encounter a strange gcc behavior - it hangs ! this is not happening always.
It can hang sometimes, and sometimes not, with the exact same source
file and gcc command line.
My command is simple, i use several -I parameters (include folders),
-c and -o.. that's it..
gcc -I  -I  -I  -I  -I 
-c -o folder6/output.o folder6/source.c

Attached is the end of the strace output, the last line just hangs.. (waitpid).

my gcc version:
$ gcc -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v
--enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr
--enable-shared --with-system-zlib --libexecdir=/usr/lib
--without-included-gettext --enable-threads=posix --enable-nls
--program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu
--enable-libstdcxx-debug --enable-mpfr --enable-checking=release
i486-linux-gnu
Thread model: posix
gcc version 4.1.2 (Ubuntu 4.1.2-0ubuntu4)


any ideas ?

thank you
sunzir


...

close(3)= 0
munmap(0xb7eed000, 4096)= 0
open("/usr/lib/locale/en_US.UTF-8/LC_CTYPE", O_RDONLY) = -1 ENOENT (No
such file or directory)
open("/usr/lib/locale/en_US.utf8/LC_CTYPE", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=238336, ...}) = 0
mmap2(NULL, 238336, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7d61000
close(3)= 0
open("/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=25460, ...}) = 0
mmap2(NULL, 25460, PROT_READ, MAP_SHARED, 3, 0) = 0xb7ee7000
close(3)= 0
open("/usr/lib/locale/en_US.UTF-8/LC_MESSAGES", O_RDONLY) = -1 ENOENT
(No such file or directory)
open("/usr/lib/locale/en_US.utf8/LC_MESSAGES", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
close(3)= 0
open("/usr/lib/locale/en_US.utf8/LC_MESSAGES/SYS_LC_MESSAGES", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=52, ...}) = 0
mmap2(NULL, 52, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7ee6000
close(3)= 0
open("/usr/share/locale/en_US/LC_MESSAGES/gcc-4.1.mo", O_RDONLY) = -1
ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/gcc-4.1.mo", O_RDONLY) = -1
ENOENT (No such file or directory)
open("/usr/share/locale-langpack/en_US/LC_MESSAGES/gcc-4.1.mo",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/en/LC_MESSAGES/gcc-4.1.mo", O_RDONLY)
= -1 ENOENT (No such file or directory)
rt_sigaction(SIGINT, {SIG_IGN}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGINT, {0x804f8d0, [INT], SA_RESTART}, {SIG_IGN}, 8) = 0
rt_sigaction(SIGHUP, {SIG_IGN}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGHUP, {0x804f8d0, [HUP], SA_RESTART}, {SIG_IGN}, 8) = 0
rt_sigaction(SIGTERM, {SIG_IGN}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGTERM, {0x804f8d0, [TERM], SA_RESTART}, {SIG_IGN}, 8) = 0
rt_sigaction(SIGPIPE, {SIG_IGN}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGPIPE, {0x804f8d0, [PIPE], SA_RESTART}, {SIG_IGN}, 8) = 0
rt_sigaction(SIGCHLD, {SIG_DFL}, {SIG_DFL}, 8) = 0
access("/usr/local/sbin/gcc", X_OK) = -1 ENOENT (No such file or directory)
access("/usr/local/bin/gcc", X_OK)  = -1 ENOENT (No such file or directory)
access("/usr/sbin/gcc", X_OK)   = -1 ENOENT (No such file or directory)
access("/usr/bin/gcc", X_OK)= 0
lstat64("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/usr/bin", {st_mode=S_IFDIR|0755, st_size=65536, ...}) = 0
lstat64("/usr/bin/gcc", {st_mode=S_IFLNK|0777, st_size=16, ...}) = 0
readlink("/usr/bin/gcc", "/usr/bin/gcc-4.1", 4096) = 16
lstat64("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/usr/bin", {st_mode=S_IFDIR|0755, st_size=65536, ...}) = 0
lstat64("/usr/bin/gcc-4.1", {st_mode=S_IFREG|0755, st_size=183904, ...}) = 0
access("/usr/local/sbin/gcc", X_OK) = -1 ENOENT (No such file or directory)
access("/usr/local/bin/gcc", X_OK)  = -1 ENOENT (No such file or directory)
access("/usr/sbin/gcc", X_OK)   = -1 ENOENT (No such file or directory)
access("/usr/bin/gcc", X_OK)= 0
lstat64("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/usr/bin", {st_mode=S_IFDIR|0755, st_size=65536, ...}) = 0
lstat64("/usr/bin/gcc", {st_mode=S_IFLNK|0777, st_size=16, ...}) = 0
readlink("/usr/bin/gcc", "/usr/bin/gcc-4.1", 4096) = 16
lstat64("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/usr/bin", {st_mode=S_IFDIR|0755, st_size=65536, ...}) = 0
lstat64("/usr/bin/gcc-4.1", {st_mode=S_IFREG|0755, st_size=183904, ...}) = 0
access("/usr/lib/gcc/i486-linux-gnu/4.1.2/", X_OK) = 0
access("/usr/lib/gcc/i486-linux-gnu/4.1.2/", X_OK) = 0
access("uart/bthal_uart.c", F_OK)   = 0
access("/usr/lib/gcc/i486-linux-gnu/4.1.2/specs", R_OK) = -1 ENOENT
(No such file or directory)
access("/usr/lib/gcc/i486-linux-gnu/4.1.2/specs", R_OK) = -1 ENOENT
(No such file or directory)
access("/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../i486-linux-gnu/lib/i486-linux-gnu/4.1.2/s

Re: 4.3 build failure in driver-i386.c

2008-02-17 Thread Richard Guenther
On Feb 17, 2008 10:54 AM, Andreas Schwab <[EMAIL PROTECTED]> wrote:
> "Richard Guenther" <[EMAIL PROTECTED]> writes:
>
> > I see the use of cpuid.h is wrapped inside #ifdef __GNUC__, so the issue is 
> > only
> > using old GCC as the host compiler (I checked 2.95 which chokes on the asm).
> > Can we change this guard to only allow GCC >= 3.3 which would also fix this?
>
> Won't those host dependent parameters cause bootstrap comparison
> failures?  If the stage1 compiler doesn't use the same detection
> routines as the stage2 compiler then the stage2 compiler is compiled
> with different options than the stage3 compiler.

If you bootstrap with BOOT_CFLAGS="-march=native" yes, otherwise no.
Maybe we should build
i386-driver.c with the stage1 compiler and not the host compiler,
which of course
causes a chicken and egg problem...

Richard.


Re: 4.3 build failure in driver-i386.c

2008-02-17 Thread Andreas Schwab
"Richard Guenther" <[EMAIL PROTECTED]> writes:

> On Feb 17, 2008 10:54 AM, Andreas Schwab <[EMAIL PROTECTED]> wrote:
>> "Richard Guenther" <[EMAIL PROTECTED]> writes:
>>
>> > I see the use of cpuid.h is wrapped inside #ifdef __GNUC__, so the issue 
>> > is only
>> > using old GCC as the host compiler (I checked 2.95 which chokes on the 
>> > asm).
>> > Can we change this guard to only allow GCC >= 3.3 which would also fix 
>> > this?
>>
>> Won't those host dependent parameters cause bootstrap comparison
>> failures?  If the stage1 compiler doesn't use the same detection
>> routines as the stage2 compiler then the stage2 compiler is compiled
>> with different options than the stage3 compiler.
>
> If you bootstrap with BOOT_CFLAGS="-march=native" yes, otherwise no.

Ok, I knew I was missing something. :-)

Andreas.

-- 
Andreas Schwab, SuSE Labs, [EMAIL PROTECTED]
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."


bootstrap broken on mingw (was: Re: AVR port broken on 4.3 20080215 snapshot)

2008-02-17 Thread FX Coudert

Hi all,

I also see this failure on a native build for i386-pc-mingw32, so  
this is probably a mingw issue. Since i686-pc-mingw32 is a seconday  
platform, this makes it a release blocker (I've marked it as such in  
bugzilla, and gave it P1 status; I hope that was the right thing to do).


The error here is the same:

../../trunk/gcc/doc//invoke.texi:1243: @include `/home/FX/ibin/ 
gcc/../../trunk/gcc/../libiberty/at-file.texi': No such file or  
sdirectory.


What's interesting is that the file actually exists:


$ wc -l /home/FX/ibin/gcc/../../trunk/gcc/../libiberty/at-file.texi
 15 /home/FX/ibin/gcc/../../trunk/gcc/../libiberty/at-file.texi


Thus, I suspect some sort of absolute vs. relative path issue, to  
which mingw (and especially the MSYS environment) is often very  
sensitive. For example, bootstrap only work if you use a relative  
path to configure.


FX

--
François-Xavier Coudert
http://www.homepages.ucl.ac.uk/~uccafco/



Re: bootstrap broken on mingw (was: Re: AVR port broken on 4.3 20080215 snapshot)

2008-02-17 Thread Richard Guenther
On Feb 17, 2008 12:41 PM, FX Coudert <[EMAIL PROTECTED]> wrote:
> Hi all,
>
> I also see this failure on a native build for i386-pc-mingw32, so
> this is probably a mingw issue. Since i686-pc-mingw32 is a seconday
> platform, this makes it a release blocker (I've marked it as such in
> bugzilla, and gave it P1 status; I hope that was the right thing to do).
>
> The error here is the same:
>
> > ../../trunk/gcc/doc//invoke.texi:1243: @include `/home/FX/ibin/
> > gcc/../../trunk/gcc/../libiberty/at-file.texi': No such file or
> > sdirectory.
>
> What's interesting is that the file actually exists:
>
> > $ wc -l /home/FX/ibin/gcc/../../trunk/gcc/../libiberty/at-file.texi
> >  15 /home/FX/ibin/gcc/../../trunk/gcc/../libiberty/at-file.texi
>
> Thus, I suspect some sort of absolute vs. relative path issue, to
> which mingw (and especially the MSYS environment) is often very
> sensitive. For example, bootstrap only work if you use a relative
> path to configure.

Actually there seems to be a recent change "backward" to that logic:

2008-02-13  Ralf Wildenhues  <[EMAIL PROTECTED]>

PR other/35148
* Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
srcdir.

and we have PR35218 which seems to be the same issue?

Richard.


Re: bootstrap broken on mingw (was: Re: AVR port broken on 4.3 20080215 snapshot)

2008-02-17 Thread FX Coudert

Actually there seems to be a recent change "backward" to that logic:

2008-02-13  Ralf Wildenhues  <[EMAIL PROTECTED]>

PR other/35148
* Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
srcdir.


Doesn't look too good for mingw.


and we have PR35218 which seems to be the same issue?



Yes, it is exactly, it was open by Eric and I added my information. I  
should have given the PR number in my mail.


FX

--
François-Xavier Coudert
http://www.homepages.ucl.ac.uk/~uccafco/



Re: gcc hangs ! (version 4.1.2, Ubuntu 4.1.2-0ubuntu4)

2008-02-17 Thread Sunzir Deepur
followup:

After a considerabale amount of time (e.g. 15 seconds), something is suddenly
freed, and the compilation completes successfully. afterwards trying
to recompile
the file completes immediately (it is not a big file, so it takes
fraction of a second).
I don't know what is the cause of the hang.. I can tell that while it is hung,
the cpu is not working (gcc doesn't even show in top..).

On Feb 17, 2008 12:03 PM, Sunzir Deepur <[EMAIL PROTECTED]> wrote:
> hello,
>
> I encounter a strange gcc behavior - it hangs ! this is not happening always.
> It can hang sometimes, and sometimes not, with the exact same source
> file and gcc command line.
> My command is simple, i use several -I parameters (include folders),
> -c and -o.. that's it..
> gcc -I  -I  -I  -I  -I 
> -c -o folder6/output.o folder6/source.c
>
> Attached is the end of the strace output, the last line just hangs.. 
> (waitpid).
>
> my gcc version:
> $ gcc -v
> Using built-in specs.
> Target: i486-linux-gnu
> Configured with: ../src/configure -v
> --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr
> --enable-shared --with-system-zlib --libexecdir=/usr/lib
> --without-included-gettext --enable-threads=posix --enable-nls
> --program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu
> --enable-libstdcxx-debug --enable-mpfr --enable-checking=release
> i486-linux-gnu
> Thread model: posix
> gcc version 4.1.2 (Ubuntu 4.1.2-0ubuntu4)
>
>
> any ideas ?
>
> thank you
> sunzir
>
> 
> ...
>
> close(3)= 0
> munmap(0xb7eed000, 4096)= 0
> open("/usr/lib/locale/en_US.UTF-8/LC_CTYPE", O_RDONLY) = -1 ENOENT (No
> such file or directory)
> open("/usr/lib/locale/en_US.utf8/LC_CTYPE", O_RDONLY) = 3
> fstat64(3, {st_mode=S_IFREG|0644, st_size=238336, ...}) = 0
> mmap2(NULL, 238336, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7d61000
> close(3)= 0
> open("/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = 3
> fstat64(3, {st_mode=S_IFREG|0644, st_size=25460, ...}) = 0
> mmap2(NULL, 25460, PROT_READ, MAP_SHARED, 3, 0) = 0xb7ee7000
> close(3)= 0
> open("/usr/lib/locale/en_US.UTF-8/LC_MESSAGES", O_RDONLY) = -1 ENOENT
> (No such file or directory)
> open("/usr/lib/locale/en_US.utf8/LC_MESSAGES", O_RDONLY) = 3
> fstat64(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
> close(3)= 0
> open("/usr/lib/locale/en_US.utf8/LC_MESSAGES/SYS_LC_MESSAGES", O_RDONLY) = 3
> fstat64(3, {st_mode=S_IFREG|0644, st_size=52, ...}) = 0
> mmap2(NULL, 52, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7ee6000
> close(3)= 0
> open("/usr/share/locale/en_US/LC_MESSAGES/gcc-4.1.mo", O_RDONLY) = -1
> ENOENT (No such file or directory)
> open("/usr/share/locale/en/LC_MESSAGES/gcc-4.1.mo", O_RDONLY) = -1
> ENOENT (No such file or directory)
> open("/usr/share/locale-langpack/en_US/LC_MESSAGES/gcc-4.1.mo",
> O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/share/locale-langpack/en/LC_MESSAGES/gcc-4.1.mo", O_RDONLY)
> = -1 ENOENT (No such file or directory)
> rt_sigaction(SIGINT, {SIG_IGN}, {SIG_DFL}, 8) = 0
> rt_sigaction(SIGINT, {0x804f8d0, [INT], SA_RESTART}, {SIG_IGN}, 8) = 0
> rt_sigaction(SIGHUP, {SIG_IGN}, {SIG_DFL}, 8) = 0
> rt_sigaction(SIGHUP, {0x804f8d0, [HUP], SA_RESTART}, {SIG_IGN}, 8) = 0
> rt_sigaction(SIGTERM, {SIG_IGN}, {SIG_DFL}, 8) = 0
> rt_sigaction(SIGTERM, {0x804f8d0, [TERM], SA_RESTART}, {SIG_IGN}, 8) = 0
> rt_sigaction(SIGPIPE, {SIG_IGN}, {SIG_DFL}, 8) = 0
> rt_sigaction(SIGPIPE, {0x804f8d0, [PIPE], SA_RESTART}, {SIG_IGN}, 8) = 0
> rt_sigaction(SIGCHLD, {SIG_DFL}, {SIG_DFL}, 8) = 0
> access("/usr/local/sbin/gcc", X_OK) = -1 ENOENT (No such file or 
> directory)
> access("/usr/local/bin/gcc", X_OK)  = -1 ENOENT (No such file or 
> directory)
> access("/usr/sbin/gcc", X_OK)   = -1 ENOENT (No such file or 
> directory)
> access("/usr/bin/gcc", X_OK)= 0
> lstat64("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
> lstat64("/usr/bin", {st_mode=S_IFDIR|0755, st_size=65536, ...}) = 0
> lstat64("/usr/bin/gcc", {st_mode=S_IFLNK|0777, st_size=16, ...}) = 0
> readlink("/usr/bin/gcc", "/usr/bin/gcc-4.1", 4096) = 16
> lstat64("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
> lstat64("/usr/bin", {st_mode=S_IFDIR|0755, st_size=65536, ...}) = 0
> lstat64("/usr/bin/gcc-4.1", {st_mode=S_IFREG|0755, st_size=183904, ...}) = 0
> access("/usr/local/sbin/gcc", X_OK) = -1 ENOENT (No such file or 
> directory)
> access("/usr/local/bin/gcc", X_OK)  = -1 ENOENT (No such file or 
> directory)
> access("/usr/sbin/gcc", X_OK)   = -1 ENOENT (No such file or 
> directory)
> access("/usr/bin/gcc", X_OK)= 0
> lstat64("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
> lstat64("/usr/bin", {st_mode=S_IFDIR|0755, st_size=65536, ...}) = 0
> lstat64("/usr/bin/gcc", {st_mode=S_IFLNK|0777, st_size=16, ...}) = 0
> readlink("/usr/bin/gcc", "/usr/bin/gcc-4.1",

Re: bootstrap broken on mingw

2008-02-17 Thread Ralf Wildenhues
* FX Coudert wrote on Sun, Feb 17, 2008 at 12:54:05PM CET:
> >Actually there seems to be a recent change "backward" to that logic:
> >
> >2008-02-13  Ralf Wildenhues  <[EMAIL PROTECTED]>
> >
> >PR other/35148
> >* Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
> >srcdir.
> 
> Doesn't look too good for mingw.
> 
> >and we have PR35218 which seems to be the same issue?
> 
> Yes, it is exactly, it was open by Eric and I added my information. I  
> should have given the PR number in my mail.

I see two possibilities: revert above patch, and list texinfo 4.11 as
prerequisite for building the pdf/dvi (I tried this version with the
current tree and above patch reverted).  One alternative is to hack path
replacement into Makefile.in for MinGW.  Ugly and error-prone, so I will
not recommend it at this point.

One question I have, Eric and FX: do you both have self-built texinfo on
MinGW?  Because the specially-built one in /usr/bin should be able to
handle the file names just fine.  I don't remember though which version
mingw.org provides, probably an older one only.  If not, another
possibility would be to just require users on MinGW to update their
system texinfo installation.

Proposed patch for the first alternative (trunk and 4.2) below.  OK?

Thanks, and sorry for the breakage.
Ralf

gcc/ChangeLog:
2008-02-17  Ralf Wildenhues  <[EMAIL PROTECTED]>

* Makefile.in (gcc-vers.texi): revert 2008-02-13 change.
* doc/install.texi (Prerequisites, Final install): Texinfo 4.11
is required for DVI and PDF.

diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 9c91fb5..7553dcb 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -3653,7 +3653,7 @@ gcc-vers.texi: $(BASEVER) $(DEVPHASE)
 then echo "@set DEVELOPMENT"; \
 else echo "@clear DEVELOPMENT"; \
 fi) > [EMAIL PROTECTED]
-   echo "@set srcdir $(abs_srcdir)" >> [EMAIL PROTECTED]
+   echo "@set srcdir $(srcdir)" >> [EMAIL PROTECTED]
if [ -n "$(PKGVERSION)" ]; then \
  echo "@set VERSION_PACKAGE $(PKGVERSION)" >> [EMAIL PROTECTED]; \
fi
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index 8411f44..4b3a421 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -397,7 +397,7 @@ files to test your changes.
 
 Necessary for running @command{make dvi} or @command{make pdf} to
 create printable documentation in DVI or PDF format.  Texinfo version
-4.8 or later is required for @command{make pdf}.
+4.11 or later is required for @command{make dvi} and @command{make pdf}.
 
 Necessary to build GCC documentation during development because the
 generated output files are not included in the SVN repository.  They are
@@ -2321,8 +2321,8 @@ and @TeX{} installed.  This creates a number of 
@file{.dvi} files in
 subdirectories of @[EMAIL PROTECTED]; these may be converted for
 printing with programs such as @command{dvips}.  Alternately, by using
 @samp{make pdf} in place of @samp{make dvi}, you can create documentation
-in the form of @file{.pdf} files; this requires @command{texi2pdf}, which
-is included with Texinfo version 4.8 and later.  You can also
+in the form of @file{.pdf} files; this requires @command{texi2pdf} from
+Texinfo version 4.11 and later.  You can also
 @uref{http://www.gnu.org/order/order.html,,buy printed manuals from the
 Free Software Foundation}, though such manuals may not be for the most
 recent version of [EMAIL PROTECTED]


Re: bootstrap broken on mingw

2008-02-17 Thread Gerald Pfeifer
On Sun, 17 Feb 2008, Ralf Wildenhues wrote:
> I see two possibilities: revert above patch, and list texinfo 4.11 as
> prerequisite for building the pdf/dvi

I'm not in favor of making texinfo 4.11 a requirement.  As far as I can 
see it was released less than half a year ago and even recent releases of 
popular systems such as openSUSE 10.3 or FreeBSD 6.3, both released a few 
months ago do not have this yet, though admittedly Fedora 8 does.

No objection to make this a requirement for MinGW only, of course.

Gerald


Re: bootstrap broken on mingw

2008-02-17 Thread Ralf Wildenhues
[ adding gcc-patches ]

* Gerald Pfeifer wrote on Sun, Feb 17, 2008 at 02:46:45PM CET:
> On Sun, 17 Feb 2008, Ralf Wildenhues wrote:
> > I see two possibilities: revert above patch, and list texinfo 4.11 as
> > prerequisite for building the pdf/dvi
> 
> I'm not in favor of making texinfo 4.11 a requirement.  As far as I can 
> see it was released less than half a year ago and even recent releases of 
> popular systems such as openSUSE 10.3 or FreeBSD 6.3, both released a few 
> months ago do not have this yet, though admittedly Fedora 8 does.

Note that it would be a requirement for `make dvi pdf' only.

> No objection to make this a requirement for MinGW only, of course.

That doesn't help, though, as the 4.11 requirement would be the
alternative fix for PR 35148.

So, here's another alternative: fix the MinGW issue only, while not
regressing on any of the other reported bug (famous last words):
One way for path translation on MinGW would be to use
  CMD //c echo "@set srcdir" "$(abs_srcdir)"

as in the patch below.  I need somebody to test this patch on MinGW, all
I've done is ensure build_file_translate expands to empty on
i686-pc-linux-gnu.

Thanks,
Ralf

gcc/ChangeLog:
2008-02-17  Ralf Wildenhues  <[EMAIL PROTECTED]>

PR bootstrap/35218
* Makefile.in (build_file_translate): New.
* config.build (build_file_translate): Set to `CMD //c' on MinGW.
* configure.ac (build_file_translate): Substitute it.
* configure: Regenerate.

diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 9c91fb5..022208a 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -253,6 +253,8 @@ POD2MAN = pod2man --center="GNU" --release="gcc-$(version)"
 # do not correctly set the timestamp due to buggy versions of `utime'
 # in the kernel.  So, we use `echo' instead.
 STAMP = echo timestamp >
+# Translate absolute file names to w32 paths.
+build_file_translate = @build_file_translate@
 
 # Make sure the $(MAKE) variable is defined.
 @SET_MAKE@
@@ -3653,7 +3655,7 @@ gcc-vers.texi: $(BASEVER) $(DEVPHASE)
 then echo "@set DEVELOPMENT"; \
 else echo "@clear DEVELOPMENT"; \
 fi) > [EMAIL PROTECTED]
-   echo "@set srcdir $(abs_srcdir)" >> [EMAIL PROTECTED]
+   $(build_file_translate) echo "@set srcdir" "$(abs_srcdir)" >> [EMAIL 
PROTECTED]
if [ -n "$(PKGVERSION)" ]; then \
  echo "@set VERSION_PACKAGE $(PKGVERSION)" >> [EMAIL PROTECTED]; \
fi
diff --git a/gcc/config.build b/gcc/config.build
index 4f5421b..62486db 100644
--- a/gcc/config.build
+++ b/gcc/config.build
@@ -47,6 +47,7 @@ build_xm_file=
 build_xm_defines=
 build_exeext=
 build_install_headers_dir=install-headers-tar
+build_file_translate=
 
 # System-specific settings.
 case $build in
@@ -79,6 +80,7 @@ case $build in
   i[34567]86-*-mingw32* | x86_64-*-mingw*)
 build_xm_file=i386/xm-mingw32.h
 build_exeext=.exe
+build_file_translate="CMD //C"
 ;;
   i[34567]86-pc-msdosdjgpp*)
 build_xm_file=i386/xm-djgpp.h
diff --git a/gcc/configure.ac b/gcc/configure.ac
index f3bc7b3..bb7c056 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -3727,6 +3727,7 @@ AC_SUBST(build_install_headers_dir)
 AC_SUBST(build_xm_file_list)
 AC_SUBST(build_xm_include_list)
 AC_SUBST(build_xm_defines)
+AC_SUBST(build_file_translate)
 AC_SUBST(check_languages)
 AC_SUBST(cpp_install_dir)
 AC_SUBST(xmake_file)


Re: Bootstrap is broken for i386-darwin8.10.1

2008-02-17 Thread Jakub Jelinek
On Sat, Feb 16, 2008 at 07:42:16PM +0100, Richard Guenther wrote:
> On Feb 16, 2008 7:18 PM, Andrew Pinski <[EMAIL PROTECTED]> wrote:
> > Hi,
> >   Even though darwin9 works, dariwn 8.10 is broken while build libjava:
> >
> > /Users/apinski/src/local/gcc/objdir/i386-apple-darwin8.10.1/libjava/.libs/libgcj.dylib(single
> > module) definition of java resource sun/rmi/rmic/messages.properties
> > ./.libs/libgcj-tools.dylib(single module) definition of java resource
> > sun/rmi/rmic/messages.properties
> > /usr/bin/ld: multiple definitions of symbol java resource
> > com/sun/tools/javac/messages.properties
> >
> >
> > Should I file a bug and will this be a blocker for the release?
> 
> We list i686-apple-darwin as a primary platform, so this sort-of
> blocks the release
> as java is a default language.  Please make sure a bugzilla exists for
> this problem.

Doesn't http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00265.html
fix this?  Don't have access to darwin to test that there myself...

Jakub


Re: gcc hangs ! (version 4.1.2, Ubuntu 4.1.2-0ubuntu4)

2008-02-17 Thread Andrew Haley

Sunzir Deepur wrote:

followup:

After a considerabale amount of time (e.g. 15 seconds), something is suddenly
freed, and the compilation completes successfully. afterwards trying
to recompile
the file completes immediately (it is not a big file, so it takes
fraction of a second).
I don't know what is the cause of the hang.. I can tell that while it is hung,
the cpu is not working (gcc doesn't even show in top..).


It's waiting on I/O.  This delay is either network related or a disk is
going to die.  It almost certainly isn't a gcc bug.

Andrew.


Re: Is anyone testing for a (cross-) target (board) with dynlinking?

2008-02-17 Thread Robin Getz
On Tue 12 Feb 2008 13:47, Hans-Peter Nilsson pondered:
> > From: Ian Lance Taylor <[EMAIL PROTECTED]>
> > Date: 12 Feb 2008 07:48:51 -0800
> 
> Thanks to all.  I no longer think there's anything that needs
> fixing in the gcc testsuite regarding copying of libraries or in
> particular libgcc_s.so.1; I just need my baseboard-file to copy
> over every *.so* from ld_library_path or make them otherwise
> accessible.  It seems dejagnu deliberately leaves this to the
> target, as it's not done for any other library either, and
> ld_library_path is the blessed variable (no, not in the dejagnu
> *documentation*; just used in the dejagnu sources with the same
> use as in gcc. ;)

This is what we do when we test via rsh/rcp on the Blackfin. 
(bfin-linux-uclibc- )

Have a peek at out our large shell script which builds and optionally tests 
everything.

http://blackfin.uclinux.org/gf/project/toolchain/scmsvn/?action=browse&path=%2Ftrunk%2Fbuildscript%2FBuildToolChain&annotate=2175

What you are looking for is around lines 1354-1427 (prepare_target())

-Robin


Re: Bootstrap is broken for i386-darwin8.10.1

2008-02-17 Thread Richard Guenther
On Feb 17, 2008 3:17 PM, Jakub Jelinek <[EMAIL PROTECTED]> wrote:
>
> On Sat, Feb 16, 2008 at 07:42:16PM +0100, Richard Guenther wrote:
> > On Feb 16, 2008 7:18 PM, Andrew Pinski <[EMAIL PROTECTED]> wrote:
> > > Hi,
> > >   Even though darwin9 works, dariwn 8.10 is broken while build libjava:
> > >
> > > /Users/apinski/src/local/gcc/objdir/i386-apple-darwin8.10.1/libjava/.libs/libgcj.dylib(single
> > > module) definition of java resource sun/rmi/rmic/messages.properties
> > > ./.libs/libgcj-tools.dylib(single module) definition of java resource
> > > sun/rmi/rmic/messages.properties
> > > /usr/bin/ld: multiple definitions of symbol java resource
> > > com/sun/tools/javac/messages.properties
> > >
> > >
> > > Should I file a bug and will this be a blocker for the release?
> >
> > We list i686-apple-darwin as a primary platform, so this sort-of
> > blocks the release
> > as java is a default language.  Please make sure a bugzilla exists for
> > this problem.
>
> Doesn't http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00265.html
> fix this?  Don't have access to darwin to test that there myself...

As it hasn't been applied yet (and I can't test darwin myself), Andrew, can you
confirm the above patch fixes the bootstrap failure?  Andrew, can you look at
the above patch?

Thanks,
Richard.


API for callgraph and IPA passes for whole program optimization

2008-02-17 Thread Jan Hubicka
Hi,
since it seems that we are getting ready with LTO, I think it is time to write
updated design document for callgraph and implementation of whole program
optimizer as outlined in Whopr document http://gcc.gnu.org/wiki/whopr
As usual, all comments or ideas are welcome ;)

Basic organization
==

As described in whopr document, to have linktime optimizer scalable for whole
programs of reasonable size, we need to:

  A) Push as much as possible into compilation stage, including preparing of
  "summary" information for interprocedural optimization and write that on
  disk.
  B) At linktime stage do all interprocedural optimization decisions based
  solely on the callgraph, variable pool and the summaries present in object
  files without actually needing to examine all function bodies. We have to
  expect that all function bodies won't fit in memory or take long to load.
  C) Final compilation should apply the decisions of interprocedural
  optimization and do local optimization and should be possible to distribute
  it.

So every interprocedural optimization pass should be split into 3 phases:
  1) local analysis producing simple and small function summary based on the
  function body analyzed alone.
  2) global execution that based on the function summaries, callgraph and
  variable pool do the optimization decisions, note them in callgraph and
  varpool and somehow possibly update the local information of later IPA
  passes.  The optimization summaries produced should be again small, simple
  and possible to save on disk.
  3) local modification that takes the function body or variable initializer
  and applies changes based on optimization summary produced in 2).

This is just rough outline: in real implementation we will probably want to do
some limited interprocedural optimization at compilation stage (especially
early inlining that enables a lot more optimization in C++) and we also will
probably want to do some late interprocedural optimization on fragments of the
whole program, such as IPA register allocation, that can't use summary produced
so early in optimization.

Current implementation status and short term plans
==

The IPA organized into separate analyze/execution/modify passes was part of
original cgraph design.  The design was outlined in 2004 GCC summit paper
http://www.gccsummit.org/2004/2004-GCC-Summit-Proceedings.pdf

Inliner was organized this way, later passes wasn't organized and enforcing
this organization was difficult given the fact that linktime optimization
wasn't in sight http://gcc.gnu.org/ml/gcc/2004-11/msg00694.html so the code was
partly removed from mainline.

Since inliner is one of more interesting passes in this point of view,
reorganizing rest of optimizer should be that difficult at all.

I planned to open IPA branch and do transition back to the organization,
however it now seems that it is better done form part at stage1 directly on
mainline (most changes was prototyped on IPA branch and worked well) and by
part on LTO branch that now offer way to actually test the whole framework.
This way the amount of changes at LTO branch remains localized and we won't run
into conflict where IPA branch would need to be based on LTO branch to progress
and vice versa.

The plan would be to update passmanager first and transit main IPA passes
(inliner, constant propagation, alias analysis) on mainline.  The more advanced
IPA stuff, as struct reorg can go later since it is not a showstopper for first
incarnation of whole program optimizer anyway. On LTO branch we can do changes
related to memory management and overall pass queue organization.

Basic datastructure organization


The callgraph and variable pool nodes are now split into the generic parts
(such as callgraph edges) and the per-optimization summaries.  Those all should
be split into local and global parts:

  - local containing the function summary computed by stage A,
  - global part containing the result of computation.

Temporary storage needed by the pass itself should be allocated in on-side
array based on cgraph UIDs or in aux pointers.

The local and global data are available via cgraph_local_info /
cgraph_global_info accessors since the plan is to un-embed them from cgraph
nodes once the memory consumption will justify it and also the functions
perform an sanity checking.

So implementation plan here would be just to enforce this split for all passes
that wasn't exactly implemented this way.

Basic passmanager changes
=

At the moment passmanager operates in two modes:

  1) IPA mode for toplevel passes: those passes are executed in sequence once
  for compilation.
  2) local mode for nested passes: those passes are executed in sequence (that
  is all nested passes in sequence up to next IPA pass) in topological order of
  callgraph on each function.

I would like to (re)-add the following hooks

omp_get_num_procs() not working on macintosh?

2008-02-17 Thread CSights
Hi,
I'm not able to detect the number of processors using 
omp_get_num_procs()  on 
a macintosh.
I've installed gcc/g++ v4.3 from hpc.sourceforge.net (the "Tiger" 
version)
[Url 1 below].  (Installed = extracted to /)
$ g++ --version
g++ (GCC) 4.3.0 20080125 (experimental)
I compile the code below with no problems.
$ g++ -fopenmp main.cpp -o openmpTest
When the code executes omp_get_num_procs() detects 1 processor.
$ ./openmpTest
num procs 1
thread 0  i: 0
thread 0  i: 1
thread 0  i: 2
thread 0  i: 3
thread 0  i: 4
thread 0  i: 5
thread 0  i: 6
thread 0  i: 7
thread 0  i: 8
thread 0  i: 9

This macintosh has two physical chips and 2 cores per chip.
$ sysctl hw 
[...]
hw.ncpu: 4
hw.activecpu: 4
[...]

Does anybody know why omp_get_num_procs() is returning 1 on this 
machine?  
Let me know if you need more info!

Thanks,
C.


[1]http://prdownloads.sourceforge.net/hpc/gcc-intel-bin.tar.gz?download


-
// "g++ -fopenmp  main.cpp -o openmpTest"
#include 

#ifdef _OPENMP  // defined at compile time by -fopenmp
#include 
#endif

using namespace std;

int main (int argc, char **argv) {
int n_iters = 10;

#ifdef OMP_H// defined in header omp.h
cout<<"num procs "<

Re: gcc hangs ! (version 4.1.2, Ubuntu 4.1.2-0ubuntu4)

2008-02-17 Thread Sunzir Deepur
On Feb 17, 2008 3:55 PM, Andrew Haley <[EMAIL PROTECTED]> wrote:
> Sunzir Deepur wrote:
> > followup:
> >
> > After a considerabale amount of time (e.g. 15 seconds), something is 
> > suddenly
> > freed, and the compilation completes successfully. afterwards trying
> > to recompile
> > the file completes immediately (it is not a big file, so it takes
> > fraction of a second).
> > I don't know what is the cause of the hang.. I can tell that while it is 
> > hung,
> > the cpu is not working (gcc doesn't even show in top..).
>
> It's waiting on I/O.  This delay is either network related or a disk is
> going to die.  It almost certainly isn't a gcc bug.

Thank you. Any idea how can I further scrutinize this ?

>
> Andrew.
>


Re: bootstrap broken on mingw

2008-02-17 Thread Ralf Wildenhues
* FX Coudert wrote on Sun, Feb 17, 2008 at 06:59:49PM CET:
> 
> >If not, another
> >possibility would be to just require users on MinGW to update their
> >system texinfo installation.
> 
> Weeks before the release? That doesn't give much time to anyone for  
> getting it working and actually testing the release candidates.

OK.  The latest patch that I posted should solve the MinGW issues
(but is still untested).

Cheers,
Ralf


Re: bootstrap broken on mingw

2008-02-17 Thread FX Coudert

gcc/ChangeLog:
2008-02-17  Ralf Wildenhues  <[EMAIL PROTECTED]>

PR bootstrap/35218
* Makefile.in (build_file_translate): New.
* config.build (build_file_translate): Set to `CMD //c' on MinGW.
* configure.ac (build_file_translate): Substitute it.
* configure: Regenerate.


I'm willing to try, but running "autoconf" doesn't regenerate the  
configure file, what am I missing?


FX

--
François-Xavier Coudert
http://www.homepages.ucl.ac.uk/~uccafco/



Re: bootstrap broken on mingw

2008-02-17 Thread FX Coudert
One question I have, Eric and FX: do you both have self-built  
texinfo on

MinGW?


Yes, because the one provided with MSYS is from texinfo 4.3, which  
GCC finds too old. Apparently, MSYS-1.0.11 will come with texinfo  
4.11, but it's still labeled "technology preview" for now.



Because the specially-built one in /usr/bin should be able to
handle the file names just fine.


mingw doesn't have texinfo, and the one from MSYS is too old... or  
maybe you're refering to MSYS-1.0.10?



If not, another
possibility would be to just require users on MinGW to update their
system texinfo installation.


Weeks before the release? That doesn't give much time to anyone for  
getting it working and actually testing the release candidates.


--
François-Xavier Coudert
http://www.homepages.ucl.ac.uk/~uccafco/



RE: bootstrap broken on mingw

2008-02-17 Thread Weddington, Eric
 

> -Original Message-
> From: FX Coudert [mailto:[EMAIL PROTECTED] 
> Sent: Sunday, February 17, 2008 11:00 AM
> To: Ralf Wildenhues
> Cc: Richard Guenther; Joerg Wunsch; GCC Development; 
> Weddington, Eric; Denis Chertykov; Anatoly Sokolov; Lamo, Jo Inge
> Subject: Re: bootstrap broken on mingw
> 
> > One question I have, Eric and FX: do you both have self-built  
> > texinfo on
> > MinGW?
> 
> Yes, because the one provided with MSYS is from texinfo 4.3, which  
> GCC finds too old. Apparently, MSYS-1.0.11 will come with texinfo  
> 4.11, but it's still labeled "technology preview" for now.
> 

I'm in the same boat here, msys-1.0.10, texinfo 4.3.

Eric Weddington


RE: bootstrap broken on mingw

2008-02-17 Thread Weddington, Eric
 

> -Original Message-
> From: Ralf Wildenhues [mailto:[EMAIL PROTECTED] 
> Sent: Sunday, February 17, 2008 11:05 AM
> To: FX Coudert
> Cc: Richard Guenther; Joerg Wunsch; GCC Development; 
> Weddington, Eric; Denis Chertykov; Anatoly Sokolov; Lamo, Jo Inge
> Subject: Re: bootstrap broken on mingw
> 
> * FX Coudert wrote on Sun, Feb 17, 2008 at 06:59:49PM CET:
> > 
> > >If not, another
> > >possibility would be to just require users on MinGW to update their
> > >system texinfo installation.
> > 
> > Weeks before the release? That doesn't give much time to 
> anyone for  
> > getting it working and actually testing the release candidates.
> 
> OK.  The latest patch that I posted should solve the MinGW issues
> (but is still untested).
> 

With that patch I'm now getting:

(echo "@set version-GCC 4.3.0"; \
 if [ "experimental" = "experimental" ]; \
 then echo "@set DEVELOPMENT"; \
 else echo "@clear DEVELOPMENT"; \
 fi) > gcc-vers.texiT
/bin/sh: build_file_translate@: command not found
make[1]: *** [gcc-vers.texi] Error 127
make[1]: Leaving directory `/c/avrdev/gcc/build/gcc'
make: *** [all-gcc] Error 2

Eric Weddington 


RE: bootstrap broken on mingw

2008-02-17 Thread Weddington, Eric
 

> -Original Message-
> From: FX Coudert [mailto:[EMAIL PROTECTED] 
> Sent: Sunday, February 17, 2008 11:06 AM
> To: Ralf Wildenhues
> Cc: Gerald Pfeifer; Richard Guenther; Joerg Wunsch; GCC 
> Development; Weddington, Eric; Denis Chertykov; Anatoly 
> Sokolov; Lamo, Jo Inge; [EMAIL PROTECTED]
> Subject: Re: bootstrap broken on mingw
> 
> > gcc/ChangeLog:
> > 2008-02-17  Ralf Wildenhues  <[EMAIL PROTECTED]>
> >
> > PR bootstrap/35218
> > * Makefile.in (build_file_translate): New.
> > * config.build (build_file_translate): Set to `CMD //c' 
> on MinGW.
> > * configure.ac (build_file_translate): Substitute it.
> > * configure: Regenerate.
> 
> I'm willing to try, but running "autoconf" doesn't regenerate the  
> configure file, what am I missing?
> 

I do:

aclocal
autoconf

At the top level. aclocal 1.9.6, autoconf 2.59.

Eric Weddington


Re: bootstrap broken on mingw

2008-02-17 Thread Ralf Wildenhues
* Weddington, Eric wrote on Sun, Feb 17, 2008 at 08:41:02PM CET:
> > 
> > I'm willing to try, but running "autoconf" doesn't regenerate the  
> > configure file, what am I missing?
> 
> I do:
> 
> aclocal
> autoconf
> 
> At the top level. aclocal 1.9.6, autoconf 2.59.

You need to run autoconf in the gcc/ subdirectory.  Sorry for not
mentioning that right away.


Re: omp_get_num_procs() not working on macintosh?

2008-02-17 Thread Jakub Jelinek
On Sun, Feb 17, 2008 at 12:00:51PM -0500, CSights wrote:
>   I'm not able to detect the number of processors using 
> omp_get_num_procs()  on 
> a macintosh.
>   I've installed gcc/g++ v4.3 from hpc.sourceforge.net (the "Tiger" 
> version)
> [Url 1 below].  (Installed = extracted to /)
> $ g++ --version
> g++ (GCC) 4.3.0 20080125 (experimental)
>   I compile the code below with no problems.
> $ g++ -fopenmp main.cpp -o openmpTest
>   When the code executes omp_get_num_procs() detects 1 processor.
> $ ./openmpTest
> num procs 1
> thread 0  i: 0
> thread 0  i: 1
> thread 0  i: 2
> thread 0  i: 3
> thread 0  i: 4
> thread 0  i: 5
> thread 0  i: 6
> thread 0  i: 7
> thread 0  i: 8
> thread 0  i: 9
> 
>   This macintosh has two physical chips and 2 cores per chip.
> $ sysctl hw 
> [...]
> hw.ncpu: 4
> hw.activecpu: 4
> [...]
> 
>   Does anybody know why omp_get_num_procs() is returning 1 on this 
> machine?  
> Let me know if you need more info!

Perhaps Darwin doesn't define _SC_NPROCESSORS_ONLN or
sysconf (_SC_NPROCESSORS_ONLN) doesn't work properly on Darwin?

If so, someone familiar with Darwin needs to provide (a tested) darwin specific
proc.c implementation which can be added to libgomp/config/darwin/proc.c
to replace the libgomp/config/posix/proc.c version.

Jakub


Re: bootstrap broken on mingw

2008-02-17 Thread Ralf Wildenhues
* Weddington, Eric wrote on Sun, Feb 17, 2008 at 08:32:26PM CET:
>  
> With that patch I'm now getting:
> 
> (echo "@set version-GCC 4.3.0"; \
>  if [ "experimental" = "experimental" ]; \
>  then echo "@set DEVELOPMENT"; \
>  else echo "@clear DEVELOPMENT"; \
>  fi) > gcc-vers.texiT
> /bin/sh: build_file_translate@: command not found
> make[1]: *** [gcc-vers.texi] Error 127
> make[1]: Leaving directory `/c/avrdev/gcc/build/gcc'
> make: *** [all-gcc] Error 2

This happens when gcc/configure is not regenerated.


RE: bootstrap broken on mingw

2008-02-17 Thread Weddington, Eric
 

> -Original Message-
> From: Ralf Wildenhues [mailto:[EMAIL PROTECTED] 
> Sent: Sunday, February 17, 2008 1:18 PM
> To: Weddington, Eric
> Cc: FX Coudert; Gerald Pfeifer; Richard Guenther; Joerg 
> Wunsch; GCC Development; Denis Chertykov; Anatoly Sokolov; 
> Lamo, Jo Inge; [EMAIL PROTECTED]
> Subject: Re: bootstrap broken on mingw
> 
> * Weddington, Eric wrote on Sun, Feb 17, 2008 at 08:41:02PM CET:
> > > 
> > > I'm willing to try, but running "autoconf" doesn't 
> regenerate the  
> > > configure file, what am I missing?
> > 
> > I do:
> > 
> > aclocal
> > autoconf
> > 
> > At the top level. aclocal 1.9.6, autoconf 2.59.
> 
> You need to run autoconf in the gcc/ subdirectory.  Sorry for not
> mentioning that right away.


Ok. I did the above and ran autoconf in the /gcc subdir. I got this
error:

if [ xinfo = xinfo ]; then \
makeinfo --split-size=500 --split-size=500 --no-split -I
. -I ../../gcc-4.3-20080215/gcc/doc \
-I ../../gcc-4.3-20080215/gcc/doc/include -o
doc/gcc.info ../../gcc-4.3-20080215/gcc/doc/gcc.texi; \
fi
../../gcc-4.3-20080215/gcc/doc//invoke.texi:1244: warning: undefined
flag: srcdir.
../../gcc-4.3-20080215/gcc/doc//invoke.texi:1243: @include `{No value
for `srcdir'}/../libiberty/at-file.texi': No such file or directory.
makeinfo: Removing output file `doc/gcc.info' due to errors; use --force
to preserve.
make[2]: *** [doc/gcc.info] Error 2
make[2]: Leaving directory `/c/avrdev/gcc/build/gcc'
make[1]: *** [all-gcc] Error 2
make[1]: Leaving directory `/c/avrdev/gcc/build'
make: *** [all] Error 2

Is there any reason why we can't revert the patch that caused this?

Eric Weddington 


Re: 4.3 build failure in driver-i386.c

2008-02-17 Thread Greg Schafer
Richard Guenther wrote:
> On Feb 17, 2008 9:38 AM, Greg Schafer <[EMAIL PROTECTED]> wrote:

>> .stabn 68,0,91,.LM210-__get_cpuid_max
>> .LM210:
>> #APP
>> pushf{l|d}
>> pushf{l|d}
>> pop{l}  %eax
>> mov{l}  {%eax, %edx|%edx, %eax}
>> xor{l}  {$2097152, %eax|%eax, $2097152}
>> push{l} %eax
>> popf{l|d}
>> pushf{l|d}
>> pop{l}  %eax
>> popf{l|d}
>>
>> #NO_APP

> The problem is that your host GCC doesn't recognize the inline asm correctly
> (the above should not reach the assembler), GCC 3.3.x handles the above fine.
> This probably also breaks build with non-GCC host compilers.

Ahh, OK. Then the problem is much more serious than I first thought. I
just tried GCC-2.95.3 and you are right, that fails too. I've filed a PR
so this issue doesn't get forgotten:

http://gcc.gnu.org/PR35239

Thanks
Greg




Re: omp_get_num_procs() not working on macintosh?

2008-02-17 Thread Dominique Dhumieres
> Perhaps Darwin doesn't define _SC_NPROCESSORS_ONLN

It is defined on Darwin9:

[ibook-dhum] f90/bug% grep _SC_NPROCESSORS_ONLN /usr/include/*
/usr/include/unistd.h:#define   _SC_NPROCESSORS_ONLN58

but apparently not for Darwin8.

Dominique


Re: bootstrap broken on mingw

2008-02-17 Thread Ralf Wildenhues
* Ralf Wildenhues wrote on Sun, Feb 17, 2008 at 10:59:07PM CET:
> * Weddington, Eric wrote on Sun, Feb 17, 2008 at 10:30:24PM CET:
> > Is there any reason why we can't revert the patch that caused this?
> 
> Well if we do then we need to reopen PR 35148 which would be equivalent
> to requiring texinfo 4.11 (on all systems), which was not deemed
> desirable earlier in this thread.

Hmm.  An alternative would be: revert the patch that caused this,
document that users with texinfo older than 4.11 need to configure with
an absolute path (/path/to/gcc/configure ...) if they want to be able to
build DVI and PDF.

Hmm, I suppose that will still not make things work with MinGW, as I
doubt building like 'C:/path/to/gcc/configure ...' will work.

Cheers,
Ralf


RE: bootstrap broken on mingw

2008-02-17 Thread Weddington, Eric
 

> -Original Message-
> From: Ralf Wildenhues [mailto:[EMAIL PROTECTED] 
> Sent: Sunday, February 17, 2008 3:05 PM
> To: Weddington, Eric; FX Coudert; Gerald Pfeifer; Richard 
> Guenther; Joerg Wunsch; GCC Development; Denis Chertykov; 
> Anatoly Sokolov; Lamo, Jo Inge; [EMAIL PROTECTED]
> Subject: Re: bootstrap broken on mingw
> 
> * Ralf Wildenhues wrote on Sun, Feb 17, 2008 at 10:59:07PM CET:
> > * Weddington, Eric wrote on Sun, Feb 17, 2008 at 10:30:24PM CET:
> > > Is there any reason why we can't revert the patch that 
> caused this?
> > 
> > Well if we do then we need to reopen PR 35148 which would 
> be equivalent
> > to requiring texinfo 4.11 (on all systems), which was not deemed
> > desirable earlier in this thread.
> 
> Hmm.  An alternative would be: revert the patch that caused this,
> document that users with texinfo older than 4.11 need to 
> configure with
> an absolute path (/path/to/gcc/configure ...) if they want to 
> be able to
> build DVI and PDF.
> 
> Hmm, I suppose that will still not make things work with MinGW, as I
> doubt building like 'C:/path/to/gcc/configure ...' will work.
> 

No it wouldn't. I don't understand why reverting the patch would cause
havoc. The 20080208 snapshot built just fine, even with an old texinfo
version. I'd rather go back to that behaviour.

I'm tyring out your new patch now...

Eric Weddington


Re: bootstrap broken on mingw

2008-02-17 Thread Ralf Wildenhues
* Weddington, Eric wrote on Sun, Feb 17, 2008 at 10:30:24PM CET:
> 
> Ok. I did the above and ran autoconf in the /gcc subdir. I got this
> error:
> 
> if [ xinfo = xinfo ]; then \
>   makeinfo --split-size=500 --split-size=500 --no-split -I
> . -I ../../gcc-4.3-20080215/gcc/doc \
>   -I ../../gcc-4.3-20080215/gcc/doc/include -o
> doc/gcc.info ../../gcc-4.3-20080215/gcc/doc/gcc.texi; \
> fi
> ../../gcc-4.3-20080215/gcc/doc//invoke.texi:1244: warning: undefined
> flag: srcdir.
> ../../gcc-4.3-20080215/gcc/doc//invoke.texi:1243: @include `{No value
> for `srcdir'}/../libiberty/at-file.texi': No such file or directory.
> makeinfo: Removing output file `doc/gcc.info' due to errors; use --force
> to preserve.
> make[2]: *** [doc/gcc.info] Error 2

> Is there any reason why we can't revert the patch that caused this?

Well if we do then we need to reopen PR 35148 which would be equivalent
to requiring texinfo 4.11 (on all systems), which was not deemed
desirable earlier in this thread.

What are the contents of your $builddir/gcc/gcc-vers.texi file?  Too
much quoting?  In that case, could you please delete that file and try
this patch instead (changes to configure included)?  All I changed now
was remove quoting from the Makefile rule.

Sorry again for all the trouble.

Thanks,
Ralf

gcc/ChangeLog:
2008-02-17  Ralf Wildenhues  <[EMAIL PROTECTED]>

PR bootstrap/35218
* Makefile.in (build_file_translate): New.
(gcc-vers.texi): Use it for translating $(abs_srcdir).
* config.build (build_file_translate): Set to `CMD //c' on MinGW.
* configure.ac (build_file_translate): Substitute it.
* configure: Regenerate.

diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 9c91fb5..be9faaa 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -253,6 +253,8 @@ POD2MAN = pod2man --center="GNU" --release="gcc-$(version)"
 # do not correctly set the timestamp due to buggy versions of `utime'
 # in the kernel.  So, we use `echo' instead.
 STAMP = echo timestamp >
+# Translate absolute file names to w32 paths.
+build_file_translate = @build_file_translate@
 
 # Make sure the $(MAKE) variable is defined.
 @SET_MAKE@
@@ -3653,7 +3655,7 @@ gcc-vers.texi: $(BASEVER) $(DEVPHASE)
 then echo "@set DEVELOPMENT"; \
 else echo "@clear DEVELOPMENT"; \
 fi) > [EMAIL PROTECTED]
-   echo "@set srcdir $(abs_srcdir)" >> [EMAIL PROTECTED]
+   $(build_file_translate) echo @set srcdir $(abs_srcdir) >> [EMAIL 
PROTECTED]
if [ -n "$(PKGVERSION)" ]; then \
  echo "@set VERSION_PACKAGE $(PKGVERSION)" >> [EMAIL PROTECTED]; \
fi
diff --git a/gcc/config.build b/gcc/config.build
index 4f5421b..62486db 100644
--- a/gcc/config.build
+++ b/gcc/config.build
@@ -47,6 +47,7 @@ build_xm_file=
 build_xm_defines=
 build_exeext=
 build_install_headers_dir=install-headers-tar
+build_file_translate=
 
 # System-specific settings.
 case $build in
@@ -79,6 +80,7 @@ case $build in
   i[34567]86-*-mingw32* | x86_64-*-mingw*)
 build_xm_file=i386/xm-mingw32.h
 build_exeext=.exe
+build_file_translate="CMD //C"
 ;;
   i[34567]86-pc-msdosdjgpp*)
 build_xm_file=i386/xm-djgpp.h
diff --git a/gcc/configure b/gcc/configure
index ed7bba1..0347f38 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -309,7 +309,7 @@ ac_includes_default="\
 # include 
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME 
PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix 
program_transform_name bindir sbindir libexecdir datadir sysconfdir 
sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir 
build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build 
build_cpu build_vendor build_os host host_cpu host_vendor host_os target 
target_cpu target_vendor target_os target_noncanonical build_libsubdir 
build_subdir host_subdir target_subdir GENINSRC CC CFLAGS LDFLAGS CPPFLAGS 
ac_ct_CC EXEEXT OBJEXT NO_MINUS_C_MINUS_O OUTPUT_OPTION CPP EGREP loose_warn 
cxx_compat_warn strict_warn warn_cflags nocommon_flag TREEBROWSER valgrind_path 
valgrind_path_defines valgrind_command coverage_flags enable_multilib 
enable_decimal_float enable_fixed_point enable_shared TARGET_SYSTEM_ROOT 
TARGET_SYSTEM_ROOT_DEFINE CROSS_SYSTEM_HEADER_DIR onestep PKGVERSION 
REPORT_BUGS_TO REPORT_BUGS_TEXI datarootdir docdir htmldir SET_MAKE AWK LN_S LN 
RANLIB ac_ct_RANLIB ranlib_flags INSTALL INSTALL_PROGRAM INSTALL_DATA 
make_compare_target have_mktemp_command MAKEINFO BUILD_INFO GENERATED_MANPAGES 
FLEX BISON NM AR COLLECT2_LIBS GNAT_LIBEXC LDEXP_LIB TARGET_GETGROUPS_T 
LIBICONV LTLIBICONV LIBICONV_DEP manext objext gthread_flags extra_modes_file 
extra_opt_files USE_NLS LIBINTL LIBINTL_DEP INCINTL XGETTEXT GMSGFMT POSUB 
CATALOGS DATADIRNAME INSTOBJEXT GENCAT CATOBJEXT host_cc_for_libada CROSS ALL 
SYSTEM_HEADER_DIR inhibit_libc CC_FOR_BUILD BUILD_CFLAGS STMP_FIXINC 
STMP_FIXPROTO collect2 gcc_cv_as ORIGINAL_AS_FOR_TARGE

Re: bootstrap broken on mingw

2008-02-17 Thread Ralf Wildenhues
* Weddington, Eric wrote on Sun, Feb 17, 2008 at 11:08:58PM CET:
> 
> No it wouldn't. I don't understand why reverting the patch would cause
> havoc. The 20080208 snapshot built just fine, even with an old texinfo
> version. I'd rather go back to that behaviour.

It didn't for me, with texinfo 4.8, nor for the reporter of PR 35148, as
'make pdf' failed.  I have not investigated the cause of that bug
further, but I suppose it's a texinfo issue (that maybe exists only in
some texinfo releases?)

> I'm tyring out your new patch now...

Thanks.  BTW, if it works, OK for trunk and 4.2?  If that does not work,
then I will revert the breaking patch first thing tomorrow morning (UTC).

Cheers,
Ralf


Re: 4.3 build failure in driver-i386.c

2008-02-17 Thread Jakub Jelinek
On Sun, Feb 17, 2008 at 11:07:54AM +0100, Richard Guenther wrote:
> On Feb 17, 2008 10:54 AM, Andreas Schwab <[EMAIL PROTECTED]> wrote:
> > "Richard Guenther" <[EMAIL PROTECTED]> writes:
> >
> > > I see the use of cpuid.h is wrapped inside #ifdef __GNUC__, so the issue 
> > > is only
> > > using old GCC as the host compiler (I checked 2.95 which chokes on the 
> > > asm).
> > > Can we change this guard to only allow GCC >= 3.3 which would also fix 
> > > this?
> >
> > Won't those host dependent parameters cause bootstrap comparison
> > failures?  If the stage1 compiler doesn't use the same detection
> > routines as the stage2 compiler then the stage2 compiler is compiled
> > with different options than the stage3 compiler.
> 
> If you bootstrap with BOOT_CFLAGS="-march=native" yes, otherwise no.
> Maybe we should build
> i386-driver.c with the stage1 compiler and not the host compiler,
> which of course
> causes a chicken and egg problem...

Or we can just duplicate the 2 inline asms for __GNUC__ < 3
or what is the oldest GCC that can handle the alternatives correctly.
The __cpuid asm is short and the other one, while long, doesn't need
changing too often.

Jakub


Re: bootstrap broken on mingw

2008-02-17 Thread Joseph S. Myers
On Sun, 17 Feb 2008, Ralf Wildenhues wrote:

> So, here's another alternative: fix the MinGW issue only, while not
> regressing on any of the other reported bug (famous last words):
> One way for path translation on MinGW would be to use
>   CMD //c echo "@set srcdir" "$(abs_srcdir)"

If the abs_srcdir value is not usable by the host tools on some platform, 
shouldn't that be fixed in the code setting abs_srcdir, and not for an 
individual use of abs_srcdir?  Or is it not feasible to fix the abs_srcdir 
setting without changing Autoconf itself?

-- 
Joseph S. Myers
[EMAIL PROTECTED]


procedure to make MELT branch on GCC SVN?

2008-02-17 Thread Basile STARYNKEVITCH

Hello All,

I am a bit confused about how to make a branch on GCC SVN.

I've got some sources (see my home page) but it is buggy. Diego Novillo 
told me gently (in private email) that I should make the branch (thanks 
Diego).


I started a wiki page: http://gcc.gnu.org/wiki/MiddleEndLispTranslator

Legal stuff is done long time ago: I have "write after approval" status!

(thanks to Manuel López-Ibáñez for his editions on the wiki)

In http://gcc.gnu.org/ml/gcc/2008-02/msg00255.html I announced it.
In http://gcc.gnu.org/ml/gcc/2008-02/msg00256.html Gerald Pfeifer 
suggested to announce it (but I thought already did) and to update the 
web pages.


I am quite scared about messing up the CVS; I am much more easy with the 
SVN.


Can I just start my branch with
  svn cp svn+ssh://[EMAIL PROTECTED]/svn/gcc/trunk \ 
svn+ssh://[EMAIL PROTECTED]/svn/gcc/melt-branch


and then do the usual svn stuff (addition, etc...)

or is there some (either social or technical) step that I missed?

While I do make lot of bugs (and I am not entirely proud of my current 
code), I really do not want to upset the GCC community!


I am a bit confused about this "making a branch" thing; I thought that 
by definition it is some informal experiment, but I'm beginning to think 
that it might be much more formal... and I don't grasp all the details!


Regards.
--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basilestarynkevitchnet mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mines, sont seulement les miennes} ***


Re: procedure to make MELT branch on GCC SVN?

2008-02-17 Thread Tom Tromey
> "Basile" == Basile STARYNKEVITCH <[EMAIL PROTECTED]> writes:

Basile> Can I just start my branch with
Basile>   svn cp svn+ssh://[EMAIL PROTECTED]/svn/gcc/trunk \
Basile> svn+ssh://[EMAIL PROTECTED]/svn/gcc/melt-branch
Basile> and then do the usual svn stuff (addition, etc...)
Basile> or is there some (either social or technical) step that I missed?

I'd recommend the instructions on the wiki:

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

In particular you might consider the svnmerge thing.

Basile> While I do make lot of bugs (and I am not entirely proud of my
Basile> current code), I really do not want to upset the GCC
Basile> community!

It is a bit scary but it'll turn out ok :).  I'm looking forward to
seeing your code.

Tom


Re: procedure to make MELT branch on GCC SVN?

2008-02-17 Thread Richard Guenther
On Feb 17, 2008 11:41 PM, Basile STARYNKEVITCH <[EMAIL PROTECTED]> wrote:
> Hello All,
>
> I am a bit confused about how to make a branch on GCC SVN.
>
> I've got some sources (see my home page) but it is buggy. Diego Novillo
> told me gently (in private email) that I should make the branch (thanks
> Diego).
>
> I started a wiki page: http://gcc.gnu.org/wiki/MiddleEndLispTranslator
>
> Legal stuff is done long time ago: I have "write after approval" status!
>
> (thanks to Manuel López-Ibáñez for his editions on the wiki)
>
> In http://gcc.gnu.org/ml/gcc/2008-02/msg00255.html I announced it.
> In http://gcc.gnu.org/ml/gcc/2008-02/msg00256.html Gerald Pfeifer
> suggested to announce it (but I thought already did) and to update the
> web pages.
>
> I am quite scared about messing up the CVS; I am much more easy with the
> SVN.
>
> Can I just start my branch with
>svn cp svn+ssh://[EMAIL PROTECTED]/svn/gcc/trunk \
> svn+ssh://[EMAIL PROTECTED]/svn/gcc/melt-branch

svn+ssh://[EMAIL PROTECTED]/svn/gcc/branches/melt-branch

(note /branches/), otherwise this is all you need to to.

Richard.


Re: procedure to make MELT branch on GCC SVN?

2008-02-17 Thread Manuel López-Ibáñez
On 17/02/2008, Basile STARYNKEVITCH <[EMAIL PROTECTED]> wrote:
>
> I am a bit confused about this "making a branch" thing; I thought that
> by definition it is some informal experiment, but I'm beginning to think
> that it might be much more formal... and I don't grasp all the details!

As far as I know, for an existing contributor (legal stuff sorted out
and write-privileges in subversion) there are 3 steps:

1. Announce it. I think you already did that.
2. Update http://gcc.gnu.org/svn.html#devbranches. This is easier than
it seems. http://gcc.gnu.org/cvs.html explains all but basically you
will do:

cvs -z 9 -d :ext:[EMAIL PROTECTED]:/cvs/gcc co wwwdocs
cd wwwdocs
emacs htdocs/svn.html
cvs -q diff (to check your changes)
cvs up
cvs ci htdocs/svn.html

3. Create the branch: http://gcc.gnu.org/wiki/SvnBranch

These 3 steps may be performed in any order.

Cheers,

Manuel.


RE: bootstrap broken on mingw

2008-02-17 Thread Weddington, Eric
 

> -Original Message-
> From: Ralf Wildenhues [mailto:[EMAIL PROTECTED] 
> Sent: Sunday, February 17, 2008 3:39 PM
> To: Weddington, Eric
> Cc: FX Coudert; Gerald Pfeifer; Richard Guenther; Joerg 
> Wunsch; GCC Development; Denis Chertykov; Anatoly Sokolov; 
> Lamo, Jo Inge; [EMAIL PROTECTED]
> Subject: Re: bootstrap broken on mingw
> 
> * Weddington, Eric wrote on Sun, Feb 17, 2008 at 11:08:58PM CET:
> 
> > I'm tyring out your new patch now...
> 
> Thanks.  BTW, if it works, OK for trunk and 4.2?  If that 
> does not work,
> then I will revert the breaking patch first thing tomorrow 
> morning (UTC).

Success! With your last patch. Built for host=mingw, target=avr.

Thanks for fixing this!

Eric Weddington


Re: 4.3 build failure in driver-i386.c

2008-02-17 Thread Rask Ingemann Lambertsen
On Sun, Feb 17, 2008 at 11:44:18PM +0100, Jakub Jelinek wrote:
> 
> Or we can just duplicate the 2 inline asms for __GNUC__ < 3
> or what is the oldest GCC that can handle the alternatives correctly.
> The __cpuid asm is short and the other one, while long, doesn't need
> changing too often.

   I'll try to fix it that way.

-- 
Rask Ingemann Lambertsen
Danish law requires addresses in e-mail to be logged and stored for a year


Re: bootstrap broken on mingw

2008-02-17 Thread Ralf Wildenhues
* Joseph S. Myers wrote on Sun, Feb 17, 2008 at 11:42:34PM CET:
> On Sun, 17 Feb 2008, Ralf Wildenhues wrote:
> 
> > So, here's another alternative: fix the MinGW issue only, while not
> > regressing on any of the other reported bug (famous last words):
> > One way for path translation on MinGW would be to use
> >   CMD //c echo "@set srcdir" "$(abs_srcdir)"
> 
> If the abs_srcdir value is not usable by the host tools on some platform, 
> shouldn't that be fixed in the code setting abs_srcdir, and not for an 
> individual use of abs_srcdir?  Or is it not feasible to fix the abs_srcdir 
> setting without changing Autoconf itself?

First, since Autoconf code sets abs_srcdir, a clean change of the code
should be inside Autoconf.  That could be overridden in configure.ac,
for GCC only.

This path translation is really necessary on MinGW only for programs
that have not been provided by mingw.org and thus do not live below
/bin, and that also receive paths via means other than the command line.
IIRC, the tools below /bin are compiled in a way that they don't need
path translation, and for tools placed elsewhere, the system translates
command line arguments that somehow look like absolute paths.

Blanket abs_srcdir translation for a system whose very reason of
existence is to allow to run configure scripts (unmodified?), is to be
weighed against the danger that abs_srcdir uses may not be prepared
for a C: directory prefix.

Thus my proposal to limit the translation to the places where it's
absolutely necessary.  I would further suggest to plan to remove the use
of abs_srcdir for gcc-vers.texi at all again as soon as fixed texinfo
4.11 can be required.  Should I note this alongside the Makefile rule?

OK for trunk and 4.2?

Thanks,
Ralf


Re: 4.3 build failure in driver-i386.c

2008-02-17 Thread Jakub Jelinek
On Mon, Feb 18, 2008 at 03:58:26AM +0100, Rask Ingemann Lambertsen wrote:
> On Sun, Feb 17, 2008 at 11:44:18PM +0100, Jakub Jelinek wrote:
> > 
> > Or we can just duplicate the 2 inline asms for __GNUC__ < 3
> > or what is the oldest GCC that can handle the alternatives correctly.
> > The __cpuid asm is short and the other one, while long, doesn't need
> > changing too often.
> 
>I'll try to fix it that way.

BTW, I've just tested gcc 3.2.x and 2.96-RH (the oldest I could find around)
and both handle the alternatives in asm just fine.
>From what I can see in SVN, ASSEMBLER_DIALECT is defined in config/i386.h
since the merge of the "new" i386 backend by rth in September 1999.
As 2.96-RH wasn't an official FSF release and nobody probably used it in
Intel mode anyway, I think __GNUC__ < 3 is the right test.

Jakub


Re: Optimizations documentation

2008-02-17 Thread Dorit Nuzman
Thanks a lot for tracking down / opening the relevant PRs.

about:

> > (6) loop distribution is required to break a dependence. This may
> > already be handled by Sebastian's loop-distribution pass that will
> > be incorporated in 4.4.
> > Here is an example:
> >  for (i__ = 2; i__ <= i__2; ++i__)
> > {
> >   a[i__] += c__[i__] * d__[i__];
> >   b[i__] = a[i__] + d__[i__] + b[i__ - 1];
> > }
> > This happens in the loop in line 2136.
> > Need to check if we need to open a missed optimization PR for this.>
>
> I don't think that this is a loop distribution issue. The dependence
> between the store to a[i] and the load from a[i] doesn't prevent
> vectorization.

right,

> The problematic one is between the store to b[i] and
> the load from b[i-1] in the second statement.

...which is exactly why loop distribution could make this loop (partially)
vectorizable - separating the first and second statements into separate
loops would allow vectorizing the first of the two resulting loops (which
is probably what icc does - icc reports that this loop is partially
vectrizable).

dorit


Ira Rosen/Haifa/IBM wrote on 17/02/2008 11:42:55:

> Hi,
>
> Dorit Nuzman/Haifa/IBM wrote on 14/02/2008 17:02:45:
>
> > This is an old debt: A while back Tim had sent me a detailed report
> > off line showing which C++ tests (originally from the Dongara loops
> > suite) were vectorized by current g++ or icpc, or both, as well as
> > when the vectorization by icpc required a pragma, or was partial. I
> > went over the loops that were reported to be vectorized by icc but
> > not by gcc, to see which features we are missing. There are 23 such
> > loops (out of a total of 77). They fall into the following 7
categories:
> >
> > (1) scalar evolution analysis fails with "evolution of base is
notaffine".
> > This happens in the 3 loops in lines 4267, 4204 and 511.
> > Here an example:
> >  for (i__ = 1; i__ <= i__2; ++i__)
> > {
> >   a[i__] = (b[i__] + b[im1] + b[im2]) * .333f;
> >   im2 = im1;
> >   im1 = i__;
> > }
> > Missed optimization PR to be opened.
>
> I opened PR35224.
>
> >
> > (2) Function calls inside a loop. These are calls to the math
> > functions sin/cos, which I expect would be vectorized if the proper
> > simd math lib was available.
> > This happens in the loop in line 6932.
> > I think there's an open PR for this one (at least for
> > powerpc/Altivec?) - need to look/open.
>
> There is PR6.
>
> >
> > (3) This one is the most dominant missed optimization: if-conversion
> > is failing to if-convert, most likely due to the very limited
> > handling of loads/stores (i.e. load/store hoisting/sinking is
required).
> > This happens in the 13 loops in lines 4085, 4025, 3883, 3818, 3631,
> > 355, 3503, 2942, 877, 6740, 6873, 5191, 7943.
> > There is on going work towards addressing this issue - see http:
> > //gcc.gnu.org/ml/gcc/2007-07/msg00942.html, http://gcc.gnu.
> > org/ml/gcc/2007-09/msg00308.html. (I think Victor Kaplansky is
> > currently working on this).
> >
> > (4) A scalar variable, whose address is taken outside the loop (in
> > an enclosing outer-loop) is analyzed by the data-references
> > analysis, which fails because it is invariant.
> > Here's an example:
> >   for (nl = 1; nl <= i__1; ++nl)
> > {
> >   sum = 0.f;
> >   for (i__ = 1; i__ <= i__2; ++i__)
> > {
> >   a[i__] = c__[i__] + d__[i__];
> >   b[i__] = c__[i__] + e[i__];];
> > sum += a[i__] + b[i__];];];
> > }
> >   dummy_ (ld, n, &a[1], &b[1], &c__[1], &d__[1], &e[1], &aa
[aa_offset],>
> >   &bb[bb_offset], &cc[cc_offset], &sum);
> > }
> > (Analysis of 'sum' fails with "FAILED as dr address is invariant".
> > This happens in the 2 loops in lines 5053 and 332.
> > I think there is a missed optimization PR for this one already. need
> > to look/open.
> >
>
> The related PRs are PR33245 and PR33244. Also there is a FIXME
> comment in tree-data-ref.c before the failure with "FAILED as dr
> address is invariant" error:
>
>   /* FIXME -- data dependence analysis does not work correctly
> for objects with
>  invariant addresses.  Let us fail here until the problem
isfixed.  */
>
>
> > (5) Reduction and induction that involve multiplication (i.e. 'prod
> > *= CST' or 'prod *= a[i]') are currently not supported by the
> > vectorizer. It should be trivial to add support for this feature
> > (for reduction, it shouldn't be much more than adding a case for
> > MULT_EXPR in tree-vectorizer.c:reduction_code_for_scalar_code, I
think).
> > This happens in the 2 loops in lines 4921 and 4632.
> > A missed-optimization PR to be opened.
>
> Opened PR35226.
>
> >
> > (6) loop distribution is required to break a dependence. This may
> > already be handled by Sebastian's loop-distribution pass that will
> > be incorporated in 4.4.
> > Here is an example:
> >  for (i__ = 2; i__ <= i__2; ++i__)
> > {
> > 

Re: Optimizations documentation

2008-02-17 Thread Ira Rosen


Dorit Nuzman/Haifa/IBM wrote on 18/02/2008 09:40:37:

> Thanks a lot for tracking down / opening the relevant PRs.
>
> about:
>
> > > (6) loop distribution is required to break a dependence. This may
> > > already be handled by Sebastian's loop-distribution pass that will
> > > be incorporated in 4.4.
> > > Here is an example:
> > >  for (i__ = 2; i__ <= i__2; ++i__)
> > > {
> > >   a[i__] += c__[i__] * d__[i__];
> > >   b[i__] = a[i__] + d__[i__] + b[i__ - 1];
> > > }
> > > This happens in the loop in line 2136.
> > > Need to check if we need to open a missed optimization PR for this.
> >
> > I don't think that this is a loop distribution issue. The dependence
> > between the store to a[i] and the load from a[i] doesn't prevent
> > vectorization.
>
> right,
>
> > The problematic one is between the store to b[i] and
> > the load from b[i-1] in the second statement.
>
> ...which is exactly why loop distribution could make this loop
> (partially) vectorizable - separating the first and second
> statements into separate loops would allow vectorizing the first of
> the two resulting loops (which is probably what icc does - icc
> reports that this loop is partially vectrizable).

Yes, I see now.
I applied Sebastian's patch (
http://gcc.gnu.org/ml/gcc-patches/2007-12/msg00215.html) and got
"FIXME: Loop 1 not distributed: failed to build the RDG."

Ira

>
> dorit
>