Re: libgfortran still fails to build for sh-elf

2006-11-14 Thread François-Xavier Coudert

And why would you think (twice) that the best place for reporting this
is neither the gfortran mailing-list, nor bugzilla?

I suggest that you test the following patch and report back to us:

Index: libgfortran/runtime/error.c
===
--- libgfortran/runtime/error.c (revision 118806)
+++ libgfortran/runtime/error.c (working copy)
@@ -285,7 +285,7 @@
  if (!options.locus || cmp == NULL || cmp->filename == NULL)
return;

-  st_printf ("At line %d of file %s\n", cmp->line, cmp->filename);
+  st_printf ("At line %ld of file %s\n", (long int) cmp->line, cmp->filename);
}


Re: [PATCH] COND_EXPRs in GIMPLE code and vectorizer

2006-11-14 Thread Roberto COSTA

Paolo Bonzini wrote:


a) if anyone propagates a value anywhere, she should check whether the 
propagated value is part of a comparison in a COND_EXPR (and 
explicitly fold the comparison, if so).
b) in case of a COND_EXPR, fold_ternary (...) in fold-const.c folds 
the comparison before doing anything else (currently, it doesn't do it 
at all).


I'd go for the second alternative.
It needs an amendment in your statement "fold and friends don't 
recurse on trees..." for the special case of the comparison of a 
COND_EXPR, but it avoids explicit checks and folding every time a pass 
propagates anything into a COND_EXPR.
I think this emphasizes a problem with COND_EXPRs in GIMPLE (and 
VEC_COND_EXPRs too for that matter; this poor aspect of the design has 
been there forever): that in this case you cannot assume anymore the RHS 
of a MODIFY_EXPR to be flat (the other case in which this does not hold 
is load and stores).


I'd go for the first alternative, writing a fold_gimple_cond_expr 
function that folds the comparison like this:


static tree
fold_gimple_cond_expr (tree temp)
{
 tree temp = fold (COND_EXPR_COND (cond_expr));
 if (temp == COND_EXPR_COND (cond_expr))
   return fold (cond_expr);
 else
   return fold_build3 (COND_EXPR, TREE_TYPE (cond_expr), temp,
 COND_EXPR_THEN (cond_expr), COND_EXPR_ELSE (cond_expr));
}

which can be used in fold_stmt.  Roger will surely have more to say, 
however.


(Remember that fold and friends are not GIMPLE-only.  They are used also 
by front-ends.)


Paolo


Hello,
I produced the following patch (attached), which I believe takes into 
account Roger's remark and Paolo's suggestion.

I tested it, I bootstrapped with no regressions on i686-pc-linux-gnu.
Please, tell me what do you think. I hope it is ready for approval, I'd 
really like to check these bits and pieces of work about COND_EXPRs 
before I forget about the all matter. :-)


Cheers,
Roberto


2006-11-14  Roberto Costa  <[EMAIL PROTECTED]>

* tree-vrp.c (extract_range_from_cond_expr): New.
(extract_range_from_expr): Handle COND_EXPR nodes used as expressions.
* tree-ssa-ccp.c (get_maxval_strlen): Handle COND_EXPR nodes used
as expressions.
(fold_stmt): Bug fix, avoid infinite recursion when folding COND_EXPRs.
* tree-ssa-forwprop.c (simplify_cond, forward_propagate_into_cond,
tree_ssa_forward_propagate_single_use_vars): Handle COND_EXPR nodes
used as expressions.
* tree-object-size.c (cond_expr_object_size): New.
(collect_object_sizes_for): Handle COND_EXPR nodes used as expressions.

Index: gcc/tree-vrp.c
===
--- gcc/tree-vrp.c  (revision 118652)
+++ gcc/tree-vrp.c  (working copy)
@@ -43,6 +43,7 @@ static sbitmap found_in_subgraph;
 
 /* Local functions.  */
 static int compare_values (tree val1, tree val2);
+static void vrp_meet (value_range_t *, value_range_t *);
 
 /* Location information for ASSERT_EXPRs.  Each instance of this
structure describes an ASSERT_EXPR for an SSA name.  Since a single
@@ -1862,6 +1863,40 @@ extract_range_from_unary_expr (value_ran
 }
 
 
+/* Extract range information from a conditional expression EXPR based on
+   the ranges of each of its operands and the expression code.  */
+
+static void
+extract_range_from_cond_expr (value_range_t *vr, tree expr)
+{
+  tree op0, op1;
+  value_range_t vr0 = { VR_UNDEFINED, NULL_TREE, NULL_TREE, NULL };
+  value_range_t vr1 = { VR_UNDEFINED, NULL_TREE, NULL_TREE, NULL };
+
+  /* Get value ranges for each operand.  For constant operands, create
+ a new value range with the operand to simplify processing.  */
+  op0 = COND_EXPR_THEN (expr);
+  if (TREE_CODE (op0) == SSA_NAME)
+vr0 = *(get_value_range (op0));
+  else if (is_gimple_min_invariant (op0))
+set_value_range (&vr0, VR_RANGE, op0, op0, NULL);
+  else
+set_value_range_to_varying (&vr0);
+
+  op1 = COND_EXPR_ELSE (expr);
+  if (TREE_CODE (op1) == SSA_NAME)
+vr1 = *(get_value_range (op1));
+  else if (is_gimple_min_invariant (op1))
+set_value_range (&vr1, VR_RANGE, op1, op1, NULL);
+  else
+set_value_range_to_varying (&vr1);
+
+  /* The resulting value range is the union of the operand ranges */
+  vrp_meet (&vr0, &vr1);
+  copy_value_range (vr, &vr0);
+}
+
+
 /* Extract range information from a comparison expression EXPR based
on the range of its operand and the expression code.  */
 
