[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