Skip to content

Commit eb8eaa8

Browse files
committed
Sync-up SROA notes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_32@170521 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent 2691635 commit eb8eaa8

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

docs/ReleaseNotes.html

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -579,12 +579,23 @@ <h3>
579579

580580
</p>
581581

582-
<p>SROA - We've re-written SROA to be significantly more powerful.
583-
<!-- FIXME: Add more text here... --></p>
582+
<p>SROA - We&#8217;ve re-written SROA to be significantly more powerful and generate
583+
code which is much more friendly to the rest of the optimization pipeline.
584+
Previously this pass had scaling problems that required it to only operate on
585+
relatively small aggregates, and at times it would mistakenly replace a large
586+
aggregate with a single very large integer in order to make it a scalar SSA
587+
value. The result was a large number of i1024 and i2048 values representing any
588+
small stack buffer. These in turn slowed down many subsequent optimization
589+
paths.</p>
590+
<p>The new SROA pass uses a different algorithm that allows it to only promote to
591+
scalars the pieces of the aggregate actively in use. Because of this it doesn&#8217;t
592+
require any thresholds. It also always deduces the scalar values from the uses
593+
of the aggregate rather than the specific LLVM type of the aggregate. These
594+
features combine to both optimize more code with the pass but to improve the
595+
compile time of many functions dramatically.</p>
584596

585597
<ul>
586598
<li>Branch weight metadata is preseved through more of the optimizer.</li>
587-
<li>...</li>
588599
</ul>
589600

590601
</div>

0 commit comments

Comments
 (0)