gcc-trunk bootstrap failure in libjava on i686-pc-cygwin

2009-07-07 Thread Rainer Emrich
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

gcc-trunk revision 149297 configured with
../../../../src/gcc-4.5.0/configure
- --prefix=/opt/devel/gnu/gcc/gcc-4.5.0/i686-pc-cygwin
- --with-gmp=/opt/devel/gnu/gcc/gcc-4.5.0/i686-pc-cygwin
- --with-mpfr=/opt/devel/gnu/gcc/gcc-4.5.0/i686-pc-cygwin
- --with-mpc=/opt/devel/gnu/gcc/gcc-4.5.0/i686-pc-cygwin
- --with-ppl=/opt/devel/gnu/gcc/gcc-4.5.0/i686-pc-cygwin
- --with-cloog=/opt/devel/gnu/gcc/gcc-4.5.0/i686-pc-cygwin --with-gnu-as
- --with-as=/opt/devel/gnu/gcc/gcc-4.5.0/i686-pc-cygwin/bin/as.exe --with-gnu-ld
- --with-ld=/opt/devel/gnu/gcc/gcc-4.5.0/i686-pc-cygwin/bin/ld.exe
- --enable-bootstrap --enable-checking=release --enable-threads=posix
- --disable-werror --enable-languages=c,ada,c++,fortran,java,objc,obj-c++
- --enable-libgomp --with-host-libstdcxx=-lstdc++

