Re: Rant about ChangeLog entries and commit messages

2007-12-25 Thread Tim Josling
On Sat, 2007-12-15 at 20:54 -0200, Alexandre Oliva wrote:
> On Dec  3, 2007, [EMAIL PROTECTED] (Richard Kenner) wrote:
> 
> > In my view, ChangeLog is mostly "write-only" from a developer's
> > perspective.  It's a document that the GNU project requires us to
> produce
> > for
> 
> ... a good example of compliance with the GPL:
> 
>   5. Conveying Modified Source Versions.
> 
> a) The work must carry prominent notices stating that you modified
> it, and giving a relevant date.
> 

(Minor quibble) As copyright owner of GCC, the FSF is not bound by the
conditions of the licence it grants in the same way as licencees are
bound. So I don't think this provision in itself would mandate that
those who have copyright assignments to the FSF record their changes.

I don't hear anyone arguing that people should not record what they
changes and when. The question is whether it is sufficient.

I just started using git locally, and I keep thinking it would be really
great to have something like "git blame" for gcc. The command "git
blame" gives you a listing of who changed each line of the file and
when, and also gives the commit id. From that all can be revealed.

> 
> FWIW, I've used ChangeLogs to find problems a number of times in my 14
> years of work in GCC, and I find them very useful.  When I need more
> details, web-searching for the author of the patch and some relevant
> keywords in the ChangeLog will often point at the relevant e-mail, so
> burdening people with adding a direct URL seems pointless to me.  It's
> pessimizing the common case for a small optimization in far less
> common cases.
> 

This may possibly work when the mailing list entries exist and are
accessible. 

However they are only available AFAIK from 1998. GCC has been going for
2-3 times as long as that. And there is at least one significant gap:
February 2004 up to and including this message
http://gcc.gnu.org/ml/gcc-patches/2004-02/msg02288.html.

In my experience, when documentation is not stored with the source code,
it often gets lost.

When a person is offline the mailing list htmls are not available.

I have an idea to resolve this that I am working on... more in due
course if it comes to anything.

Tim Josling



Re: Rant about ChangeLog entries and commit messages

2007-12-25 Thread Daniel Berlin
On Dec 25, 2007 1:57 PM, Tim Josling <[EMAIL PROTECTED]> wrote:
> On Sat, 2007-12-15 at 20:54 -0200, Alexandre Oliva wrote:
> > On Dec  3, 2007, [EMAIL PROTECTED] (Richard Kenner) wrote:
> >
> > > In my view, ChangeLog is mostly "write-only" from a developer's
> > > perspective.  It's a document that the GNU project requires us to
> > produce
> > > for
> >
> > ... a good example of compliance with the GPL:
> >
> >   5. Conveying Modified Source Versions.
> >
> > a) The work must carry prominent notices stating that you modified
> > it, and giving a relevant date.
> >
>
> (Minor quibble) As copyright owner of GCC, the FSF is not bound by the
> conditions of the licence it grants in the same way as licencees are
> bound. So I don't think this provision in itself would mandate that
> those who have copyright assignments to the FSF record their changes.
>
> I don't hear anyone arguing that people should not record what they
> changes and when. The question is whether it is sufficient.
>
> I just started using git locally, and I keep thinking it would be really
> great to have something like "git blame" for gcc.

svn already has blame :)


Re: [lto] preliminary SPECint benchmark numbers

2007-12-25 Thread Vladimir N. Makarov

 Here is mine benchmarking of the current LTO branch on 2.66Ghz Core2
under RHEL 5 in 64- and 32-bits mode.  The vortex violates type
aliasing rules, therefore it should be compiled with
-fno-strict-aliasing.  Perlbmk crashed in tree.c::build2_stat in
32-bits mode when LTO used.  LTO currently generates wrong code for
176.gcc.  I've also checked Specfp2000 benchmarks written in C.

In brief,

 o the code size (text segment) with LTO is much smaller (2.7% and
   2.4% for SpecInt and 0.16% and 0.6% for SpecFp correspondingly in 64-
   and 32-bit mode).  That is very promising.
 o the compilation is 2 times slower with LTO.
 o The generated code is slower 3.6% and 2.2% for SPECint2000 and
   SpecFp2000 in 64-bit mode.  It is also 6.7% slower for SpecInt2000 in
   32-bit mode.  But SpecFp2000 in 32-bit mode code generated with LTO
   is 20% faster!  It is because art is almost 2.5 times faster with
   LTO.

The more details can be found below.

--64-bit mode
base: -O2 -mtune=generic
peak: -O2 -mtune=generic -flto

 base   peak
