mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-02 07:11:49 +00:00
checkpoint notes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115152 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
82d96cccbc
commit
4ba2b65b8e
@ -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>
|
||||
|
Loading…
Reference in New Issue
Block a user