[LLVMdev] [DRAFT] Announcement for LLVM 1.6 [DRAFT]

John Criswell criswell at cs.uiuc.edu
Thu Oct 27 08:38:27 PDT 2005

Chris Lattner wrote:

I can't think of anything you missed; most of my comments below are 
about commas!


-- John T.

> Hi All,
> I'm putting together the announcement for the LLVM 1.6 release.  Here is 
> what I have so far.  Because so much has been done, it is very likely 
> that I have forgotten something.  If you have done something that is not 
> on the list, please send me a private email so I can add it (also, 
> please tell me if I've made a mistake or miscredited something)!
> My next project is to start hacking on the release notes.  I would 
> appreciate it if people could look into the documentation and let us 
> know about (or fix!) anything that is out of date, misleading, or could 
> be improved.
> I believe we are still on track to start rolling the release next monday 
> (Oct 31), which makes the likely 'official' release to be about a week 
> from then.  Once the release is officially out, it would be great to get 
> help making binary distros for additional platforms (e.g. Cygwin) and 
> for packages to be built (e.g. for the various Linux distros).
> Thanks all!
> -Chris
> ----------------- 8< ----------------- 8< --------------------
> Insert high-level description/overview blurb here :)
> Themes: Major code generator work.  New excellent performance/stability 
> on PPC/darwin.  Going back to 3-month release cycle.  LLVM being used by 
> many different people projects, e.g. papers being published.
> Major New Features:
> X. Reid added guards to the JIT, enabling it to JIT multithreaded code
>    (on systems with pthreads).  Threads support can be disabled by
>    configuring LLVM with the --disable-threads swith.
> X. LLVM includes a new optimization to statically evaluate C++ static
>    variable constructors when they are simple enough.  For example, it can
>    now statically initialize "struct X { int a; X() : a(4) {} } g;".
> X. The Loop Strength Reduction pass is completely rewritten, far more
>    aggressive and enabled by default on most RISC targets.  On PPC, we
>    find that it often speeds up programs from 10-40% depending on the
>    program.
> X. LLVM now includes support for auto-generating large portions of the
>    instruction selectors from target descriptions.  This allows us to
>    write patterns in the target .td file, instead of writing lots of

There should be no comma in the line above.

>    nasty C++ code.  Most of the PowerPC instruction selector is now
>    generated from the PowerPC target description files and other targets
>    are adding support that will be live for LLVM 1.7.
> X. Andrew has dramatically improved the LLVM Alpha backend, to the point

Again, no comma.

>    where it is now considered fully functional and off the 'beta' list.
> Major Code Generator Changes:
> X. Nate wrote a new component for the backend, a DAG Combiner.  This
>    allows the backend to take advantage of identities and do low-level
>    peephole-style optimizations on the DAG.
> X. Nate added support for a new TargetSubtarget interface, which
>    determines which parts of the target to enable based on the
>    target-triple (e.g., whether to use GAS or Intel asm printers on X86).
> X. Jim Laskey extended sub-target support to include -mcpu and -mattr,
>    allowing the target to think about what to do when particular features
>    are enabled, but allowing the end-user to think about what CPU they
>    have.
> X. Jim also contributed a new light-weight instruction scheduler,
>    available to targets that use DAG-to-DAG instruction selectors.  In
>    this release, the scheduler is fully operational but needs tuning, so
>    it is not enabled by default.
> X. The instruction selector framework now supports DAG-to-DAG instruction
>    selection, where the instruction selector does pattern matching, but

Remove the second comma above.

>    no code emission (necessary for scheduling & .td file autogeneration).
> Other Code Generator Changes:
> X. Duraid contributed many improvements to the Itanium backend
>    (details??).
> X. Andrew Lenharth contributed a major change to the varargs support,
>    allowing LLVM to work with targets whose va_list type is a struct.
> X. The instruction framework that debuted in LLVM 1.5 is far more mature
>    and robust, and is able to handle many more strange target features.

Zap the comma above.
Also, do you mean instruction selector framework in the above line?

> X. Andrew added initial JIT support to the Alpha backend, which can run
>    some simple programs.  It is not fully complete yet though.

Comma before "though"

> X. Jim Laskey contributed patches to improve the instruction selection in
>    the PowerPC backend, matching more RLWIMI cases for example.

Comman before "for example."

> X. Nate implemented most of the PowerPC DAG-to-DAG instruction selector.
> X. The tblgen tool & code generator now have more assertions and checking,
>    which catch errors early, making it easier to work on the backend.
> X. The default register allocator is now far faster on some testcases,
>    particularly on targets with a large number of registers (e.g. IA64
>    and PPC).
> X. Jim extended tblgen to allow description of subtarget features in the
>    .td files for the target.

Was this mentioned earlier, or is it subtly different from the last 
comment on target triples support?

> X. There have been several minor improvements to the register allocator to
>    coallesce more aggressively and coallesce spill code with copies more
>    effectively.
> Miscellaneous Improvements:
> X. Andrew added support to the JIT to built a Global Offset Table if
>    needed by a target.
> X. Alexander Friedman improved the .ll file parser to be able to read
>    from a text buffer in addition to a file.
> X. Bryan Turner tried LLVM with Quest, a random testcase generator, and
>    exposed several bugs (which are now fixed).
> X. The llvm-test suite can now use the NAG Fortran to C compiler to compile
>    SPEC FP programs if available (allowing us to test all of SPEC'95 & 2K).

Comma before "if available"

> X. The JIT-debugger mode of bugpoint is now much faster than before.
> X. When bugpoint is grinding away and the user hits ctrl-C, it now
>    gracefully stops and gives what it has reduced so far, instead of
>    giving up completely.


> X. LLVM now includes Xcode project files.
> X. Jim Laskey added bitvector support to the command line option parsing
>    library.  See http://llvm.org/docs/CommandLine.html#bits
> X. We no longer build two versions of most LLVM libraries, which reduces
>    the time required to build LLVM.
> X. Documentation for the code generator is improving, though it is
>    still incomplete: http://llvm.org/docs/CodeGenerator.html
> X. The code produced when exception handling is enabled is far more
>    efficient in some cases, particularly on Mac OS/X.
> Portability Improvements:
> X. Nate added support for Mac OS/X on Intel.
> X. X86 tail calls now work with the JIT and Jeff Cohen added code
>    to support them under Visual C++.
> X. Nate contributed a patch to allow LLVM to build with GCC 4.x, and Reid
>    contributed several cleanup patches to silence GCC 4 warnings.
> X. The llvm-test suite is now fully compatible with Mac OS/X
>    (non-portabilities in the programs have been fixed).
> X. Jeff Cohen contributed portability fixes to build on AMD64.
> In addition to the new features and infrastructure we have built, we 
> have also fixed many minor bugs in the C/C++ front-end, optimizers, and 
> code generator including 54 bugzilla bugs (search for target milestone = 
> 1.6). LLVM 1.6 is by far the best release we've had yet!
> As usual, if you have any questions or comments about LLVM or any of the 
> features in this status update, please feel free to contact the LLVMdev 
> mailing list (llvmdev at cs.uiuc.edu)!
> Finally, here is the previous status report, the LLVM 1.5 announcement:
> http://lists.cs.uiuc.edu/pipermail/llvm-announce/2005-May/000016.html
> -Chris

John T. Criswell
Research Programmer
University of Illinois at Urbana-Champaign
"It's today!" said Piglet. "My favorite day," said Pooh.

More information about the llvm-dev mailing list