164.gzip  1363*  1340*
175.vpr   1600*  1571*
176.gcc   X  X
181.mcf   1658*  1531*
186.crafty2576*  2569*
197.parser1269*  1158*
252.eon   X  X
253.perlbmk   2546*  2373*
254.gap   1987*  1965*
255.vortex2259*  2208*
256.bzip2 1874*  1721*
300.twolf 2548*  2627*
SPECin2000 mean   1910   1841-3.6%

Compilation time of SPECInt2000 (except for eon and gcc):
base: 65.02user 6.25system 1:15.41elapsed 94%CPU
peak: 130.62user 9.68system 2:45.20elapsed 84%CPU

   basepeak
168.wupwiseX   X
171.swim   X   X
172.mgrid  X   X
173.applu  X   X
177.mesa   2426*   2314*
178.galgel X   X
179.art6276*   5519*
183.equake 1826*   1808*
187.facerecX   X
188.ammp   1770*   1666*
189.lucas  X   X
191.fma3d  X   X
200.sixtrack   X   X
301.apsi   X   X
SPECfp_base2000 26492491-2.2%

Compilation time of SPECFp2000 (only mesa, art, equake ammp):
17.32user 1.74system 0:20.42elapsed 93%CPU (0avgtext+0avgdata 0maxresident)k
35.52user 2.88system 0:42.86elapsed 89%CPU (0avgtext+0avgdata 0maxresident)k

text segment:
CINT2000-
-6.144%  38962  36568 164.gzip
-3.500% 147426 142266 175.vpr
-4.313%  12613  12069 181.mcf
-2.544% 172319 167935 186.crafty
-5.566% 108797 102741 197.parser
-5.436% 575443 544160 253.perlbmk
-5.214% 494375 468599 254.gap
-5.617% 556589 525325 255.vortex
-3.209%  32532  31488 256.bzip2
1.132% 198639 200887 300.twolf
Average = -2.69418%
CFP2000-
-5.093% 522117 495526 177.mesa
2.542%  16362  16778 179.art
2.745%  19778  20321 183.equake
-2.919% 142532 138372 188.ammp
Average = -0.160212%

--32-bit mode
base: -m32 -O2 -mtune=generic
peak: -m32 -O2 -mtune=generic -flto

basepeak
164.gzip 1261*1125*
175.vpr  1603*1483*
176.gcc  XX
181.mcf  3057*2801*
186.crafty   1764*1691*
197.parser   1397*1224*
252.eon  XX
253.perlbmk  XX
254.gap  1981*1778*
255.vortex   2013*1914*
256.bzip21666*1580*
300.twolf2376*2484*
SPECint2000mean  1839 1716  -6.7%

Compilation time of SPECInt2000 (except for eon, gcc, and perlbmk):
49.36user 5.13system 0:58.57elapsed 93%CPU (0avgtext+0avgdata 0maxresident)k
99.32user 7.90system 1:56.63elapsed 91%CPU (0avgtext+0avgdata 0maxresident)k

 basepeak
168.wupwise  X   X
171.swim X   X
172.mgridX   X
173.appluX   X
177.mesa 1362*   1325*
178.galgel   X   X
179.art  2786*   6197*
183.equake   1784*   1772*
187.facerec  X   X
188.ammp 1144*   1102*
189.lucasX   X
191.fma3dX   X
200.sixtrack X   X
301.apsi X   X
SPECfp2000 mean   16682001  +20%

Compilation time of SPECFp2000 (only m

Re: [lto] preliminary SPECint benchmark numbers

2007-12-25 Thread Chris Lattner


On Dec 25, 2007, at 5:02 PM, Vladimir N. Makarov wrote:


Here is mine benchmarking of the current LTO branch on 2.66Ghz Core2
under RHEL 5 in 64- and 32-bits mode.  The vortex violates type
aliasing rules, therefore it should be compiled with
-fno-strict-aliasing.  Perlbmk crashed in tree.c::build2_stat in
32-bits mode when LTO used.  LTO currently generates wrong code for
176.gcc.  I've also checked Specfp2000 benchmarks written in C.

In brief,

o the code size (text segment) with LTO is much smaller (2.7% and
  2.4% for SpecInt and 0.16% and 0.6% for SpecFp correspondingly in  
64-

  and 32-bit mode).  That is very promising.
o the compilation is 2 times slower with LTO.
o The generated code is slower 3.6% and 2.2% for SPECint2000 and
  SpecFp2000 in 64-bit mode.  It is also 6.7% slower for SpecInt2000  
in

  32-bit mode.  But SpecFp2000 in 32-bit mode code generated with LTO
  is 20% faster!  It is because art is almost 2.5 times faster with
  LTO.


Wow, nice numbers! Is it possible to compare this to -combine, or does  
-combine work anymore?  In theory, lto and IMA should yield the same  
codegen, lto should just be usable with normal makefiles.


-Chris



Re: Rant about ChangeLog entries and commit messages

2007-12-25 Thread Richard Kenner
> (Minor quibble) As copyright owner of GCC, the FSF is not bound by the
> conditions of the licence it grants in the same way as licencees are
> bound. So I don't think this provision in itself would mandate that
> those who have copyright assignments to the FSF record their changes.

I was hoping nobody would notice that.  ;-)

