[llvm-commits] [llvm] r83530 - /llvm/trunk/docs/ReleaseNotes-2.6.html
Chris Lattner
sabre at nondot.org
Wed Oct 7 23:27:53 PDT 2009
Author: lattner
Date: Thu Oct 8 01:27:53 2009
New Revision: 83530
URL: http://llvm.org/viewvc/llvm-project?rev=83530&view=rev
Log:
checkpoint, this is still not comprehendible.
Modified:
llvm/trunk/docs/ReleaseNotes-2.6.html
Modified: llvm/trunk/docs/ReleaseNotes-2.6.html
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/ReleaseNotes-2.6.html?rev=83530&r1=83529&r2=83530&view=diff
==============================================================================
--- llvm/trunk/docs/ReleaseNotes-2.6.html (original)
+++ llvm/trunk/docs/ReleaseNotes-2.6.html Thu Oct 8 01:27:53 2009
@@ -52,26 +52,8 @@
</div>
- Many new papers added to /pubs/
- Machine LICM, hoists things like constant pool loads, loads from readonly stubs, vector constant synthesization code, etc.
- Machine Sinking
- Regalloc improvements for commuting, various spiller peephole optimizations, cross-class coalescing.
- Support for debug line numbers when optimization enabled
- gold lto plugin
-
- target-specific intrinsics (r63765)
- <tt>llc -enable-value-prop</tt>, propagation of value info (sign/zero ext info) from one MBB to another
- interpreter + libffi
- LLVMContext
- Preliminary support for addrspace 256 -> GS, 257 -> FS, known problems: CodeGenerator.html#x86_memory
-
-Add support for the PowerPC 64-bit SVR4 ABI.
-
- NSW/NUW/exact div
- Inbounds for GEP
- SRoA improvements for vector unions, memset, arbitrary weird bitfield accesses etc. It now produces "strange" sized integers.
- pre-alloc splitter??
- X86: Support for softfloat modes, typically used by OS kernels.
+
+
MC:
MCSection, MCAsmInfo
MCInstPrinter did it make it in?
@@ -83,94 +65,23 @@
ELF Writer? How stable?
- LSR promotes int induction variables to 64-bit on 64-bit targets, major perf boost for numerical code.
- LSR now analyzes pointer expressions (e.g. getelementptrs), not just integers.
- Stack slot coloring for register spills (denser stack frames)
- SelectionDAGS: New BuildVectorSDNode (r65296), and ISD::VECTOR_SHUFFLE (r69952 / PR2957)
- New PrettyStackTrace, crashes of llvm tools should give some indication of what the compiler was doing at the time of the crash (e.g. running a pass), and print out command line arguments.
- new linkage types linkonce_odr, weak_odr, linker_private, and available_externally.
- Inliner reuse stack space when inlining arrays?
-
- Regalloc hints for allocation stuff: Evan r73381/r73671. Finished/enabled?
- API Cleanup:
- no use of hash_set/hash_map, no more llvm::OStream
- Use raw_ostream for everything, killed off llvm/Streams.h and DOUT
-
- Mips now supports O32 Calling Convention
-
- StringRef class, Twine class.
- New BlackFin backend.
-
+APIs:
+
Shrink wrapping support in PEI, what is the state of it?
- X86-64: better modeling of implicit zero extensions, eliminates a lot of redundant zexts
- X86-64 TLS support for local exec and initial exec.
- X86 - Better modeling of H registerts as subregs.
- Getelementpr instruction now allows any integer type for array/pointer indexes.
-
- include/llvm/Analysis/LiveValues.h => dead??
- lib/Analysis/LoopVR.cpp ==> dead??
- include/llvm/CodeGen/LazyLiveness.h ==> dead?
- lib/Transforms/IPO/MergeFunctions.cpp ==> dead?
- llvm/Analysis/PointerTracking.h ==> dead??
- PRedSimplify -> Ask vmkit if it is still useful and for testcases.
-
- ARM calling convention code is now tblgen generated instead of manual.
- ARM: NEON support. neonfp for doing single precision fp with neon instead of VFP.
- Tblgen now supports multiclass inheritance.
- Unladen swallow as user?
- Loop index split disabled by default?
-
- New WeakVH and AssertingVH and CallbackVH classes.
- New llvm/ADT/Triple class.
- Removed the IA64 backend.
- Profile info improvements by Andreas Neustifter.
- PostRA scheduler improvements David Goodwin.
+<!--
+Almost dead code.
+ include/llvm/Analysis/LiveValues.h => dan
+ lib/Analysis/LoopVR.cpp ==> dan/nick/owen
+ lib/Transforms/IPO/MergeFunctions.cpp
+ llvm/Analysis/PointerTracking.h
+-->
- New MSP430 and SystemZ backends.
- llvm-gcc now supports a new TCE target.
- klee web page at klee.llvm.org
- New llvm/System/Atomic.h, llvm/System/RWMutex.h for portable atomic ops, rw locks.
- llvm_start_multithreaded: ProgrammersMAnual.html#threading
-
- Tablegen now supports a number of new string and list operations like
- !(subst), !(foreach), !car, !cdr, !null, !if, !cast.
- New fadd, fsub, fmul instructions and classes.
- New MachineVerifier pass.
- Enabled GVN Load PRE.
- ARM AAPCS-VFP hard float ABI is supported.
-
LLVM build now builds all libraries as .a files instead of some
libraries as relinked .o files. This requires some APIs like
InitializeAllTargets.h. TargetRegistry!
-
- ARM Thumb2 support: status?
- CBE status: not part of the release criteria.
-
- New SourceMgr, SMLoc classes for simple parsers with caret diagnostics and #include support, (used by
- tablegen, llvm-mc, the .ll parser, FileCheck, etc)
- FileCheck! + CHECK-NEXT
- New compiler-rt project.
- New Static Single Information (SSI) construction pass (not used by anything yet, experimental).
- llvm_report_error() error handling API (llvm/Support/ErrorHandling.h)
-
- x86: Vector icmp/fcmp now work with SSE codegen.
- X86: all global variable reference logic is now in ClassifyGlobalReference.
- JIT support for oprofile (r75279), configure with --with-oprofile. Now we get line # and function info for JIT'd functions.
- Mention gcc plugin.
-
- New EngineBuilder class for creating JITs: r76276 Reid Kleckner <reid at kleckner.net>
-
- -asm-verbose now prints location info (with -g) and loop nest info.
- JIT now supports generating more than 16M of code.
-
-removed the BigBlock register allocator, it had bitrotted.
-Target intrinsics can now return multiple results.
-
- SSE 4.2 support.
- Ada bindings for LLVM IR.
- Many extensions to the C APIs.
+
<!-- Unfinished features in 2.6:
Mention gcc plugin.
@@ -185,6 +96,10 @@
Logo web page.
llvm devmtg
compiler_rt
+ klee web page at klee.llvm.org
+ Many new papers added to /pubs/
+ Mention gcc plugin.
+
-->
<!-- *********************************************************************** -->
@@ -406,6 +321,7 @@
minor improvements. Some of the major improvements and new features are listed
in this section.
</p>
+
</div>
<!--=========================================================================-->
@@ -418,7 +334,15 @@
<p>LLVM 2.6 includes several major new capabilities:</p>
<ul>
-<li>Something wonderful!</li>
+<li>Support for debug line numbers when optimization enabled</li>
+<li>gold lto plugin</li>
+<li>New MSP430 and SystemZ backends.</li>
+<li>New BlackFin backend.</li>
+<li>LLVMContext, llvm_start_multithreaded: ProgrammersManual.html#threading</li>
+<li>Unladen swallow as user?</li>
+<li>klee web page at klee.llvm.org</li>
+<li>FileCheck</li>
+<li>New compiler-rt project.</li>
<li>LLVM 2.6 includes a brand new experimental LLVM bindings to the Ada2005 programming language.</li>
</ul>
@@ -453,7 +377,14 @@
can be useful if you are writing a front-end for LLVM:</p>
<ul>
-<li>Something wonderful!</li>
+<li>Getelementpr instruction now allows any integer type for array/pointer indexes.</li>
+<li>Inbounds for GEP</li>
+<li>NSW/NUW/exact div</li>
+<li>LSR promotes int induction variables to 64-bit on 64-bit targets, major perf boost for numerical code.</li>
+<li>LSR now analyzes pointer expressions (e.g. getelementptrs), not just integers.</li>
+<li>new linkage types linkonce_odr, weak_odr, linker_private, and available_externally.</li>
+<li>New fadd, fsub, fmul instructions and classes. </li>
+<li>Target intrinsics can now return multiple results.</li>
</ul>
</div>
@@ -470,7 +401,11 @@
<ul>
-<li>Something wonderful!</li>
+<li>SRoA improvements for vector unions, memset, arbitrary weird bitfield accesses etc. It now produces "strange" sized integers.</li>
+<li>Inliner reuse stack space when inlining arrays?</li>
+<li>Enabled GVN Load PRE.</li>
+<li>New Static Single Information (SSI) construction pass (not used by anything yet, experimental).</li>
+</li>
</ul>
@@ -489,7 +424,22 @@
<ul>
-<li>Something wonderful!</li>
+<li> -asm-verbose now prints location info (with -g) and loop nest info.</li>
+<li>Tblgen now supports multiclass inheritance and a number of new string and
+ list operations like !(subst), !(foreach), !car, !cdr, !null, !if, !cast.
+ These make the .td files more expressive and allow more aggressive factoring
+ of duplication across instruction patterns.</li>
+<li>New MachineVerifier pass.</li>
+<li>Machine LICM, hoists things like constant pool loads, loads from readonly stubs, vector constant synthesization code, etc.</li>
+<li>Machine Sinking</li>
+<li>target-specific intrinsics (r63765)</li>
+<li>Regalloc improvements for commuting, various spiller peephole optimizations, cross-class coalescing.</li>
+<li><tt>llc -enable-value-prop</tt>, propagation of value info (sign/zero ext info) from one MBB to another</li>
+<li>Regalloc hints for allocation stuff: Evan r73381/r73671. Finished/enabled?</li>
+<li>Stack slot coloring for register spills (denser stack frames)</li>
+<li>SelectionDAGS: New BuildVectorSDNode (r65296), and ISD::VECTOR_SHUFFLE (r69952 / PR2957)</li>
+<li>PostRA scheduler improvements David Goodwin.</li>
+</li>
</ul>
</div>
@@ -504,7 +454,16 @@
<ul>
-<li>Something wonderful!</li>
+<li>Preliminary support for addrspace 256 -> GS, 257 -> FS, known problems: CodeGenerator.html#x86_memory</li>
+<li>Support for softfloat modes, typically used by OS kernels.</li>
+
+<li>X86-64: better modeling of implicit zero extensions, eliminates a lot of redundant zexts</li>
+<li>X86-64 TLS support for local exec and initial exec.</li>
+<li>Better modeling of H registerts as subregs.</li>
+<li>Vector icmp/fcmp now work with SSE codegen.</li>
+<li>SSE 4.2 support.</li>
+<li>all global variable reference logic is now in ClassifyGlobalReference.</li>
+</li>
</ul>
</div>
@@ -519,18 +478,18 @@
</p>
<ul>
-<li>Something wonderful!</li>
+<li>Support for floating-point, indirect function calls, and
+ passing/returning aggregate types to functions.
+<li>The code generator is able to generate debug info into output COFF files.
+<li>Support for placing an object into a specific section or at a specific
+ address in memory.</li>
</ul>
<p>Things not yet supported:</p>
<ul>
-<li>Floating point.</li>
-<li>Passing/returning aggregate types to and from functions.</li>
<li>Variable arguments.</li>
-<li>Indirect function calls.</li>
<li>Interrupts/programs.</li>
-<li>Debug info.</li>
</ul>
</div>
@@ -554,21 +513,74 @@
and subject to change. The Neon intrinsics, in particular, may change in future
releases of LLVM.
</li>
+
+ ARM AAPCS-VFP hard float ABI is supported.
+ ARM calling convention code is now tblgen generated instead of manual.
+ ARM: NEON support. neonfp for doing single precision fp with neon instead of VFP.
+
</ul>
</div>
+<!--=========================================================================-->
+<div class="doc_subsection">
+<a name="OtherTarget">Other Target Specific Improvements</a>
+</div>
+
+<div class="doc_text">
+<p>New features of other targets include:
+</p>
+
+<ul>
+<li>Add support for the PowerPC 64-bit SVR4 ABI.</li>
+<li>Mips now supports O32 Calling Convention.</li>
+</ul>
+
+</div>
<!--=========================================================================-->
<div class="doc_subsection">
-<a name="llvmc">Improvements in LLVMC</a>
+<a name="newapis">New Useful APIs</a>
</div>
<div class="doc_text">
-<p>New features include:</p>
<ul>
-<li>Something wonderful!</li>
+<li>New EngineBuilder class for creating JITs: r76276</li>
+ New PrettyStackTrace, crashes of llvm tools should give some indication of what the compiler was doing at the time of the crash (e.g. running a pass), and print out command line arguments.
+ StringRef class, Twine class.
+ New WeakVH and AssertingVH and CallbackVH classes.
+ New llvm/ADT/Triple class.
+ llvm_report_error() error handling API (llvm/Support/ErrorHandling.h)
+ New llvm/System/Atomic.h, llvm/System/RWMutex.h for portable atomic ops, rw locks.
+ New SourceMgr, SMLoc classes for simple parsers with caret diagnostics and #include support, (used by
+ tablegen, llvm-mc, the .ll parser, FileCheck, etc)
+
+<ul>
+
+
+</div>
+
+<!--=========================================================================-->
+<div class="doc_subsection">
+<a name="otherimprovements">Other Improvements and New Features</a>
+</div>
+
+<div class="doc_text">
+<p>Other miscellaneous features include:</p>
+
+<ul>
+<li>interpreter + libffi</li>
+<li> JIT now supports generating more than 16M of code.</li>
+<li>Users can now <a
+href="http://llvm.org/doxygen/classllvm_1_1ExecutionEngine.html#fcd2b4b92ca38812ca31640b0da14927">register</a>
+a <a href="http://llvm.org/doxygen/classllvm_1_1JITEventListener.html">JITEventListener</a>
+to receive callbacks when the JIT emits or frees machine code. The
+OProfile support uses this mechanism.</li>
+ JIT support for oprofile (r75279), configure with --with-oprofile. Now we get line # and function info for JIT'd functions.
+
+<li> Profile info improvements by Andreas Neustifter.</li>
+<li> Many extensions to the C APIs.</li>
</ul>
</div>
@@ -587,14 +599,23 @@
<ul>
-<li>Something horrible!</li>
-
+<li>The Itanium (IA64) backend has been removed. It was not supported and
+ bitrotted.</li>
+<li>The BigBlock register allocator has been removed, it also bitrotted.</li>
+<li>The C Backend (-march=c) is no longer considered part of the LLVM release
+criteria. We still want it to work, but no one is maintaining it and it lacks
+support for arbitrary precision integers and other important IR features.</li>
</ul>
<p>In addition, many APIs have changed in this release. Some of the major LLVM
API changes are:</p>
+
+ API Cleanup:
+ no use of hash_set/hash_map, no more llvm::OStream
+ Use raw_ostream for everything, killed off llvm/Streams.h and DOUT
+
<ul>
<li>LLVM's global uniquing tables for <tt>Type</tt>s and <tt>Constant</tt>s have
been privatized into members of an <tt>LLVMContext</tt>. A number of APIs
@@ -724,7 +745,7 @@
See: <a href="#brokengcc">Broken versions of GCC and other tools</a>.
However, A <a href="http://pkg.auroraux.org/GCC">Modern GCC Build</a>
for x86/x64 has been made available from the third party AuroraUX Project
-that has been meticulously tested for bootstrapping LLVM & Clang.</li>
+that has been meticulously tested for bootstrapping LLVM & Clang.</li>
</ul>
</div>
@@ -809,9 +830,6 @@
results (<a href="http://llvm.org/PR1388">PR1388</a>).</li>
<li>Compilation for ARM Linux OABI (old ABI) is supported but not fully tested.
</li>
-<li>There is a bug in QEMU-ARM (<= 0.9.0) which causes it to incorrectly
- execute
-programs compiled with LLVM. Please use more recent versions of QEMU.</li>
</ul>
</div>
More information about the llvm-commits
mailing list