1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00

add some more notes

llvm-svn: 57423
This commit is contained in:
Chris Lattner 2008-10-12 19:47:48 +00:00
parent 7e58510a50
commit 2e4842efdd

View File

@ -24,8 +24,6 @@
<p>Written by the <a href="http://llvm.org">LLVM Team</a><p>
</div>
<!-- Done through Week-of-Mon-20080324.txt -->
<!-- *********************************************************************** -->
<div class="doc_section">
<a name="intro">Introduction</a>
@ -70,7 +68,14 @@ It includes a large number of features and refinements from LLVM 2.3.</p>
Machine LICM
Machine Sinking
LegalizeDAGTypes
llc -enable-value-prop, propagation of value info (sign/zero ext info) from
one MBB to another
-->
<!-- for announcement email:
mention dev mtg
Xcode 3.1.1?
-->
<!--=========================================================================-->
<div class="doc_subsection">
@ -79,7 +84,11 @@ It includes a large number of features and refinements from LLVM 2.3.</p>
<div class="doc_text">
<p>....</p>
<p>The LLVM IR generated by llvm-gcc now doesn't name instructions. Use the
instnamer pass if you want them.</p>
<p>LLVM API Changes:</p>
@ -94,6 +103,8 @@ converted to strings using <tt>llvm::GetConstantStringInfo</tt> defined via
"llvm/Analysis/ValueTracking.h".</li>
<li>API change: BinaryOperator::create -> Create (CmpInst, CastInst too)</li>
<li>Various header files like "llvm/ADT/iterator" were given a .h suffix.
Change your code to #include "llvm/ADT/iterator.h" instead.</li>
</ul>
</div>
@ -182,14 +193,14 @@ this section.
is gone.</p>
</li>
<li><p>fast isel, -O0 compile times</p></li>
<li><p>-O0 compile times overall much faster</p></li>
<li><p>Attrs changes?</p></li>
<li><p>Initial PIC16 port</p></li>
<li><p> builtin sync_compare_and_swap builtins + intrinsics</p></li>
<li><p> Support the rest of the atomic __sync builtins</p></li>
<li><p>...</p></li>
@ -230,7 +241,7 @@ for the C, C++, Objective-C, Ada, and Fortran front-ends.</p>
<li>use diet patch landed: saved 15% IR memory footprint</li>
<li>LLVM IR now directly represents "common" linkage, instead of
representing it as a form of weak linkage.</li>
<li>DebugInfoBuilder</li>
<li>...</li>
</ul>
@ -248,6 +259,10 @@ LLVM 2.4 optimizers support a few major enhancements:</p>
<ul>
<li>GVN now does local PRE?</li>
<li>Matthijs' Dead argument elimination rewrite</li>
<li>Old-ADCE used control dependence and deleted output-free infinite loops.
Added a new Loop deletion pass (for deleting output free provably-finite loops)
and rewrote ADCE to be simpler faster, and not need control dependence.</li>
@ -258,6 +273,10 @@ and rewrote ADCE to be simpler faster, and not need control dependence.</li>
<li>Tail duplication was is removed from the standard optimizer sequence.</li>
<li>Various helper functions (ComputeMaskedBits, ComputeNumSignBits, etc) were
pulled out of instcombine and put into a new ValueTracking.h file, where they
can be reused by other passes.</li>
</ul>
</div>
@ -274,7 +293,15 @@ which allows us to implement more aggressive algorithms and make it run
faster:</p>
<ul>
<li>2-addr pass can now remat trivial insts to avoid a copy.</li>
<li>spiller to commute instructions in order to fold a reload</li>
<li>Stack slot coloring?</li>
<li>Live intervals renumbering? Is this useful to external people?</li>
<li>'is as cheap as a move' instruction flag</li>
<li>Improvements to selection dag viewing</li>
<li>fast isel</li>
<li>Selection dag speedups</li>
<li>asmwriter + raw_ostream -> fastah</li>
<li>...</li>
</ul>
@ -292,7 +319,8 @@ faster:</p>
</p>
<ul>
<li>Exception handling is supported by default on x86-64 linux platform.</li>
<li>Exception handling is supported by default on Linux/x86-64.</li>
<li>Position Independent Code (PIC) is now support on Linux/x86-64.</li>
<li>...</li>
</ul>
@ -326,6 +354,7 @@ faster:</p>
</p>
<ul>
<li>raw_ostream + formatting</li>
<li>...</li>
</ul>