mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-13 15:11:39 +00:00
add more notes.
llvm-svn: 52099
This commit is contained in:
parent
fe2a970a5c
commit
032b2d2e17
@ -85,6 +85,9 @@ upgrading LLVM 1.9 files to LLVM 2.x syntax, but you can always use a previous
|
||||
LLVM release to do this. One nice impact of this is that the LLVM regression
|
||||
test suite no longer depends on llvm-upgrade, which makes it run faster.</p>
|
||||
|
||||
<p><tt>llvm2cpp</tt> tool has been folded into llc, use
|
||||
<tt>llc -march=cpp</tt> instead of <tt>llvm2cpp</tt>.</p>
|
||||
|
||||
<p>LLVM API Changes:</p>
|
||||
|
||||
<ul>
|
||||
@ -249,8 +252,11 @@ deletion pass, which <em>is</em> safe for infinite loops.</li>
|
||||
|
||||
<li>LLVM now includes a simple 'Jump Threading' pass, which attempts to simplify
|
||||
conditional branches using information about predecessor blocks, simplifying
|
||||
the control flow graph. This pass is pretty basic at this point, but catches
|
||||
some important cases and provides a foundation to build on.</li>
|
||||
the control flow graph. This pass is pretty basic at this point, but
|
||||
catches some important cases and provides a foundation to build on.</li>
|
||||
|
||||
<li>Several corner case bugs which could lead to deleting volatile memory
|
||||
accesses have been fixed.</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@ -275,7 +281,9 @@ faster:</p>
|
||||
target-specific support. Use of APInt is also a step toward support for
|
||||
non-power-of-2 integer sizes.</li>
|
||||
|
||||
<li>Several compile time speedups for code with large basic blocks.</li>
|
||||
<li>LLVM 2.3 includes several compile time speedups for code with large basic
|
||||
blocks, particular in the instruction selection phase, register allocation,
|
||||
scheduling, and tail merging/jump threading.</li>
|
||||
|
||||
<li>Several improvements which make llc's <tt>--view-sunit-dags</tt>
|
||||
visualization of scheduling dependency graphs easier to understand.</li>
|
||||
@ -286,6 +294,16 @@ faster:</p>
|
||||
<li><tt>memcpy</tt> lowering in the backend is more aggressive, particularly for
|
||||
<tt>memcpy</tt> calls introduced by the code generator when handling
|
||||
pass-by-value structure argument copies.</li>
|
||||
|
||||
<li>Inline assembly with multiple register results now returns those results
|
||||
directly in the appropriate registers, rather than going through memory.
|
||||
Inline assembly that uses constraints like "ir" with immediates now use the
|
||||
'i' form when possible instead of always loading the value in a register.
|
||||
This saves an instruction and reduces register use.</li>
|
||||
|
||||
<li>Added support for PIC/GOT style tail calls on x86/32 and initial support
|
||||
for tail calls on PowerPC 32 (it may also work on ppc64 but not
|
||||
thoroughly tested).</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@ -336,6 +354,9 @@ faster:</p>
|
||||
|
||||
<li>The register allocator can now rematerialize PIC-base computations.</li>
|
||||
|
||||
<li>The "t" and "f" inline assembly constraints for the X87 floating point stack
|
||||
now work. However, the "u" constraint is still not fully supported.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@ -351,8 +372,6 @@ faster:</p>
|
||||
|
||||
<ul>
|
||||
<li>The LLVM C backend now supports vector code.</li>
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@ -370,8 +389,9 @@ faster:</p>
|
||||
|
||||
<ul>
|
||||
<li>LLVM now builds with GCC 4.3.</li>
|
||||
<li><tt>llvm2cpp</tt> tool has been folded into llc, use
|
||||
<tt>llc -march=cpp</tt></li>
|
||||
<li>Bugpoint now supports running custom scripts (with the <tt>-run-custom</tt>
|
||||
option) to determine how to execute the command and whether it is making
|
||||
forward process.</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@ -456,8 +476,8 @@ href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">LLVMdev list</a>.</p>
|
||||
all <a href="http://llvm.org/PR879">inline assembly that uses the X86
|
||||
floating point stack</a>. It supports the 'f' and 't' constraints, but not
|
||||
'u'.</li>
|
||||
<li>The X86 backend generates inefficient floating point code when configured to
|
||||
generate code for systems that don't have SSE2.</li>
|
||||
<li>The X86 backend generates inefficient floating point code when configured
|
||||
to generate code for systems that don't have SSE2.</li>
|
||||
<li>Win64 code generation wasn't widely tested. Everything should work, but we
|
||||
expect small issues to happen. Also, llvm-gcc cannot build mingw64 runtime
|
||||
currently due
|
||||
@ -494,7 +514,8 @@ processors, thumb programs can crash or produce wrong
|
||||
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
|
||||
<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>
|
||||
|
||||
@ -651,11 +672,12 @@ crashing if an exception is raised. Workaround: do not use -E.</li>
|
||||
or finish at a non-byte offset</a> in a record. Workaround: do not pack records
|
||||
or use representation clauses that result in a field of a non-discrete type
|
||||
starting or finishing in the middle of a byte.</li>
|
||||
<li>The <tt>lli</tt> interpreter <a href="http://llvm.org/PR2009">considers 'main'
|
||||
as generated by the Ada binder to be invalid</a>.
|
||||
Workaround: hand edit the file to use pointers for <tt>argv</tt> and <tt>envp</tt> rather than
|
||||
integers.</li>
|
||||
<li>The <tt>-fstack-check</tt> option <a href="http://llvm.org/PR2008">is ignored</a>.</li>
|
||||
<li>The <tt>lli</tt> interpreter <a href="http://llvm.org/PR2009">considers
|
||||
'main' as generated by the Ada binder to be invalid</a>.
|
||||
Workaround: hand edit the file to use pointers for <tt>argv</tt> and
|
||||
<tt>envp</tt> rather than integers.</li>
|
||||
<li>The <tt>-fstack-check</tt> option <a href="http://llvm.org/PR2008">is
|
||||
ignored</a>.</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user