shows link failure "undefined reference to `_dlmmap'" and "undefined reference
to `_dlmunmap'"


/bin/sh ./libtool --tag=CXX --mode=link
/home/rainer/software/build/i686-pc-cygwin/gcc-4.5.0/gcc/./gcc/xgcc
- -shared-libgcc 
-B/home/rainer/software/build/i686-pc-cygwin/gcc-4.5.0/gcc/./gcc
- -nostdinc++
-
-L/home/rainer/software/build/i686-pc-cygwin/gcc-4.5.0/gcc/i686-pc-cygwin/libstdc++-v3/src
-
-L/home/rainer/software/build/i686-pc-cygwin/gcc-4.5.0/gcc/i686-pc-cygwin/libstdc++-v3/src/.libs
- -B/opt/devel/gnu/gcc/gcc-4.5.0/i686-pc-cygwin/i686-pc-cygwin/bin/
- -B/opt/devel/gnu/gcc/gcc-4.5.0/i686-pc-cygwin/i686-pc-cygwin/lib/ -isystem
/opt/devel/gnu/gcc/gcc-4.5.0/i686-pc-cygwin/i686-pc-cygwin/include -isystem
/opt/devel/gnu/gcc/gcc-4.5.0/i686-pc-cygwin/i686-pc-cygwin/sys-include
- 
-L/home/rainer/software/build/i686-pc-cygwin/gcc-4.5.0/gcc/i686-pc-cygwin/libjava
- -ffloat-store -fomit-frame-pointer -Usun -g -O2
- -Wl,--version-script=../../../../../../src/gcc-4.5.0/libjava/libgcj.ver  -o
libgcj-tools.la -rpath /opt/devel/gnu/gcc/gcc-4.5.0/i686-pc-cygwin/lib -rpath
/opt/devel/gnu/gcc/gcc-4.5.0/i686-pc-cygwin/lib -version-info `grep -v '^#'
../../../../../../src/gcc-4.5.0/libjava/libtool-version`
- -Wl,-Bsymbolic-functions classpath/tools/libgcj_tools_la-tools.lo
libtool: link: warning: undefined symbols not allowed in i686-pc-cygwin shared
libraries
libtool: link: /opt/devel/gnu/gcc/gcc-4.5.0/i686-pc-cygwin/i686-pc-cygwin/bin/ar
rc .libs/libgcj-tools.a  classpath/tools/libgcj_tools_la-tools.o
libtool: link:
/opt/devel/gnu/gcc/gcc-4.5.0/i686-pc-cygwin/i686-pc-cygwin/bin/ranlib
.libs/libgcj-tools.a
libtool: link: ( cd ".libs" && rm -f "libgcj-tools.la" && ln -s
"../libgcj-tools.la" "libgcj-tools.la" )
/bin/sh ./libtool --tag=GCJ --mode=link
/home/rainer/software/build/i686-pc-cygwin/gcc-4.5.0/gcc/./gcc/gcj
- 
-B/home/rainer/software/build/i686-pc-cygwin/gcc-4.5.0/gcc/i686-pc-cygwin/libjava/
- -B/home/rainer/software/build/i686-pc-cygwin/gcc-4.5.0/gcc/./gcc/
- -B/opt/devel/gnu/gcc/gcc-4.5.0/i686-pc-cygwin/i686-pc-cygwin/bin/
- -B/opt/devel/gnu/gcc/gcc-4.5.0/i686-pc-cygwin/i686-pc-cygwin/lib/ -isystem
/opt/devel/gnu/gcc/gcc-4.5.0/i686-pc-cygwin/i686-pc-cygwin/include -isystem
/opt/devel/gnu/gcc/gcc-4.5.0/i686-pc-cygwin/i686-pc-cygwin/sys-include
- 
-L/home/rainer/software/build/i686-pc-cygwin/gcc-4.5.0/gcc/i686-pc-cygwin/libjava
- -ffloat-store -fomit-frame-pointer -Usun -g -O2  -o jv-convert.exe
- --main=gnu.gcj.convert.Convert -rpath
/opt/devel/gnu/gcc/gcc-4.5.0/i686-pc-cygwin/lib -shared-libgcc
-
-L/home/rainer/software/build/i686-pc-cygwin/gcc-4.5.0/gcc/i686-pc-cygwin/libjava/.libs
libgcj.la
libtool: link:
/home/rainer/software/build/i686-pc-cygwin/gcc-4.5.0/gcc/./gcc/gcj
- 
-B/home/rainer/software/build/i686-pc-cygwin/gcc-4.5.0/gcc/i686-pc-cygwin/libjava/
- -B/home/rainer/software/build/i686-pc-cygwin/gcc-4.5.0/gcc/./gcc/
- -B/opt/devel/gnu/gcc/gcc-4.5.0/i686-pc-cygwin/i686-pc-cygwin/bin/
- -B/opt/devel/gnu/gcc/gcc-4.5.0/i686-pc-cygwin/i686-pc-cygwin/lib/ -isystem
/opt/devel/gnu/gcc/gcc-4.5.0/i686-pc-cygwin/i686-pc-cygwin/include -isystem
/opt/devel/gnu/gcc/gcc-4.5.0/i686-pc-cygwin/i686-pc-cygwin/sys-include
- -ffloat-store -fomit-frame-pointer -Usun -g -O2 -o .libs/jv-convert.exe
- --main=gnu.gcj.convert.Convert -shared-libgcc
-
-L/home/rainer/software/build/i686-pc-cygwin/gcc-4.5.0/gcc/i686-pc-cygwin/libjava/.libs
- 
-L/home/rainer/software/build/i686-pc-cygwin/gcc-4.5.0/gcc/i686-pc-cygwin/libjava
./.libs/libgcj.a -ldl -L/opt/devel/gnu/gcc/gcc-4.5.0/i686-pc-cygwin/lib
./.libs/libgcj.a(closures.o): In function `release_unused_segments':
/home/rainer/software/build/i686-pc-cygwin/gcc-4.5.0/gcc/i686-pc-cygwin/libffi/../../../../../../src/gcc-4.5.0/libffi/src/dlmalloc.c:3575:
undefined reference to `_dlmunmap'
./.libs/libgcj.a(closures.o): In function `mmap_alloc':
/home/rainer/software/build/i686-pc-cygwin/gcc-4.5.0/gcc/i686-pc-cygwin/libffi/../../../../../../src/gcc-4.5.0/libffi/src/dlmalloc.c:3156:
undefined reference to `_dlmmap'
./.libs/libgcj.a(closures.o): In function `sys_alloc':
/home/rainer/software/build/i686-pc-cygwin/gcc-4.5.0/gcc/i686-pc-cygwin/libffi/../../../../../../src/gcc-4.5.0/libffi

