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 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/
> 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 >
Chris Lattner wrote: I can't think of anything you missed; most of my comments below are about commas! :( FWIW, -- 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 ofThere 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 pointAgain, 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, butRemove 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.Cool.> 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.
The vector LLVA extension will not be merged into the 1.6 release branch? It will make me have to merge twice: one for 1.6 and one for vector LLVA. When do you plan to merge the vector LLVA to the main trunk, please? On 26/10/05, Chris Lattner <sabre at nondot.org> wrote:> > 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 > 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 >-- Tzu-Chien Chiu - XGI Technology, Inc. URL: http://www.csie.nctu.edu.tw/~jwchiu/
On Thu, 3 Nov 2005, Tzu-Chien Chiu wrote:> The vector LLVA extension will not be merged into the 1.6 release branch? > It will make me have to merge twice: one for 1.6 and one for vector LLVA. > When do you plan to merge the vector LLVA to the main trunk, please?No, the Vector LLVA extensions are not ready yet. When they are ready, they can be merged into LLVM. Maybe this will happen for LLVM 1.7. In the meantime, to use them, I would suggest using Rob's branch. -Chris> On 26/10/05, Chris Lattner <sabre at nondot.org> wrote: >> >> 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 >> 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 >> > > > -- > Tzu-Chien Chiu - XGI Technology, Inc. > URL: http://www.csie.nctu.edu.tw/~jwchiu/ > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >-Chris -- http://nondot.org/sabre/ http://llvm.org/