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

Tanya Lattner tonic at nondot.org
Wed Oct 26 16:08:07 PDT 2005



> 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.

swith -> switch

Everything else looks good to me.

-Tanya


> 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
>   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
>   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
>   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.
> X. Andrew added initial JIT support to the Alpha backend, which can run
>   some simple programs.  It is not fully complete yet though.
> X. Jim Laskey contributed patches to improve the instruction selection in
>   the PowerPC backend, matching more RLWIMI cases 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.
> 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).
> 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
>
> -- 
> http://nondot.org/sabre/
> http://llvm.org/
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>




More information about the llvm-dev mailing list