[llvm-branch-commits] [llvm-branch] r170521 - /llvm/branches/release_32/docs/ReleaseNotes.html

Pawel Wodnicki pawel at 32bitmicro.com
Wed Dec 19 01:57:57 PST 2012

Author: pawel
Date: Wed Dec 19 03:57:57 2012
New Revision: 170521

URL: http://llvm.org/viewvc/llvm-project?rev=170521&view=rev
Sync-up SROA notes


Modified: llvm/branches/release_32/docs/ReleaseNotes.html
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_32/docs/ReleaseNotes.html?rev=170521&r1=170520&r2=170521&view=diff
--- llvm/branches/release_32/docs/ReleaseNotes.html (original)
+++ llvm/branches/release_32/docs/ReleaseNotes.html Wed Dec 19 03:57:57 2012
@@ -579,12 +579,23 @@
-<p>SROA - We've re-written SROA to be significantly more powerful.
-<!-- FIXME: Add more text here... --></p>
+<p>SROA - We’ve re-written SROA to be significantly more powerful and generate
+code which is much more friendly to the rest of the optimization pipeline.
+Previously this pass had scaling problems that required it to only operate on
+relatively small aggregates, and at times it would mistakenly replace a large
+aggregate with a single very large integer in order to make it a scalar SSA
+value. The result was a large number of i1024 and i2048 values representing any
+small stack buffer. These in turn slowed down many subsequent optimization
+<p>The new SROA pass uses a different algorithm that allows it to only promote to
+scalars the pieces of the aggregate actively in use. Because of this it doesn’t
+require any thresholds. It also always deduces the scalar values from the uses
+of the aggregate rather than the specific LLVM type of the aggregate. These
+features combine to both optimize more code with the pass but to improve the
+compile time of many functions dramatically.</p>
   <li>Branch weight metadata is preseved through more of the optimizer.</li>
-  <li>...</li>

More information about the llvm-branch-commits mailing list