@@ -1903,6 +1938,8 @@ extract_range_from_expr (value_range_t *
 extract_range_from_binary_expr (vr, expr);
   else if (TREE_CODE_CLASS (code) == tcc_unary)
 extract_range_from_unary_expr (vr, expr);
+  else if (code == COND_EXPR)
+extract_range_from_cond_expr (vr, expr);
   else if (TREE_CODE_CLASS (code) == tcc_comparison)
 extract_range_from_comparison (vr, expr);
   else if (is_gimple_min_invariant (expr))
Index: gcc/tree-ssa-ccp.c

building gcc4-4.3.0-20061104/11 failure on OSX 10.3

2006-11-14 Thread Dominique Dhumieres
In http://gcc.gnu.org/ml/gcc-help/2006-11/msg00058.html I reported the 
following:

> Building snapshot gcc4-4.3.0-20061104 on OSX 10.3.9 with
> odcctools 590-20060413 using a modified Fink script (working
> with the previous snapshot) failed with:
> ...

Since the problem is still there in gcc4-4.3.0-2006 and I did not get 
any answer, I tried the following:

(1) I replaced gcc/config/darwin.h by the file from gcc4-4.3.0-20061028,
and the build was done without obvious problem.

(2) Using the gcc/config/darwin.h from gcc4-4.3.0-2006, I replaced:

#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG

by

#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG

Then the original failure:

> strip: object: .//libgcc_s.1.dylib.tmp malformed object (unknown load
> command 8)

