aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPawel Wodnicki <pawel@32bitmicro.com>2012-12-19 09:57:57 +0000
committerPawel Wodnicki <pawel@32bitmicro.com>2012-12-19 09:57:57 +0000
commit9fb60e5fee3594ec2ff43a7723d39471ee64187b (patch)
tree983e64853158bf9c8c4f9b202d336ed042260be0
parent4696c67bb668a7083badeb63a036c69eaa8a6987 (diff)
downloadllvm-9fb60e5fee3594ec2ff43a7723d39471ee64187b.zip
llvm-9fb60e5fee3594ec2ff43a7723d39471ee64187b.tar.gz
llvm-9fb60e5fee3594ec2ff43a7723d39471ee64187b.tar.bz2
Sync-up SROA notes
llvm-svn: 170521
-rw-r--r--llvm/docs/ReleaseNotes.html17
1 files changed, 14 insertions, 3 deletions
diff --git a/llvm/docs/ReleaseNotes.html b/llvm/docs/ReleaseNotes.html
index fbcafc3..1fc16a3 100644
--- a/llvm/docs/ReleaseNotes.html
+++ b/llvm/docs/ReleaseNotes.html
@@ -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&#8217;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&#8217;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>