Can GCC scheduler take advantage of mutually exclusive predicated blocks?

2009-07-07 Thread Bingfeng Mei
Hello,
Our GCC port & VLIW target processor support predication. However, I don't
see the GCC schedule two mutually exclusive blocks (from IF and ELSE ) in
a way that they are independent from each other. 

I am wondering if this is a problem of our porting and I missed some tricks
, or it is current limitation of GCC. 

Thanks,
Bingfeng Mei

Broadcom Uk


VTA compilation speed comparison

2009-07-07 Thread Jakub Jelinek
Hi!

This is a follow-up to the compile time memory consumption comparison I've
posted on Friday.
As I forgot to note the start wall time in each directory, the wall time
figures don't include the first compiled file (so TRAMP3D isn't included,
being a one testcase only directory) and VARIOUS numbers aren't either,
because I've been compiling that directory in two steps.
Other than wall time the numbers are for TOTAL lines from time-stats {sum,max} 
*.time_report
scripts, variable tracking lines from that and sum of all other lines.

As can be seen from the numbers, on C and some C++ code VTA has almost no
effect on compile time in passes other than vartrack (which is certainly
slower, more stuff is tracked), for heavily inlined code like tramp3d
VTA is somewhat slower even outside of vartrack pass.

Wall time (difference between mtime of the last file and first file in the
directory):
-O0-m64 -O0-m32 -O1-m64 -O1-m32 -O2-m64 -O2-m32 -O3-m64 
-O3-m32 -Os-m64 -Os-m32
GCC tr...@148582 wall   598 574 913 883 117211281384
134710521040
GCC v...@149180   wall  599 565 997 975 124412221496
139111181075
v...@149180/tr...@148582100.17% 98.43%  109.20% 110.42% 106.14% 108.33% 
108.09% 103.27% 106.27% 103.37%
FF3D tr...@148582 wall  349 332 471 479 599 603 675 
682 445 450
FF3D v...@149180   wall 349 336 514 531 666 683 755 
743 470 467
v...@149180/tr...@148582100.00% 101.20% 109.13% 110.86% 111.19% 113.27% 
111.85% 108.94% 105.62% 103.78%
MICO tr...@148582 wall  542 356 669 457 747 528 804 
574 661 467
MICO v...@149180   wall 549 358 713 496 805 577 864 
600 656 485
v...@149180/tr...@148582101.29% 100.56% 106.58% 108.53% 107.76% 109.28% 
107.46% 104.53% 99.24%  103.85%
SPEC2K tr...@148582wall 170 169 248 248 307 314 386 
385 286 294
SPEC2K v...@149180  wall171 169 263 268 334 336 
416 409 249 304
v...@149180/tr...@148582100.59% 100.00% 106.05% 108.06% 108.79% 107.01% 
107.77% 106.23% 87.06%  103.40%
DLV tr...@148582 wall   74  70  106 107 131 133 141 
140 91  93
DLV v...@149180   wall  74  71  118 120 146 148 154 
156 99  100
v...@149180/tr...@148582100.00% 101.43% 111.32% 112.15% 111.45% 111.28% 
109.22% 111.43% 108.79% 107.53%