disappeared (along with the other messages such as:

> ranlib: file: ./libgcc.a(_trampoline.o) has no symbols
> ...
> /sw/lib/odcctools/bin/nm: no name list
> ...
> /sw/lib/odcctools/bin/ld: warning libgcc/./ppc64-fp_s.o could not
> understand DWARF debug information
> /sw/lib/odcctools/bin/ld: warning libgcc/./darwin-64_s.o could not
> understand DWARF debug information
> ...

However the build failed with:

> ...
> Configuring stage 2 in ./intl
> configure: creating cache ./config.cache
> checking whether make sets $(MAKE)... yes
> checking for a BSD-compatible install... /sw/bin/ginstall -c
> checking whether NLS is requested... yes
> checking for msgfmt... /sw/bin/msgfmt
> checking for gmsgfmt... /sw/bin/msgfmt
> checking for xgettext... /sw/bin/xgettext
> checking for msgmerge... /sw/bin/msgmerge
> checking for powerpc-apple-darwin7-gcc...
> /sw/src/fink.build/gcc4-4.3.0-20061115/darwin_objdir/./prev-gcc/xgcc
> -B/sw/src/fink.build/gcc4-4.3.0-20061115/darwin_objdir/./prev-gcc/
> -B/sw/lib/gcc4/powerpc-apple-darwin7/bin/
> configure: error: C compiler cannot create executables
> See `config.log' for more details.
> make[2]: *** [configure-stage2-intl] Error 77
> make[1]: *** [stage2-bubble] Error 2
> make: *** [all] Error 2
> checking for C compiler default output file name...  ### execution of
> /var/tmp/tmp.1.iDjVLN failed, exit code 2

Using

#define CPP_SPEC "%{static:%{!dynamic:-D__STATIC__}}%{!static:-D__DYNAMIC__}" 

instead of

#define CPP_SPEC "%{static:%{!dynamic:-D__STATIC__}}%{!static:-D__DYNAMIC__}" \
  " %{pthread:-D_REENTRANT}"
  
or removing

#define NO_IMPLICIT_EXTERN_C

did not help (same failure).

Any idea about what's wrong with the new gcc/config/darwin.h when used
with OSX 10.3?

TIA

Dominique d'Humieres


Re: make clean no longer works properly?

2006-11-14 Thread Paolo Bonzini



Now I get:

make[1]: *** No rule to make target `clean'.  Stop.
make: *** [clean-stage4-gcc] Error 2


It turns out I had a fix already approved, but never checked in.  Fixed 
(and my apologies).


Paolo


Re: Has anyone seen mainline Fortran regression with SPEC CPU 2000/2006?

2006-11-14 Thread Steve Kargl
On Tue, Nov 14, 2006 at 09:43:20AM -0500, David Edelsohn wrote:
> > Steve Kargl writes:
> 
> Steve> I have not seen this failure, but that may be expected
> Steve> since SPEC CPU 2000 isn't freely available.
> 
>   No failure should be expected.  It is a bug and a regression and
> should be fixed, with help of users who have access to SPEC CPU2000.
> 

Read want I wrote.  I did not see this failure.  It
may be expected that I did not see this failure because
this failure appears to occur while compiling code that
is unavailable.  I suspect that none of the people,
who actively work on gfortran, saw this failure.

Go back and read HJ's original email.  Other than stating
a regression has occurred, his email is content free.  It
is difficult to fix, or even investigate, a regression 
when one has no means to reproduce it.

-- 
Steve


Do not use autoconf 2.60 yet

2006-11-14 Thread Joseph S. Myers
On Thu, 9 Nov 2006, [EMAIL PROTECTED] wrote:

> Author: echristo
> Date: Thu Nov  9 23:56:57 2006
> New Revision: 118633
> 
> URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=118633
> Log:
> 2006-11-09  Eric Christopher  <[EMAIL PROTECTED]>
> 
> PR bootstrap/26892
> PR bootstrap/27814
> PR other/28994
> * configure.ac: Match powerpc*-*-darwin* for powerpc darwin checks.
> * config.gcc (powerpc64-*-darwin*): New target.
> * config.host: Ditto.
> * config/rs6000/darwin64.h: New file.
> * config/rs6000/x-darwin64: Ditto.
> * config/rs6000/host-ppc64-darwin.c: Ditto.

You appear to have regenerated configure, on both mainline and 4.2 branch, 
with autoconf 2.60.  Could you please regenerate it with 2.59 in both 
places?  2.59, exactly, is the version documented in install.texi.  In 
order to avoid random churn with versions going back and forth and 
different versions in different directories with no good reason, we must 
have a transition plan before changing the version used (and keep 
install.texi up to date throughout the transition with what version is 
used in what directory), and we have no such plan; certainly such changes 
are inappropriate on release branches.  The changes to directory variables 
and new configure options in autoconf 2.60 make such a transition plan 
especially important (for example, we need to work out at what point the 
local configure options --with-datarootdir --with-docdir --with-htmldir 
get removed in each directory in favour of the standard options added in 
2.60).  2.60 also needs automake 1.10 (and vice versa).

-- 
Joseph S. Myers
[EMAIL PROTECTED]


Re: Threading the compiler

2006-11-14 Thread Robert Dewar

Geert Bosch wrote:


Given that CPU usage is at 100% now for most jobs, such as
bootstrapping GCC, there is not much room for any improvement
through threading.


Geert, I find this a bit incomprehensible, the whole point
of threading is to increase CPU availability by using
multiple cores.


Even in the best case, large parts of the
compilation will still be serial.
In the non-optimizing case, which is so important for the
compile-debug-edit cycle, almost no parallelism will be possible.


Well that is a completely different issue


Re: libgfortran still fails to build for sh-elf

2006-11-14 Thread François-Xavier Coudert

I suggest that you test the following patch and report back to us:


I got the patch wrong (it's not a real printf function we have there):

Index: libgfortran/runtime/error.c
===
--- libgfortran/runtime/error.c (revision 118806)
+++ libgfortran/runtime/error.c (working copy)
@@ -285,7 +285,7 @@
  if (!options.locus || cmp == NULL || cmp->filename == NULL)
return;

-  st_printf ("At line %d of file %s\n", cmp->line, cmp->filename);
+  st_printf ("At line %d of file %s\n", (int) cmp->line, cmp->filename);
}


Re: Extending GCC with pragma directive

2006-11-14 Thread Ferad Zyulkyarov

Thanks a lot. This is going to be a good starting point.

Ferad Zyulkyarov

On 11/13/06, Sebastian Pop <[EMAIL PROTECTED]> wrote:

On 11/13/06, Ferad Zyulkyarov <[EMAIL PROTECTED]> wrote:
> Hi,
>
> May you point me out some sources about writing new #pragma directives
> in GCC. I looked at the internet for something to start from but
> unfortunately I could not find anything.

google("site:gcc.gnu.org inurl:gcc-patches pragma")
http://gcc.gnu.org/ml/gcc-patches/2005-02/msg01560.html
[...]




--
Ferad Zyulkyarov
Barcelona Supercomputing Center
c/ Gran Capita 2-4, Nexus I, 204
08034 Barcelona - SPAIN
e-mail: [EMAIL PROTECTED]
tel: +34 934054294
fax: +34 934137721


Re: Has anyone seen mainline Fortran regression with SPEC CPU 2000/2006?

2006-11-14 Thread David Edelsohn
> Steve Kargl writes:

Steve> I have not seen this failure, but that may be expected
Steve> since SPEC CPU 2000 isn't freely available.

No failure should be expected.  It is a bug and a regression and
should be fixed, with help of users who have access to SPEC CPU2000.

David



Re: bootstrap failure on arm

2006-11-14 Thread Rafael Espíndola

Compiling with --disable-bootstrap and using the resulting compiler to
bootstrap gcc solved the problem.

Rafael


Re: Has anyone seen mainline Fortran regression with SPEC CPU 2000/2006?

2006-11-14 Thread H. J. Lu
On Tue, Nov 14, 2006 at 09:43:20AM -0500, David Edelsohn wrote:
> > Steve Kargl writes:
> 
> Steve> I have not seen this failure, but that may be expected
> Steve> since SPEC CPU 2000 isn't freely available.
> 
>   No failure should be expected.  It is a bug and a regression and
> should be fixed, with help of users who have access to SPEC CPU2000.
> 

It was a pilot error for SPEC CPU2000 on Linux/x86-64. I am looking
into SPEC CPU 2006 failure on Linux/x86.


H.J.


Re: Threading the compiler

2006-11-14 Thread Bill Wendling

On Nov 10, 2006, at 9:08 PM, Geert Bosch wrote:


Most people aren't waiting for compilation of single files.
If they do, it is because a single compilation unit requires
parsing/compilation of too many unchanging files, in which case
the primary concern is avoiding redoing useless compilation.

The common case is that people just don't use the -j feature
of make because
  1) they don't know about it
  2) their IDE doesn't know about it
  3) they got burned by bad Makefiles
  4) it's just too much typing