> I don't hear anyone arguing that people should not record what they
> changes and when. The question is whether it is sufficient.

I think we all agree that it isn't, but figuring out where and what to
put elsewhere has been tricky.


Re: Rant about ChangeLog entries and commit messages

2007-12-25 Thread Robert Dewar

Richard Kenner wrote:

(Minor quibble) As copyright owner of GCC, the FSF is not bound by the
conditions of the licence it grants in the same way as licencees are
bound. So I don't think this provision in itself would mandate that
those who have copyright assignments to the FSF record their changes.


I was hoping nobody would notice that.  ;-)


Actually I think this is wrong, the FSF holds the copyright
by virtue of a copyright assignment which contains the
guarantee that the software will be distributed under the
GPL (at least that's my recollection of the assignment
document).


Re: Rant about ChangeLog entries and commit messages

2007-12-25 Thread Richard Kenner
> >> (Minor quibble) As copyright owner of GCC, the FSF is not bound by the
> >> conditions of the licence it grants in the same way as licencees are
> >> bound. So I don't think this provision in itself would mandate that
> >> those who have copyright assignments to the FSF record their changes.
> > 
> > I was hoping nobody would notice that.  ;-)
> 
>
> Actually I think this is wrong, the FSF holds the copyright by virtue of
> a copyright assignment which contains the guarantee that the software
> will be distributed under the GPL (at least that's my recollection of the
> assignment document).

That part's true, but the cited part of the GPL applies only to somebody
who makes a *modification* to the work of the copyright holder and
redistributes that work.  Such a condition doesn't apply to the FSF, who
*is* the copyright holder.


Re: Rant about ChangeLog entries and commit messages

2007-12-25 Thread Alexandre Oliva
On Dec 25, 2007, Tim Josling <[EMAIL PROTECTED]> wrote:

> On Sat, 2007-12-15 at 20:54 -0200, Alexandre Oliva wrote:
>> ... a good example of compliance with the GPL:

>> 5. Conveying Modified Source Versions.
>> 
>> a) The work must carry prominent notices stating that you modified
>> it, and giving a relevant date.

> (Minor quibble) As copyright owner of GCC, the FSF is not bound by the
> conditions of the licence it grants in the same way as licencees are
> bound.

Of course.  That's exactly why I wrote "good example".  It wouldn't be
nice if the FSF itself didn't set the example for others who modify
the code to follow.

On top of that, I believe whoever modifies the code and publishes the
modification, even if just to contribute it to the FSF, is bound by
the terms of the GPL, and terefore the code modification carry the
required prominent notices.  Of course the FSF, being copyright
holder, could choose to throw them all away.

> This may possibly work when the mailing list entries exist and are
> accessible. 

True, off-line access to resources that are on-line only or even
permanently inaccessible doesn't work.  Been there, done that, it's a
pain to deal with lack of information.

-- 
Alexandre Oliva http://www.lsd.ic.unicamp.br/~oliva/
FSF Latin America Board Member http://www.fsfla.org/
Red Hat Compiler Engineer   [EMAIL PROTECTED], gcc.gnu.org}
Free Software Evangelist  [EMAIL PROTECTED], gnu.org}


How to describe a FMAC insn

2007-12-25 Thread Qing Wei
Hi,
Could someone give some hints of how to describe a FMAC (float mult and
add) insn in machine description, it matches d = b*c+a, which is a four
operands float instrution. With a glimp through the array optabs[] in
genopinit.c, it seems no OP handler could match FMAC operation? And I
found a function gen_add_mult() in loops.c, but it also seems not very
helpful. And another my question is, the element of optabs[] are arrays
indexed by machine code, for example, add_optab[] indexed by SI, DI, QI,
FI machine mode, not by number of operands, it seems it only matches 3
operands add operation,if I want to add a four operands add operation,
what should I do?

Qing


Re: How to describe a FMAC insn

2007-12-25 Thread Tim Prince
Qing Wei wrote:
> Could someone give some hints of how to describe a FMAC (float mult and
> add) insn in machine description, it matches d = b*c+a, which is a four
> operands float instrution. 
There are plenty of examples in ia64.md and rs6000.md.