TOTAL time (^ TOTAL lines from time-stats {sum,max} *.time_report):
-O0-m64 -O0-m32 -O1-m64 -O1-m32 -O2-m64 -O2-m32 -O3-m64 
-O3-m32 -Os-m64 -Os-m32 
GCC sum g...@148582 403.80  382.38  700.53  673.51  936.03  898.78  1150.50 
1118.36 837.34  825.97
GCC sum v...@149180 402.72  375.63  779.90  760.71  1022.73 1001.32 1258.63 
1163.10 904.53  867.20
99.73%  98.23%  111.33% 112.95% 109.26% 111.41% 109.40% 
104.00% 108.02% 104.99%
GCC max g...@148582 18.73   15.52   62.01   49.53   81.66   66.83   87.85   
81.35   85.12   67.60
GCC max v...@149180 19.06   14.61   63.61   53.25   84.92   70.20   101.49  
71.17   88.68   70.37
101.76% 94.14%  102.58% 107.51% 103.99% 105.04% 115.53% 
87.49%  104.18% 104.10%
FF3D sum g...@148582266.31  251.09  375.34  384.27  493.05  500.32  568.00  
576.90  350.51  358.17
FF3D sum v...@149180266.45  253.73  414.90  432.42  561.99  580.29  643.95  
634.90  373.19  375.93
100.05% 101.05% 110.54% 112.53% 113.98% 115.98% 113.37% 
110.05% 106.47% 104.96%
FF3D max g...@14858213.37   12.92   25.06   26.98   35.63   36.71   43.63   
42.17   24.55   26.06
FF3D max v...@14918013.36   13.18   29.32   30.88   41.35   42.41   51.48   
48.61   28.00   28.52
99.93%  102.01% 117.00% 114.46% 116.05% 115.53% 117.99% 
115.27% 114.05% 109.44%
MICO sum g...@148582410.69  268.40  527.87  361.55  602.86  429.43  657.87  
474.02  521.99  372.92
MICO sum v...@149180415.93  270.33  570.76  398.85  661.67  478.53  713.74  
499.64  523.19  392.57
101.28% 100.72% 108.13% 110.32% 109.76% 111.43% 108.49% 
105.40% 100.23% 105.27%
MICO max g...@14858214.16   13.10   23.77   23.01   32.87   32.99   36.87   
36.52   24.31   24.89
MICO max v...@14918014.73   13.14   26.03   26.83   36.08   35.71   38.81   
38.98   24.82   26.13
104.03% 100.31% 109.51% 116.60% 109.77% 108.24% 105.26% 
106.74% 102.10% 104.98%
SPEC2K sum g...@148582  113.53  111.75  180.40  182.72  242.60  244.81  315.16  
314.37  220.52  228.59
SPEC2K sum v...@149180  114.83  111.88  199.14  202.55  267.37  269.40  343.29  
338.20  197.20  241.66
101.15% 100.12% 110.39% 110.85% 110.21% 110.04% 108.93% 
107.58% 89.42%  105.72%
SPEC2K max g...@148582  1.771.763.363.4

VTA IL size comparison

2009-07-07 Thread Jakub Jelinek
Hi!