I'll mention a case where compilation was wickedly slow even
when using -j#. At The MathWorks, the system could take >45 minutes
to compile. (This was partially due to the fact that the files were
located on an NFS mounted drive. But also because C++ compilation
is way slower than C compilation.) Experiments with distributed
make showed promise.

It would be interesting to see if parallelizing the compiler
(instead of just using 'make -j#') will give us an overall gain.
Though it also seems fruitful to pursue some of the other
optimizations you mentioned.

-bw



gcc-4.2-20061114 is now available

2006-11-14 Thread gccadmin
Snapshot gcc-4.2-20061114 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.2-20061114/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 4.2 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_2-branch 
revision 118820

You'll find:

gcc-4.2-20061114.tar.bz2  Complete GCC (includes all of below)

gcc-core-4.2-20061114.tar.bz2 C front end and core compiler

gcc-ada-4.2-20061114.tar.bz2  Ada front end and runtime

gcc-fortran-4.2-20061114.tar.bz2  Fortran front end and runtime

gcc-g++-4.2-20061114.tar.bz2  C++ front end and runtime

gcc-java-4.2-20061114.tar.bz2 Java front end and runtime

gcc-objc-4.2-20061114.tar.bz2 Objective-C front end and runtime

gcc-testsuite-4.2-20061114.tar.bz2The GCC testsuite

Diffs from 4.2-20061107 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-4.2
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: Threading the compiler

2006-11-14 Thread Geert Bosch


On Nov 14, 2006, at 12:49, Bill Wendling wrote:

I'll mention a case where compilation was wickedly slow even
when using -j#. At The MathWorks, the system could take >45 minutes
to compile. (This was partially due to the fact that the files were
located on an NFS mounted drive. But also because C++ compilation
is way slower than C compilation.) Experiments with distributed
make showed promise.


When using -j#, with enough parellel processes and assuming  
sufficient memory,

you should be able to reach the point where you're either limited
by the NFS server or by CPU availability. No amount of threading in the
compiler will remove either bottleneck.

  -Geert


Host toolchain for building latest gcc release (4.1.1)

2006-11-14 Thread Nikolaos Kavvadias
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1
 
Howdy

i'm trying to build gcc-4.1.1 (of release status) on my x86/Linux (it
is an RH 9.0).

I have tried the following two setups:

a) gcc-3.2.2 (as RH 9.0 is shipped with), glibc-2.3.2 (the same)
b) gcc-3.4.3 (custom built), glibc as above.

It seems that i'm getting errors beginning with the following file:
top-gcc-dir/libssp/ssp.c

The errors are clearly due to changes in the glibc (function protos
not visible etc).

Does anyone have a good example of host configuration (i.e. which gcc,
glibc most importantly) to use for
building gcc-4.1.1. This question expands to all current gcc that will
get gcc-4.2 release status in a few months.

I would like to thank you in advance

Nikolaos Kavvadias
 
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.0 (MingW32)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
 
iD8DBQFFWgroMPiy0tCWlz4RAld1AJ9LlsWJXttO05zLJI+tjwrZA5ZadwCgqMpz
iQSAfaz301TVJAmjG3BEBhI=
=PAVP
-END PGP SIGNATURE-



Re: Threading the compiler

2006-11-14 Thread Ian Lance Taylor
"Dave Korn" <[EMAIL PROTECTED]> writes:

> > The main place where threading may make sense, especially
> > with LTO, is the linker. This is a longer lived task, and
> > is the last step of compilation, where no other parellel
> > processes are active. Moreover, linking tends to be I/O
> > intensive, so a number of threads will likely be blocked
> > for I/O.
> 
>   I'm not really sure how this would play with SMP (as opposed to threading).
> I don't see why you think threading could be particularly useful in the
> linker?  It's the pipeline of compiler optimisation passes that looks like an
> obvious candidate for threading to me.

It's irrelevant to the main discussion here, but in fact there is a
fair amount of possible threading in the linker proper, quite apart
from LTO.  The linker spends a lot of time reading large files, and
the I/O wait can be parallelized.  And the linker spends a reasonable
amount of time computing relocations, which can be parallelized such
that the relocations for each input file are computed independently.

Ian


Re: Has anyone seen mainline Fortran regression with SPEC CPU 2000/2006?

2006-11-14 Thread Brooks Moses

David Edelsohn wrote:

Steve Kargl writes:

Steve> I have not seen this failure, but that may be expected
Steve> since SPEC CPU 2000 isn't freely available.

No failure should be expected.  It is a bug and a regression and
should be fixed, with help of users who have access to SPEC CPU2000.


There's been a minor parsing error -- Steve merely meant that the fact 
that he hadn't seen the error should be expected, not that the error 
itself should be.  :)


- Brooks




RE: Threading the compiler

2006-11-14 Thread Dave Korn
On 14 November 2006 18:30, Ian Lance Taylor wrote:

