2.7 release notes

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

Chris Lattner <clattner@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.html

One 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 :wink: ) in the introduction.

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.

Thanks, I must have missed these, added.

Much better, applied in r102096. Thanks for all the improvements Wesley!

Chris Lattner <clattner@apple.com> writes:

Thanks, I must have missed these, added.

Oops, I've introduced a duplicate. Sorry.

--- ReleaseNotes.html.old 2010-04-22 19:59:58.000000000 +0200
+++ ReleaseNotes.html 2010-04-22 20:00:01.000000000 +0200
@@ -855,9 +855,6 @@
<tt>GlobalValue::hasNotBeenReadFromBitcode</tt> with
<tt>GlobalValue::isMaterializable</tt>.</li>

-<li>The <tt>llvm/Support/DataTypes.h</tt> header has moved
-to <tt>llvm/System/DataTypes.h</tt>.</li>

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.

Goofing off, clear. r102121.

  - Doug

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.