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

checkpoint notes

llvm-svn: 115152
This commit is contained in:
Chris Lattner 2010-09-30 16:31:33 +00:00
parent 3f7e313552
commit 2ea322b13d

View File

@ -103,7 +103,28 @@ Almost dead code.
changing between equvivalent opcodes where possible.
Support for the Intel AES instructions in the assembler.
memcpy, memmove, and memset now take address space qualified pointers + volatile.
per-instruction debug info metadata is much faster and uses less space (new DebugLoc class).
-ffunction-sections and -fdata-sections are supported on ELF targets.
Now iterate function passes when a cgsccpassmanager detects a devirtualization
-momit-leaf-frame-pointer now supported.
New -regalloc=fast, =local got removed
New -regalloc=default option that chooses a register allocator based on the -O optimization level.
New "trap values" concept: http://llvm.org/docs/LangRef.html#trapvalues
Improved trip count analysis for <= and >= loops, and uses sign overflow info.
REMOVED: SCCVN pass.
X86 backend attempts to promote 16-bit integer operations to 32-bits to avoid
0x66 prefixes, which are slow on some microarchitectures and bloat the code
on others.
X87 fp stackifier is global!
LTO debug info support?
NEON: Better performance for QQQQ (4-consecutive Q register) instructions. New reg sequence abstraction?
New support for X86 "thiscall" calling convention (x86_thiscallcc in IR).
ARM: Better scheduling (list-hybrid, hybrid?)
New SubRegIndex tblgen class for targets -> jakob
ARM: Tail call support.
AVX support in the MC assembler. Full compiler support not done yet.
Atomics now get legalized when not natively supported (jim g)
ARM: General performance work and tuning.
-->
@ -145,6 +166,7 @@ production-quality compiler for C, Objective-C, C++ and Objective-C++ on x86
<ul>
<li>Surely these guys have done something</li>
<li>X86-64 abi improvements? Did they make it in?</li>
</ul>
</div>
@ -245,29 +267,6 @@ supported, and only on linux and darwin (darwin needs an additional gcc patch).
</div>
<!--=========================================================================-->
<div class="doc_subsection">
<a name="mc">llvm-mc: Machine Code Toolkit</a>
</div>
<div class="doc_text">
<p>
The LLVM Machine Code (aka MC) sub-project of LLVM was created to solve a number
of problems in the realm of assembly, disassembly, object file format handling,
and a number of other related areas that CPU instruction-set level tools work
in. It is a sub-project of LLVM which provides it with a number of advantages
over other compilers that do not have tightly integrated assembly-level tools.
For a gentle introduction, please see the <a
href="http://blog.llvm.org/2010/04/intro-to-llvm-mc-project.html">Intro to the
LLVM MC Project Blog Post</a>.
</p>
<p>2.8 status here. Basic correctness, some obscure missing instructions on
mainline, on by default in clang.
Entire compiler backend converted to use mcstreamer.
</p>
</div>
<!--=========================================================================-->
<div class="doc_subsection">
<a name="lldb">LLDB: Low Level Debugger</a>
@ -585,6 +584,33 @@ release includes a few major enhancements and additions to the optimizers:</p>
</div>
<!--=========================================================================-->
<div class="doc_subsection">
<a name="mc">MC Level Improvements</a>
</div>
<div class="doc_text">
<p>
FIXME: Rewrite.
The LLVM Machine Code (aka MC) sub-project of LLVM was created to solve a number
of problems in the realm of assembly, disassembly, object file format handling,
and a number of other related areas that CPU instruction-set level tools work
in. It is a sub-project of LLVM which provides it with a number of advantages
over other compilers that do not have tightly integrated assembly-level tools.
For a gentle introduction, please see the <a
href="http://blog.llvm.org/2010/04/intro-to-llvm-mc-project.html">Intro to the
LLVM MC Project Blog Post</a>.
</p>
<p>2.8 status here. Basic correctness, some obscure missing instructions on
mainline, on by default in clang.
Entire compiler backend converted to use mcstreamer.
</p>
</div>
<!--=========================================================================-->
<div class="doc_subsection">
<a name="codegen">Target Independent Code Generator Improvements</a>