> "Dave Korn" <[EMAIL PROTECTED]> writes:
> 
>>> The main place where threading may make sense, especially
>>> with LTO, is the linker. This is a longer lived task, and
>>> is the last step of compilation, where no other parellel
>>> processes are active. Moreover, linking tends to be I/O
>>> intensive, so a number of threads will likely be blocked
>>> for I/O.
>> 
>>   I'm not really sure how this would play with SMP (as opposed to
>> threading). I don't see why you think threading could be particularly
>> useful in the linker?  It's the pipeline of compiler optimisation passes
>> that looks like an obvious candidate for threading to me.
> 
> It's irrelevant to the main discussion here, but in fact there is a
> fair amount of possible threading in the linker proper, quite apart
> from LTO.  The linker spends a lot of time reading large files, and
> the I/O wait can be parallelized.

  That's not even thread-worthy, that just required bog-standard AIO
techniques.  Um, /are/ there suitably portable AIO techniques?  I guess the
answer is going to be "Yeah, spawn a posix thread and make an ordinary
synchronous f* io call in there"!  Heh.

>  And the linker spends a reasonable
> amount of time computing relocations, which can be parallelized such
> that the relocations for each input file are computed independently.

  Ooh yes, big win to be had there.

cheers,
  DaveK
-- 
Can't think of a witty .sigline today



RE: Threading the compiler

2006-11-14 Thread Dave Korn
On 14 November 2006 15:38, Robert Dewar wrote:

> Geert Bosch wrote:
> 
>> Given that CPU usage is at 100% now for most jobs, such as
>> bootstrapping GCC, there is not much room for any improvement
>> through threading.
> 
> Geert, I find this a bit incomprehensible, the whole point
> of threading is to increase CPU availability by using
> multiple cores.

  Geert's followup explained this seeming anomaly: he means that the crude
high-level granularity of "make -j" is enough to keep all cpus busy at 100%,
and I'm fairly persuaded by the arguments that, at the moment, that's
sufficient in most circumstances to get 99% of the benefit there to be had.

  I suspect that the balance will tip when the number of cores starts to get
huge, and that at some time in the future we would benefit of the extra
parallelizability we could get from reducing the effective scheduling
granularity by threading the compiler.


cheers,
  DaveK
-- 
Can't think of a witty .sigline today



Re: Threading the compiler

2006-11-14 Thread Ian Lance Taylor
"Dave Korn" <[EMAIL PROTECTED]> writes:

> > It's irrelevant to the main discussion here, but in fact there is a
> > fair amount of possible threading in the linker proper, quite apart
> > from LTO.  The linker spends a lot of time reading large files, and
> > the I/O wait can be parallelized.
> 
>   That's not even thread-worthy, that just required bog-standard AIO
> techniques.  Um, /are/ there suitably portable AIO techniques?  I guess the
> answer is going to be "Yeah, spawn a posix thread and make an ordinary
> synchronous f* io call in there"!  Heh.

There is a POSIX standard: aio_read and friends.  However, on
GNU/Linux, aio_read just does the read in a different thread anyhow.
So aio_read and friends are just a slightly simpler threading
interface.

Ian


Re: Do not use autoconf 2.60 yet

2006-11-14 Thread Eric Christopher


You appear to have regenerated configure, on both mainline and 4.2  
branch,

with autoconf 2.60.  Could you please regenerate it with 2.59 in both
places?


Sure, I'll have to dig it up somewhere. It appears to be the default  
on FC6, I'll use that.


-eric


Re: Threading the compiler

2006-11-14 Thread Joe Buck
On Tue, Nov 14, 2006 at 07:15:19PM -, Dave Korn wrote:
>   Geert's followup explained this seeming anomaly: he means that the crude
> high-level granularity of "make -j" is enough to keep all cpus busy at 100%,
> and I'm fairly persuaded by the arguments that, at the moment, that's
> sufficient in most circumstances to get 99% of the benefit there to be had.

Currently the serial step is linking, and for the typical builds I do it
is the bottleneck as the c/c++ -> o step is highly parallelizable.  Figure
out how to make the linker parallel, and then we can talk.


Re: Has anyone seen mainline Fortran regression with SPEC CPU 2000/2006?

2006-11-14 Thread H. J. Lu
On Tue, Nov 14, 2006 at 09:17:49AM -0800, H. J. Lu wrote:
> On Tue, Nov 14, 2006 at 09:43:20AM -0500, David Edelsohn wrote:
> > > Steve Kargl writes:
> > 
> > Steve> I have not seen this failure, but that may be expected
> > Steve> since SPEC CPU 2000 isn't freely available.
> > 
> > No failure should be expected.  It is a bug and a regression and
> > should be fixed, with help of users who have access to SPEC CPU2000.
> > 
> 
> It was a pilot error for SPEC CPU2000 on Linux/x86-64. I am looking
> into SPEC CPU 2006 failure on Linux/x86.
> 

revision 118764 seems with SPEC CPU 2K/2006 on both Linux/x86-64 and
Linux/x86.


H.J.


Re: Has anyone seen mainline Fortran regression with SPEC CPU 2000/2006?

2006-11-14 Thread Brooks Moses

H. J. Lu wrote:

On Tue, Nov 14, 2006 at 09:17:49AM -0800, H. J. Lu wrote:

On Tue, Nov 14, 2006 at 09:43:20AM -0500, David Edelsohn wrote:

