We held a GCC mini-summit at Google on Wednesday, April 18.  About 40
people came.  This is my very brief summary of what we talked about.
Corrections and additions very welcome.

The goal of the mini-summit was just to let gcc developers meet face
to face and talk.  There was no goal of actually making any decisions,
and, indeed, no decisions were made.

If you comment on some particular item here, I'd like to suggest that
you change the Subject line so that conversations can be tracked more
easily.

I didn't do a good job of recording who said what.  And indeed most of
this is from memory.  I apologize for any mistakes or slights.  They
are entirely unintentional.

1) Introductions.

2) A phone call with Uday Khedker and other gcc developers in India
   from IIT Bombay in Mumbai.  David Edelsohn arranged for this to
   happen.  The call had to be from another room, and I didn't
   participate, so I don't have any details.

3) A discussion of gcc 4.2 and the gcc release process in general.
   Nobody objected to shipping gcc 4.2 today, even though it does not
   meet the goal of fewer than 100 regressions from an earlier
   release.  People did comment that we should fix all the P1 bugs
   before shipping.

   We count regressions from any old release.  That means that we have
   open bugs which were regressions in 3.x, but we are still counting
   them as release-blocking regressions.  There were a few suggestions
   about how to avoid this:
   a) only count regressions from the last two releases.
   b) discount old regressions over time, perhaps by lowering their
      priority.
   c) add voting to bugzilla for which old regressions should count as
      release-blocking.  Somebody suggested using the number of e-mail
      addresses CC'ed on the bug as votes.
   d) some people commented that this was a good thing, since it
      encourages us to fix old regressions, and that we should not
      avoid it at all.

   Somebody observed that our focus on regressions can cause us to
   ignore important wrong-code bugs which should be fixed even if they
   are not actually regressions--perhaps they are bugs in new features
   which were not present in earlier versions.

4) A discussion of dataflow.  Ken Zadeck described the current state
   of dataflow branch.  It seems stable, and just about within the
   compilation time guidelines set by the SC.  He will do more testing
   and retesting this weekend, and hopes to commit it to mainline
   quite soon, maybe as early as next week if the testing goes well.

5) A discussion of tuples, the IR, and LTO.  Diego Novillo described
   the tuples proposal, which is an incremental change to the IR.  Ken
   Zadeck described the current state of his LTO work.  He described
   LTO as having three parts: writing out types, which is being done
   in DWARF; serializing trees; eliminating langhooks.

   Discussion about writing out types in DWARF, since apparently
   several new DWARF attributes had to be invented to capture
   everything that gcc cares about.  Michael Eager pointed out that if
   the new attributes would be of use for the debugger, he and the
   DWARF standardization committee would like to hear about them.

   Discussion of LTO and IMA; Geoff Keating said that if LTO works
   better than IMA, IMA should be removed.  There was some concern
   that LTO would be slower than IMA, since in some ways it has to do
   more work, since the trees have to be written out and read in;
   however, in other ways it does less work.

   Discussion of a middle-end type system.  Daniel Berlin said that it
   wasn't clear that we really needed a type system.  He proposed that
   the middle-end use structural equivalence for the type system, and
   that front-ends annotate types which appear the same but are not.
   Interestingly, the types_compatible_p langhook is only used for C
   and C++ at present.  People talked about the consequences for
   debugging information, with no clear outcome.  Frontends would have
   to annotate types with their alias set in order for TBAA to work
   properly.

6) Lunch at the main Google cafeteria.

7) Daniel Berlin described the most recent draft of GPLv3.  His
   conclusion is that, unlike earlier drafts, it is not substantially
   different from GPLv2.  There was a fair amount of discussion.  In
   particular there was some concern about the libgcc exception
   license, and whether that could ever go away.  The general feeling
   was that that was unlikely.

8) A discussion of register allocation.  This didn't go too far as
   none of the people working on register allocation were there.
   Diego Novillo briefly described Vlad Makarov's work and mentioned
   Andrew MacLeod's work.  David Edelsohn mentioned Peter Bergner's
   work.  There was some discussion of eliminating reload as the first
   step, and of taking pieces out of reload as the first incremental
   step.

9) A discussion of maintainership and code review.  We discussed the
   new non-algorithmic maintainers, and there was general agreement
   that it seemed to be OK.  Zdenek Dvorak mentioned that the
   boundaries of non-algorithmic were unclear, and Joe Buck agreed
   that that was inevitable.

   We talked about variants on the current system, like having people
   who could approve other people's patches but did not have the right
   to commit their own patches.  It is clear that some people already
   review patches which they can not approve.  This is a good thing
   but there was no clear idea of how to encourage it.  Diego Novillo
   talked about the difficulties of switching between code writing
   mode and patch review mode.

   We discussed the patch tracker.  None of the active maintainers who
   were there appear to use it very much or at all.  I proposed
   automatic e-mail pings, but that wasn't generally welcomed.
   Richard Henderson suggested that the patch tracker should have a
   way to quickly and easily approve a patch.  A couple of people said
   it would be nice to be able to use the tracker to send an e-mail
   reply; it does provide a mechanism for that, but it is web-based
   rather than being part of one's usual mail reader.  One possibility
   mentioned was to have a button for the patch tracker to send the
   maintainer a copy of the e-mail, which would be a convenient way to
   write the reply in a preferred mail reader.

10) Eric Christopher reported that Tom Tromey (who was not present)
    had suggested a new mascot for gcc: a unicorn with rainbows.  This
    was met with general approval, and Eric suggested that everybody
    e-mail Tom with their comments.  I personally would like to see
    the drawing.

11) H.J. Lu discussed SPEC CPU 2006.  He reported that a couple of the
    tests do not run successfully, and it appears to be due to bugs in
    the tests which cause gcc to compile them in unexpected ways.  He
    has been reporting the problems to the SPEC committee, but is
    being ignored.  He encouraged other people to try it themselves
    and make their own reports.

12) Jose Dana reported his results comparing different versions of gcc
    and icc at CERN.  They have a lot of performance sensitive C++
    code, and have gathered a large number of standalone snippets
    which they use for performance comparisons.  Some of these can
    directly become bugzilla enhancement requests.  In general this
    could ideally be turned into a free performance testsuite.  All
    the code is under free software licenses.

13) Michael Meissner raised the idea of compiling functions
    differently for different processors, choosing the version based
    on a runtime decision.  This led to some discussion of how this
    could be done effectively.  In particular if there is an
    architectural difference, such as Altivec, you may get prologue
    instructions which save and restore registers which are not
    present on all architectures.

14) I asked whether people found the meeting to be valuable.  The
    general sense was that it was.  I asked whether people would be
    interested in coming to another one in the future.  The general
    sense was that they would.  So perhaps we will hold another one in
    the fall, either at Google or elsewhere.

15) We adjourned for ice cream.

Reply via email to