Ok, the LLVM 2.7 release notes are in near final shape. Please take a look and suggest improvements (or, better yet, just commit improvements if you have commit access): http://llvm.org/docs/ReleaseNotes.html Things still needed are marked with FIXMEs. These include: 1. Clang needs a blurb describing what's new in 2.7. Have the clang folks been doing anything for the last 6 months? 2. I need a few-line description of: "New LSR with "full strength reduction" mode, ideally with a link to a blog post entry or something. 3. I need a description of: PostRA scheduler for X86? FIXME: is this on by default in 2.7? 4. I need a description for: The ARM and Thumb code generators now using register scavenging for stack object address materialization.(FIXME: WHAT BENEFIT DOES THIS PROVIDE?) Please feel free to commit directly to llvm/docs/ReleaseNotes.html with any updates you have. It's going to be a great release! -Chris
Chris Lattner <clattner at apple.com> writes:> Ok, the LLVM 2.7 release notes are in near final shape. Please take > a look and suggest improvements (or, better yet, just commit > improvements if you have commit access):About the API changes, some that hit me when I ported some code to LLVM 2.7, and not in the release notes (I had sent a private email some time ago) : --- ReleaseNotes.html.old 2010-04-22 09:43:42.000000000 +0200 +++ ReleaseNotes.html 2010-04-22 10:27:22.000000000 +0200 @@ -862,6 +862,18 @@ <tt>isFPOrFPVector</tt> and <tt>isFPOrFPVector</tt> methods have been renamed <tt>isIntegerTy</tt>, <tt>isIntOrIntVectorTy</tt>, <tt>isFloatingPointTy</tt>, <tt>isFPOrFPVectorTy</tt> and <tt>isFPOrFPVectorTy</tt> respectively.</li> + +<li><tt>llvm::Instruction::clone()</tt> no longer takes argument.</li> +<li><tt>raw_fd_ostream</tt>'s constructor now takes a flag argument, not individual + booleans (see <tt>include/llvm/Support/raw_ostream.h</tt> for details).</li> +<li>Some header files have been renamed: +<ul> + <li><tt>llvm/Support/AIXDataTypesFix.h</tt> to <tt>llvm/System/AIXDataTypesFix.h</tt></li> + <li><tt>llvm/Support/DataTypes.h</tt> to <tt>llvm/System/DataTypes.h</tt></li> + <li><tt>llvm/Transforms/Utils/InlineCost.h</tt> to <tt>llvm/Analysis/InlineCost.h</tt></li> + <li><tt>llvm/Support/Mangler.h</tt> to <tt>llvm/Target/Mangler.h</tt></li> + <li><tt>llvm/Analysis/Passes.h</tt> to <tt>llvm/CodeGen/Passes.h</tt></li> +</ul></li> </ul> </div> There were others, which are not documented, but I'm not sure I understand completely the change, so probably someone else should reword that to fit in ReleaseNotes.html: - New argument DisableVerify to llvm::TargetMachine::addPassesToEmitWholeFile (it has a default value, but one must update the declaration of redefinition of this function in derived classes). - TargetAsmInfo changed to MCAsmInfo in back-end writters. -- Matthieu Moy http://www-verimag.imag.fr/~moy/
Chris Lattner <clattner at apple.com> writes:> Ok, the LLVM 2.7 release notes are in near final shape. Please take a look and suggest improvements (or, better yet, just commit improvements if you have commit access): > http://llvm.org/docs/ReleaseNotes.htmlOne more thing: am I correct saying that LLVM/Clang 2.7 is the first release able to compile itself? If so, you should mention it (proudly ;-) ) in the introduction. -- Matthieu Moy http://www-verimag.imag.fr/~moy/
> Ok, the LLVM 2.7 release notes are in near final shape. Please take a look and suggest improvements (or, better yet, just commit improvements if you have commit access):I committed several typo fixes / rewording fixes to the release notes just now. The following paragraph under the "New Useful APIs" section needs to be reworded but I am not sure what is trying to be expressed so I have not done anything with it yet: The optimizer uses the new CodeMetrics class to measure the size of code. Various passes that use thing (like the inliner, loop unswitcher, etc) all use this to make more accurate estimates of the code size impact of various optimizations. The "use thing" could just be reworded to "use things" but this still doesn't seem to clear. Perhaps just removing that section would be better (?) resulting in the following: The optimizer uses the new CodeMetrics class to measure the size of code. Various passes (like the inliner, loop unswitcher, etc) all use this to make more accurate estimates of the code size impact of various optimizations. -- Wesley Peck University of Kansas SLDG Laboratory
Thanks, I must have missed these, added. On Apr 22, 2010, at 1:28 AM, Matthieu Moy wrote:> Chris Lattner <clattner at apple.com> writes: > >> Ok, the LLVM 2.7 release notes are in near final shape. Please take >> a look and suggest improvements (or, better yet, just commit >> improvements if you have commit access): > > About the API changes, some that hit me when I ported some code to > LLVM 2.7, and not in the release notes (I had sent a private email > some time ago) : > > --- ReleaseNotes.html.old 2010-04-22 09:43:42.000000000 +0200 > +++ ReleaseNotes.html 2010-04-22 10:27:22.000000000 +0200 > @@ -862,6 +862,18 @@ > <tt>isFPOrFPVector</tt> and <tt>isFPOrFPVector</tt> methods have been renamed > <tt>isIntegerTy</tt>, <tt>isIntOrIntVectorTy</tt>, <tt>isFloatingPointTy</tt>, > <tt>isFPOrFPVectorTy</tt> and <tt>isFPOrFPVectorTy</tt> respectively.</li> > + > +<li><tt>llvm::Instruction::clone()</tt> no longer takes argument.</li> > +<li><tt>raw_fd_ostream</tt>'s constructor now takes a flag argument, not individual > + booleans (see <tt>include/llvm/Support/raw_ostream.h</tt> for details).</li> > +<li>Some header files have been renamed: > +<ul> > + <li><tt>llvm/Support/AIXDataTypesFix.h</tt> to <tt>llvm/System/AIXDataTypesFix.h</tt></li> > + <li><tt>llvm/Support/DataTypes.h</tt> to <tt>llvm/System/DataTypes.h</tt></li> > + <li><tt>llvm/Transforms/Utils/InlineCost.h</tt> to <tt>llvm/Analysis/InlineCost.h</tt></li> > + <li><tt>llvm/Support/Mangler.h</tt> to <tt>llvm/Target/Mangler.h</tt></li> > + <li><tt>llvm/Analysis/Passes.h</tt> to <tt>llvm/CodeGen/Passes.h</tt></li> > +</ul></li> > </ul> > > </div> > > There were others, which are not documented, but I'm not sure I > understand completely the change, so probably someone else should > reword that to fit in ReleaseNotes.html: > > - New argument DisableVerify to > llvm::TargetMachine::addPassesToEmitWholeFile (it has a default > value, but one must update the declaration of redefinition of this > function in derived classes). > > - TargetAsmInfo changed to MCAsmInfo in back-end writters. > > -- > Matthieu Moy > http://www-verimag.imag.fr/~moy/
Much better, applied in r102096. Thanks for all the improvements Wesley! On Apr 22, 2010, at 7:29 AM, Wesley Peck wrote:>> Ok, the LLVM 2.7 release notes are in near final shape. Please take a look and suggest improvements (or, better yet, just commit improvements if you have commit access): > > I committed several typo fixes / rewording fixes to the release notes just now. The following paragraph under the "New Useful APIs" section needs to be reworded but I am not sure what is trying to be expressed so I have not done anything with it yet: > > The optimizer uses the new CodeMetrics class to measure the size of code. Various passes that use thing (like the inliner, loop unswitcher, etc) all use this to make more accurate estimates of the code size impact of various optimizations. > > The "use thing" could just be reworded to "use things" but this still doesn't seem to clear. Perhaps just removing that section would be better (?) resulting in the following: > > The optimizer uses the new CodeMetrics class to measure the size of code. Various passes (like the inliner, loop unswitcher, etc) all use this to make more accurate estimates of the code size impact of various optimizations. > > -- > Wesley Peck > University of Kansas > SLDG Laboratory >
On Apr 21, 2010, at 11:43 PM, Chris Lattner wrote:> Ok, the LLVM 2.7 release notes are in near final shape. Please take a look and suggest improvements (or, better yet, just commit improvements if you have commit access): > http://llvm.org/docs/ReleaseNotes.html > > Things still needed are marked with FIXMEs. These include: > > 1. Clang needs a blurb describing what's new in 2.7. Have the clang folks been doing anything for the last 6 months? > > 2. I need a few-line description of: "New LSR with "full strength reduction" mode, ideally with a link to a blog post entry or something. > > 3. I need a description of: PostRA scheduler for X86? FIXME: is this on by default in 2.7? > > 4. I need a description for: The ARM and Thumb code generators now using register scavenging for stack object address materialization.(FIXME: WHAT BENEFIT DOES THIS PROVIDE?) >Additional information added in r102101.> Please feel free to commit directly to llvm/docs/ReleaseNotes.html with any updates you have. It's going to be a great release! > > -Chris
On Apr 21, 2010, at 11:43 PM, Chris Lattner wrote:> Ok, the LLVM 2.7 release notes are in near final shape. Please take a look and suggest improvements (or, better yet, just commit improvements if you have commit access): > http://llvm.org/docs/ReleaseNotes.html > > Things still needed are marked with FIXMEs. These include: > > 1. Clang needs a blurb describing what's new in 2.7. Have the clang folks been doing anything for the last 6 months?Goofing off, clear. r102121. - Doug
On Apr 21, 2010, at 11:43 PM, Chris Lattner wrote:> 3. I need a description of: PostRA scheduler for X86? FIXME: is this on by default in 2.7?The PostRA scheduler for X86 was disabled in r98810, after 2.7 branched. In the 2.7 branch it is only enabled for -O3 since it is quite expensive in compile time. It sometimes improves the generated code. Sometimes it doesn't.