No failure should be expected.  It is a bug and a regression and
should be fixed, with help of users who have access to SPEC CPU2000.


It was a pilot error for SPEC CPU2000 on Linux/x86-64. I am looking
into SPEC CPU 2006 failure on Linux/x86.


revision 118764 seems with SPEC CPU 2K/2006 on both Linux/x86-64 and
Linux/x86.


Was there an "okay" missing from that sentence, or is there still a problem?

- Brooks



Re: Do not use autoconf 2.60 yet

2006-11-14 Thread Eric Christopher


On Nov 14, 2006, at 11:32 AM, Eric Christopher wrote:



You appear to have regenerated configure, on both mainline and 4.2  
branch,

with autoconf 2.60.  Could you please regenerate it with 2.59 in both
places?


Sure, I'll have to dig it up somewhere. It appears to be the default  
on FC6, I'll use that.


Done, sorry about that.

-eric


Re: Do not use autoconf 2.60 yet

2006-11-14 Thread Joseph S. Myers
On Tue, 14 Nov 2006, Eric Christopher wrote:

> Done, sorry about that.

Thanks.  Hopefully we can get a planned transition done (for gcc and src) 
before 4.3.  (I suspect the first step will be the move of toplevel to 
2.59; I'm not sure what's holding that up now all subdirectories of gcc 
and src have been moved.)

-- 
Joseph S. Myers
[EMAIL PROTECTED]


Re: building gcc4-4.3.0-20061104/11 failure on OSX 10.3

2006-11-14 Thread Geoffrey Keating


On 14/11/2006, at 3:13 AM, Dominique Dhumieres wrote:


In http://gcc.gnu.org/ml/gcc-help/2006-11/msg00058.html I reported the
following:


Building snapshot gcc4-4.3.0-20061104 on OSX 10.3.9 with
odcctools 590-20060413 using a modified Fink script (working
with the previous snapshot) failed with:
...


Since the problem is still there in gcc4-4.3.0-2006 and I did  
not get

any answer, I tried the following:

(1) I replaced gcc/config/darwin.h by the file from  
gcc4-4.3.0-20061028,

and the build was done without obvious problem.

(2) Using the gcc/config/darwin.h from gcc4-4.3.0-2006, I  
replaced:


#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG

by

#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG

Then the original failure:


strip: object: .//libgcc_s.1.dylib.tmp malformed object (unknown load
command 8)