And here is IL size comparison, where ILsize is:
tree/-O0:   sum of non-empty lines in *t.ssa dumps for all sources in the 
directory
tree/-O{1,2,3,s}sum of non-empty lines in *t.uncprop dumps for all sources in 
the directory
rtl:sum of lines with ( in 1st column in *r.alignments dumps for 
all sources in the directory

-O0-m64 -O0-m32 -O1-m64 -O1-m32 -O2-m64 -O2-m32 -O3-m64 
-O3-m32 -Os-m64 -Os-m32
GCC tr...@148582 tree   5893253 5510130 4633676 4375725 4584302 4323132 5421218 
5107663 4070754 3827748
GCC v...@149180   tree  5893253 5510130 5074743 4804116 5017853 4744241 5976974 
5645208 4425867 4171593
v...@149180/tr...@148582100.00% 100.00% 109.52% 109.79% 109.46% 109.74% 
110.25% 110.52% 108.72% 108.98%
GCC tr...@148582 rtl6811872 6456958 4592506 4701806 4514273 4675215 5234538 
5400189 3938765 4362578
GCC v...@149180   rtl   6811872 6456958 5005824 5104169 4914430 5067393 5739177 
5892088 4273726 4689434
v...@149180/tr...@148582100.00% 100.00% 109.00% 108.56% 108.86% 108.39% 
109.64% 109.11% 108.50% 107.49%
FF3D tr...@148582 tree  2392550 2344689 1957501 1966199 2157284 2149682 2452448 
2427672 1171010 1157438
FF3D v...@149180   tree 2392550 2344689 2587570 2571873 3003105 2976057 3657238 
3629239 1516499 1493055
v...@149180/tr...@148582100.00% 100.00% 132.19% 130.80% 139.21% 138.44% 
149.13% 149.49% 129.50% 129.00%
FF3D tr...@148582 rtl   3404093 3239650 1607525 1917906 1705382 1952234 2018573 
2257943 1057894 1307372
FF3D v...@149180   rtl  3404093 3239650 2215627 2506322 2518475 2754024 3151221 
3398657 1379097 162
v...@149180/tr...@148582100.00% 100.00% 137.83% 130.68% 147.68% 141.07% 
156.11% 150.52% 130.36% 124.51%
MICO tr...@148582 tree  2762598 2076735 2139527 1599012 2270729 1717646 2464787 
1885967 1558063 1193186
MICO v...@149180   tree 2762598 2076735 2533508 1869281 2654502 1992996 2909617 
2214194 1755467 1339025
v...@149180/tr...@148582100.00% 100.00% 118.41% 116.90% 116.90% 116.03% 
118.05% 117.40% 112.67% 112.22%
MICO tr...@148582 rtl   3151113 2282493 1704626 1458846 1678263 1448777 1823247 
1576078 1273735 1238043
MICO v...@149180   rtl  3151113 2282493 2085559 1720179 2049142 1715820 2252895 
1894317 1469047 1382728
v...@149180/tr...@148582100.00% 100.00% 122.35% 117.91% 122.10% 118.43% 
123.56% 120.19% 115.33% 111.69%
SPEC2K tr...@148582 tree1776473 1757248 1298470 1276654 1321438 1294515 
1678000 1616487 1251804 1230765
SPEC2K v...@149180   tree   1776473 1757248 1427694 1405545 1455981 1428657 
1872231 1808063 1370928 1349734
v...@149180/tr...@148582100.00% 100.00% 109.95% 110.10% 110.18% 110.36% 
111.58% 111.85% 109.52% 109.67%
SPEC2K tr...@148582 rtl 1855373 1845353 1230136 1340522 1258702 1394028 1571868 
1706831 1149485 1338236
SPEC2K v...@149180   rtl1855373 1845353 1342191 1452864 1376049 1512332 
1732526 1867200 1259763 1448796
v...@149180/tr...@148582100.00% 100.00% 109.11% 108.38% 109.32% 108.49% 
110.22% 109.40% 109.59% 108.26%
TRAMP3D tr...@148582 tree   275269  274346  279614  251066  247188  241435  
255313  243612  147422  141801
TRAMP3D v...@149180   tree  275269  274346  521064  485097  487328  486643  
525837  517895  302433  296995
v...@149180/tr...@148582100.00% 100.00% 186.35% 193.21% 197.15% 201.56% 
205.96% 212.59% 205.15% 209.44%
TRAMP3D tr...@148582 rtl439802  424296  88  223360  193720  213572  
201673  219181  130507  152787
TRAMP3D v...@149180   rtl   439802  424296  445441  439322  409531  433672  
437528  459232  269425  291400
v...@149180/tr...@148582100.00% 100.00% 200.39% 196.69% 211.40% 203.06% 
216.95% 209.52% 206.44% 190.72%
DLV tr...@148582 tree   540575  531998  534088  531073  504988  503295  529447  
522153  273747  267836
DLV v...@149180   tree  540575  531998  723814  717992  692535  689318  735935  
726014  360789  352740
v...@149180/tr...@148582100.00% 100.00% 135.52% 135.20% 137.14% 136.96% 
139.00% 139.04% 131.80% 131.70%
DLV tr...@148582 rtl767603  729129  417516  461036  398209  438234  425596  
457521  228357  273553
DLV v...@149180   rtl   767603  729129  601120  641995  581810  620402  626988  
656787  314247  357545
v...@149180/tr...@148582100.00% 100.00% 143.98% 139.25% 146.11% 141.57% 
147.32% 143.55% 137.61% 130.70%
VARIOUS tr...@148582 tree   654327  653127  800961  809774  836987  840178  
870934  862115  566547  649454
VARIOUS v...@149180   tree  654327  653127  1056726 1077079 1121143 1128359 
1211314 1202772 719296  827815
v...@149180/tr...@148582100.00% 100.00% 131.93% 133.01% 133.95% 134.30% 
139.08% 139.51% 126.96% 127.46%
VARIOUS tr...@148582 rtl1103152 1158232 852570  993679  851459  1048228 
877808  1075550 645325  927493
VARIOUS v...@149180   rtl   1103152 1158232 1097178 1249515 1123078 1324149 
1183833 1383532 789664  1098042
v...@149180/tr...@148582100.00% 100.00% 128.69% 125.75% 

Internal Representation

2009-07-07 Thread Nicolas COLLIN

Hello,
I looked at the part of the documentation about function bodies and I 
wonder something : is there a way to get the function calls from it ? 
Because I'd like to make a call graph which represent function and the 
functions it calls.

Thank you.

Nicolas COLLIN


Re: gcc-trunk bootstrap failure in libjava on i686-pc-cygwin

2009-07-07 Thread Dave Korn
Rainer Emrich wrote:

> shows link failure "undefined reference to `_dlmmap'" and "undefined reference
> to `_dlmunmap'"

  Sorry, I got distracted from this one for a bit.  I'm working on a fix.

cheers,
  DaveK



Status of LTO merge to mainline

2009-07-07 Thread Diego Novillo
I am working on the last 60 testsuite failures on x86_64, but I'm
sure there will be other failures in other architectures.  My
merge plan is:

1- Fix the remaining failures on x86_64.  This includes fixing
   thunks for vararg functions which I plan to address as
   outlined in http://gcc.gnu.org/ml/gcc-patches/2008-12/msg00953.html

2- Fix open PRs against the LTO branch.  There are 28 open bugs
   against the branch.  I need to triage them to see which ones
   may already be fixed.

3- Enable pass_ipa_free_lang_data by default.  This is the pass
   that removes all references to front end trees from GIMPLE,
   implicitly breaking debugging information.  My current plan is
   to implement Richi's and Cary's idea of generating debug info
   early.

4- Test on primary and secondary platforms.  What is the current
   suggested list of platforms?


The items that need active development are #1 and #3.  For #1, I
think I can have all the failures fixed in 2-3 weeks.  I do not
have a good estimate for #3 since I do not really know how much
work this will entail (Richi?  Cary?  would you have a rough
estimate for this?).

Any and all help I can get with #2 and #4 will be appreciated.
For #2, I need to triage the reports to see which ones can be
closed already.  For #4, it should be a matter of testing the
branch with:

$ svn co svn://gcc.gnu.org/svn/gcc/branches/lto
$ mkdir bld && cd bld
$ ../lto/configure --enable-lto && make && make -k check


Thanks.  Diego.


Re: Internal Representation

2009-07-07 Thread Daniel Berlin
You must be looking at old documentation or something.
Call's are represented by GIMPLE_CALL_STMT (or CALL_EXPR in older GCC'en).
There has been a callgraph for quite a long time (see cgraph*.c and cgraph*.h)

On Tue, Jul 7, 2009 at 7:26 AM, Nicolas
COLLIN wrote:
> Hello,
> I looked at the part of the documentation about function bodies and I wonder
> something : is there a way to get the function calls from it ? Because I'd
> like to make a call graph which represent function and the functions it
> calls.
> Thank you.
>
> Nicolas COLLIN
>


Re: Internal Representation

2009-07-07 Thread Ian Lance Taylor
Nicolas COLLIN  writes:

> I looked at the part of the documentation about function bodies and I
> wonder something : is there a way to get the function calls from it ?
> Because I'd like to make a call graph which represent function and the
> functions it calls.

gcc builds a call graph.  See cgraph.h.

Ian


Re: Status of LTO merge to mainline

2009-07-07 Thread H.J. Lu
On Tue, Jul 7, 2009 at 6:09 AM, Diego Novillo wrote:

> 4- Test on primary and secondary platforms.  What is the current
>   suggested list of platforms?
>
> Any and all help I can get with #2 and #4 will be appreciated.
> For #2, I need to triage the reports to see which ones can be
> closed already.  For #4, it should be a matter of testing the
> branch with:
>

I have been testing LTO on Linux/ia32 and Linux/x86-64.
I had to disable LTO test on Linux/ia64 since it miscompiled
several Java testcases into infinite loops. I can try to find out
which checkin caused this if needed.


-- 
H.J.


Re: Status of LTO merge to mainline

2009-07-07 Thread Diego Novillo
On Tue, Jul 7, 2009 at 09:31, H.J. Lu wrote:

> I have been testing LTO on Linux/ia32 and Linux/x86-64.
> I had to disable LTO test on Linux/ia64 since it miscompiled
> several Java testcases into infinite loops. I can try to find out
> which checkin caused this if needed.

Thanks, that would be interesting.  It's odd that Java is miscompiled
by the branch since LTO does not work with it, but there are some
changes in default codepaths, so it's worth tracking those down.


Diego.


Re: Status of LTO merge to mainline

2009-07-07 Thread Richard Guenther
On Tue, Jul 7, 2009 at 3:31 PM, H.J. Lu wrote:
> On Tue, Jul 7, 2009 at 6:09 AM, Diego Novillo wrote:
>
>> 4- Test on primary and secondary platforms.  What is the current
>>   suggested list of platforms?
>>
>> Any and all help I can get with #2 and #4 will be appreciated.
>> For #2, I need to triage the reports to see which ones can be
>> closed already.  For #4, it should be a matter of testing the
>> branch with:
>>
>
> I have been testing LTO on Linux/ia32 and Linux/x86-64.
> I had to disable LTO test on Linux/ia64 since it miscompiled
> several Java testcases into infinite loops. I can try to find out
> which checkin caused this if needed.

I do SPEC 2000 runs on x86_64 triggered by changes on the branch.
See

http://gcc.opensuse.org/SPEC/CFP/sb-haydn-df-64/recent.html
http://gcc.opensuse.org/SPEC/CINT/sb-haydn-df-64/recent.html

Richard.


Re: preprocessors & GCC plugins

2009-07-07 Thread Rafael Espindola
2009/7/6 Basile STARYNKEVITCH :
> Hello All
>
> I would suppose that the preprocessor (ie libcpp) might be enhanced to use
> plugins. I can see several scenarii for them:
>
> 1. a plugin could enhance the way #include directives are processed
>
> 2. a plugin could add additional builtin macros, like __COUNTER__, which
> would be specific to the plugin.
>
> 3. a plugin could add extra CPP directives (like #ident)
>
> What do you think? Probably 1 is harder to implement than 2 or 3, but I am
> not very familiar with libcpp/
>
> The http://gcc.gnu.org/ml/gcc/2009-07/msg9.html mail suggested me the
> plugins could be useful in the preprocessor.
>
> Currently, there is no plugin specific code inside libcpp/

It might be useful, but I would wait a bit before implementing it if
is not critical. Lets first see how plugins get used. For example,
whether the linux distributions will ship a 4.5 with plugins support.

> Regards.
>

Cheers,
-- 
Rafael Avila de Espindola

Google | Gordon House | Barrow Street | Dublin 4 | Ireland
Registered in Dublin, Ireland | Registration Number: 368047


Re: Can GCC scheduler take advantage of mutually exclusive predicated blocks?

2009-07-07 Thread Richard Henderson

On 07/07/2009 02:21 AM, Bingfeng Mei wrote:

Hello,
Our GCC port&  VLIW target processor support predication. However, I don't
see the GCC schedule two mutually exclusive blocks (from IF and ELSE ) in
a way that they are independent from each other.

I am wondering if this is a problem of our porting and I missed some tricks
, or it is current limitation of GCC.


It can, but the test is fairly weak.  See conditions_mutex_p in
sched-deps.c.  This could probably be enhanced...


r~


random numbers

2009-07-07 Thread ecrosbie

how do I  generate random numbers in  a f77  program?

Ed Crosbie



Re: random numbers

2009-07-07 Thread Tim Prince

ecrosbie wrote:

how do I  generate random numbers in  a f77  program?

Ed Crosbie





optimizer hints for critical sections

2009-07-07 Thread Hallvard B Furuseth
It would be nice to have optimizer hints useful for critical sections -
sections that should be optimized at the expense of code surrounding it.

pthread_mutex_lock(&m);
critical section;
pthread_mutex_unlock(&m);

Things like spilling registers, .p2align, jumps that the compiler need
to insert etc, should here preferably be outside the critical section.

I imagine this could be done by giving pthread_mutex_lock() weak
variants of __attribute__((cold)) before the function and ((hot))
after, and the inverse for pthread_mutex_unlock().

Whether an exit point is hot or not can depend on the result code
though.  E.g.  pthread_mutex_trylock(&m) would be hot only when
returning 0.  Well, so is pthread_mutex_lock, but there it makes sense
to default to "hot" if the error code is not checked or if the compiler
cannot figure out how the error code is used.  Such a default is likely
wrong for trylock.

-fprofile-use may not work right for these optimizations.  If anything,
it may pessimize a critical section which is not entered often because
the surrounding code works at avoiding entry into it.
__builtin_expect() may not help either since it is not branches at the
function call as such that need to be optimized, but also e.g. where to
insert an unconditional jump which needs to be put somewhere - inside or
outside the critical section, regardless of branches or no branches.

The compiler already can optimize entry into the critical section
somewhat if the program branches on whether entry succeeded.  Does not
help near exit from a critical section though.  And it would be nice to
optimize it when there is no profile data or __builtin_expect.

These hints should not be too strong - do not pessimize too much at the
outside of the critical section, since there may be nested critical
sections.


There are some other cases which could use this too.  E.g.  execvp()
is likely "cold" on return but not on entry.   The manual suggests e.g.
perror could be "cold", but that's not right for the branch leading
up to execvp - since it's just the return which is unlikely.

In that regard, it'd also be useful to have an attribute or something
which just cancels out __attribute__((cold)) but does not make anything
"hot".

-- 
Hallvard


Re: random numbers

2009-07-07 Thread Tim Prince

ecrosbie wrote:

how do I  generate random numbers in  a f77  program?

Ed Crosbie

This subject isn't topical on the gcc development forum.  If you wish to 
use a gnu Fortran random number generator, please consider gfortran, 
which implements the language standard random number facility.

http://gcc.gnu.org/onlinedocs/gcc-4.4.0/gfortran/

questions might be asked on the gfortran list (follow-up set) or 
comp.lang.fortran

In addition, you will find plenty of other advice by using your web browser.



gcc-4.4-20090707 is now available

2009-07-07 Thread gccadmin
Snapshot gcc-4.4-20090707 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.4-20090707/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

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

You'll find:

gcc-4.4-20090707.tar.bz2  Complete GCC (includes all of below)

gcc-core-4.4-20090707.tar.bz2 C front end and core compiler

gcc-ada-4.4-20090707.tar.bz2  Ada front end and runtime

gcc-fortran-4.4-20090707.tar.bz2  Fortran front end and runtime

gcc-g++-4.4-20090707.tar.bz2  C++ front end and runtime

gcc-java-4.4-20090707.tar.bz2 Java front end and runtime

gcc-objc-4.4-20090707.tar.bz2 Objective-C front end and runtime

gcc-testsuite-4.4-20090707.tar.bz2The GCC testsuite

Diffs from 4.4-20090630 are available in the diffs/ subdirectory.

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