[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
Log:
Sync-up SROA notes
Modified:
llvm/branches/release_32/docs/ReleaseNotes.html
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>
-<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
+paths.</p>
+<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>
<ul>
<li>Branch weight metadata is preseved through more of the optimizer.</li>
- <li>...</li>
</ul>
</div>
More information about the llvm-branch-commits
mailing list