disappeared (along with the other messages such as:


ranlib: file: ./libgcc.a(_trampoline.o) has no symbols
...
/sw/lib/odcctools/bin/nm: no name list
...
/sw/lib/odcctools/bin/ld: warning libgcc/./ppc64-fp_s.o could not
understand DWARF debug information
/sw/lib/odcctools/bin/ld: warning libgcc/./darwin-64_s.o could not
understand DWARF debug information
...


However the build failed with:


...
Configuring stage 2 in ./intl
configure: creating cache ./config.cache
checking whether make sets $(MAKE)... yes
checking for a BSD-compatible install... /sw/bin/ginstall -c
checking whether NLS is requested... yes
checking for msgfmt... /sw/bin/msgfmt
checking for gmsgfmt... /sw/bin/msgfmt
checking for xgettext... /sw/bin/xgettext
checking for msgmerge... /sw/bin/msgmerge
checking for powerpc-apple-darwin7-gcc...
/sw/src/fink.build/gcc4-4.3.0-20061115/darwin_objdir/./prev-gcc/xgcc
-B/sw/src/fink.build/gcc4-4.3.0-20061115/darwin_objdir/./prev-gcc/
-B/sw/lib/gcc4/powerpc-apple-darwin7/bin/
configure: error: C compiler cannot create executables
See `config.log' for more details.
make[2]: *** [configure-stage2-intl] Error 77
make[1]: *** [stage2-bubble] Error 2
make: *** [all] Error 2
checking for C compiler default output file name...  ### execution of
/var/tmp/tmp.1.iDjVLN failed, exit code 2


Using

#define CPP_SPEC "%{static:%{!dynamic:-D__STATIC__}}%{!static:- 
D__DYNAMIC__}"


instead of

#define CPP_SPEC "%{static:%{!dynamic:-D__STATIC__}}%{!static:- 
D__DYNAMIC__}" \

  " %{pthread:-D_REENTRANT}"

or removing

#define NO_IMPLICIT_EXTERN_C

did not help (same failure).

Any idea about what's wrong with the new gcc/config/darwin.h when used
with OSX 10.3?


Most likely your problem is that you're using cctools that are too  
old.  Are you using cctools-622.3 or later?  Generally, every time  
Apple releases a new cctools, you need to upgrade to it.


You'll also need /usr/bin/dsymutil.  You can fake this by symlinking  
it to /bin/true.


Mike was considering simply declaring that GCC 4.3 won't work on Mac  
OS 10.3.  10.3 is quite old now, and there will be very few users by  
the time that 4.3 is released.

smime.p7s
Description: S/MIME cryptographic signature


Re: Has anyone seen mainline Fortran regression with SPEC CPU 2000/2006?

2006-11-14 Thread H. J. Lu
On Tue, Nov 14, 2006 at 11:56:01AM -0800, Brooks Moses wrote:
> H. J. Lu wrote:
> >On Tue, Nov 14, 2006 at 09:17:49AM -0800, H. J. Lu wrote:
> >>On Tue, Nov 14, 2006 at 09:43:20AM -0500, David Edelsohn wrote:
> >>>   No failure should be expected.  It is a bug and a regression and
> >>>should be fixed, with help of users who have access to SPEC CPU2000.
> >>>
> >>It was a pilot error for SPEC CPU2000 on Linux/x86-64. I am looking
> >>into SPEC CPU 2006 failure on Linux/x86.
> >
> >revision 118764 seems with SPEC CPU 2K/2006 on both Linux/x86-64 and
> >Linux/x86.
> 
> Was there an "okay" missing from that sentence, or is there still a problem?
> 

Ooops, revision 118764 seems OK. I am verifying it now.


H.J.


Re: Do not use autoconf 2.60 yet

2006-11-14 Thread Daniel Jacobowitz
On Tue, Nov 14, 2006 at 08:05:59PM +, Joseph S. Myers wrote:
> On Tue, 14 Nov 2006, Eric Christopher wrote:
> 
> > Done, sorry about that.
> 
> Thanks.  Hopefully we can get a planned transition done (for gcc and src) 
> before 4.3.  (I suspect the first step will be the move of toplevel to 
> 2.59; I'm not sure what's holding that up now all subdirectories of gcc 
> and src have been moved.)

At this point I believe there are no more blockers.  Steve Ellcey would
be the person to ask.

-- 
Daniel Jacobowitz
CodeSourcery


Re: libffi on Macintel?

2006-11-14 Thread Mike Stump

On Nov 12, 2006, at 3:21 PM, Jack Howarth wrote:
Can anyone confirm that the libffi shared libraries are properly  
built in gcc 4.2 branch (or trunk)


No, they aren't built:

The following languages will be built: c,c++,java
*** This configuration is not supported in the following subdirectories:
 target-libmudflap target-libffi target-zlib target-libjava  
target-libada gnattools target-libgfortran target-libobjc target-boehm- 
gc

(Any other directories should still work fine.)

:-(

This is rather disturbing since I assumed that Sandro's patches were  
all properly checked into gcc trunk before gcc 4.2 branched.


:-(


no one seems to be submitting testresults for i386-apple-darwin8


http://gcc.gnu.org/ml/gcc-testresults/2006-11/msg00621.html


cleaning

2006-11-14 Thread Mike Stump

While trying to clean, I noticed that

  $ make -k -j6 clean

does:

make[5]: *** [insn-recog.o] Interrupt
make[5]: *** [s-attrtab] Interrupt
make[4]: *** [all-stage1-gcc] Interrupt
make[3]: *** [stage1-bubble] Interrupt
Reaping losing child 0x00383f20 PID 18728
make[2]: *** [all] Interrupt
Removing child 0x00383f20 PID 18728 from chain.
make[1]: *** [stage1-start] Interrupt
make: *** [clean-stage1-libiberty] Interrupt

:-(  Building the entire compile to clean it isn't reasonable, honest.

Comes from:

maybe-clean-stage1-libiberty: clean-stage1-libiberty
clean-stage1: clean-stage1-libiberty
clean-stage1-libiberty:
@[ -f $(HOST_SUBDIR)/libiberty/Makefile ] || [ -f $ 
(HOST_SUBDIR)/stage1-libiberty/Makefile ] \

  || exit 0 ; \
[ $(current_stage) = stage1 ] || $(MAKE) stage1-start; \
cd $(HOST_SUBDIR)/libiberty && \
$(MAKE) $(FLAGS_TO_PASS)  \
CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$ 
(STAGE1_CFLAGS)"  clean


where we do stage1-start.


Also, now make clean isn't reliable:

$ make -k clean
rm -f stage_current
mv: rename stage1-libdecnumber to prev-libdecnumber/stage1- 
libdecnumber: Directory not empty

make[1]: *** [stage2-start] Error 1
make[1]: *** No rule to make target `clean'.
make: *** [clean-stage2-gcc] Error 2
rm -f *.a TEMP errs core *.o *~ \#* TAGS *.E *.log
make: Target `clean' not remade because of errors.
morgan $ echo $?
2

If I just configure and then do a make clean, it doesn't work either:

rm -f *.a TEMP errs core *.o *~ \#* TAGS *.E *.log
cat: stage_last: No such file or directory
make: invalid option -- a
Usage: make [options] [target] ...
Options:
  -b, -m  Ignored for compatibility.
[ ... ]
make: Target `clean' not remade because of errors.


:-(




Re: Has anyone seen mainline Fortran regression with SPEC CPU 2000/2006?

2006-11-14 Thread H. J. Lu
On Tue, Nov 14, 2006 at 12:03:39PM -0800, H. J. Lu wrote:
> On Tue, Nov 14, 2006 at 11:56:01AM -0800, Brooks Moses wrote:
> > H. J. Lu wrote:
> > >On Tue, Nov 14, 2006 at 09:17:49AM -0800, H. J. Lu wrote:
> > >>On Tue, Nov 14, 2006 at 09:43:20AM -0500, David Edelsohn wrote:
> > >>> No failure should be expected.  It is a bug and a regression and
> > >>>should be fixed, with help of users who have access to SPEC CPU2000.
> > >>>
> > >>It was a pilot error for SPEC CPU2000 on Linux/x86-64. I am looking
> > >>into SPEC CPU 2006 failure on Linux/x86.
> > >
> > >revision 118764 seems with SPEC CPU 2K/2006 on both Linux/x86-64 and
> > >Linux/x86.
> > 
> > Was there an "okay" missing from that sentence, or is there still a problem?
> > 
> 
> Ooops, revision 118764 seems OK. I am verifying it now.

I was wrong. revision 118764 with -O2 still leads to segfault in wrf in
SPEC CPU 2006 on Linux/x86. revision 118353 is OK. Linux/x86-64 is
OK. I am looking into it now.


H.J.


vectorizer data dependency graph

2006-11-14 Thread Sashan Govender

Hi

I was looking at the vectorizer
(http://gcc.gnu.org/projects/tree-ssa/vectorization.html) and noticed
that in section 6 it says that there is no data dependence graph
implemented. Also had a search throught the mailing list archives and
noticed that although ddg.c exists its not used much?
(http://gcc.gnu.org/ml/gcc/2005-09/msg00661.html). A grep for
creat_ddg shows it's used in modulo-sched.c. So is this fertile ground
for something to be implemented? Is it worth implementing a ddg graph
for the vectorizer?

Thanks


RE: Threading the compiler

2006-11-14 Thread Dave Korn
On 14 November 2006 19:40, Joe Buck wrote:

> On Tue, Nov 14, 2006 at 07:15:19PM -, Dave Korn wrote:
>>   Geert's followup explained this seeming anomaly: he means that the crude
>> high-level granularity of "make -j" is enough to keep all cpus busy at
>> 100%, and I'm fairly persuaded by the arguments that, at the moment, that's
>> sufficient in most circumstances to get 99% of the benefit there to be had.
> 
> Currently the serial step is linking, and for the typical builds I do it
> is the bottleneck as the c/c++ -> o step is highly parallelizable.  Figure
> out how to make the linker parallel, and then we can talk.

  I was only talking in terms of the benefit to be had vs. threading the
linker!

cheers,
  DaveK
-- 
Can't think of a witty .sigline today



Re: vectorizer data dependency graph

2006-11-14 Thread Daniel Berlin

On 11/14/06, Sashan Govender <[EMAIL PROTECTED]> wrote:

Hi

I was looking at the vectorizer
(http://gcc.gnu.org/projects/tree-ssa/vectorization.html) and noticed
that in section 6 it says that there is no data dependence graph
implemented. Also had a search throught the mailing list archives and
noticed that although ddg.c exists its not used much?
(http://gcc.gnu.org/ml/gcc/2005-09/msg00661.html). A grep for
creat_ddg shows it's used in modulo-sched.c. So is this fertile ground
for something to be implemented? Is it worth implementing a ddg graph
for the vectorizer?


What exactly do you hope to gain by building a ddg?
If you have some algorithm that can take advantage of a ddg, sure, build one.



Thanks



Re: vectorizer data dependency graph

2006-11-14 Thread Sashan Govender

On 11/15/06, Daniel Berlin <[EMAIL PROTECTED]> wrote:

On 11/14/06, Sashan Govender <[EMAIL PROTECTED]> wrote:
> Hi
>
> I was looking at the vectorizer
> (http://gcc.gnu.org/projects/tree-ssa/vectorization.html) and noticed
> that in section 6 it says that there is no data dependence graph
> implemented. Also had a search throught the mailing list archives and
> noticed that although ddg.c exists its not used much?
> (http://gcc.gnu.org/ml/gcc/2005-09/msg00661.html). A grep for
> creat_ddg shows it's used in modulo-sched.c. So is this fertile ground
> for something to be implemented? Is it worth implementing a ddg graph
> for the vectorizer?

What exactly do you hope to gain by building a ddg?
If you have some algorithm that can take advantage of a ddg, sure, build one.



No algorithm in particular - I thought someone else might find it
useful (which is why I asked).


Re: vectorizer data dependency graph

2006-11-14 Thread Sebastian Pop

On 11/15/06, Sashan Govender <[EMAIL PROTECTED]> wrote:

On 11/15/06, Daniel Berlin <[EMAIL PROTECTED]> wrote:
> On 11/14/06, Sashan Govender <[EMAIL PROTECTED]> wrote:
> > Hi
> >
> > I was looking at the vectorizer
> > (http://gcc.gnu.org/projects/tree-ssa/vectorization.html) and noticed
> > that in section 6 it says that there is no data dependence graph
> > implemented. Also had a search throught the mailing list archives and
> > noticed that although ddg.c exists its not used much?
> > (http://gcc.gnu.org/ml/gcc/2005-09/msg00661.html). A grep for
> > creat_ddg shows it's used in modulo-sched.c. So is this fertile ground
> > for something to be implemented? Is it worth implementing a ddg graph
> > for the vectorizer?
>
> What exactly do you hope to gain by building a ddg?
> If you have some algorithm that can take advantage of a ddg, sure, build one.
>

No algorithm in particular - I thought someone else might find it
useful (which is why I asked).



There is a ddg in this patch if somebody wants the classic Allen&Kennedy
way to look at the dependences:
http://gcc.gnu.org/wiki/OptimizationCourse?action=AttachFile&do=get&target=loop-distribution-patch-against-gcc-4.1.0-release.patch

Sebastian