mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-20 11:29:24 +00:00
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24745 91177308-0d34-0410-b5e6-96231b3b80d8
88 lines
2.9 KiB
Plaintext
88 lines
2.9 KiB
Plaintext
|
|
Meta TODO list:
|
|
1. Convert all instructions to use autogeneration for asm strings.
|
|
2. Convert asmprinter to use lib/CodeGen/AsmPrinter for global init printing
|
|
constant pool printing, etc.
|
|
3. Create a new DAG -> DAG instruction selector, by adding patterns to the
|
|
instructions.
|
|
4. profit!
|
|
|
|
|
|
SparcV8 backend skeleton
|
|
------------------------
|
|
|
|
This directory houses a 32-bit SPARC V8 backend employing an expander-based
|
|
instruction selector. It is not yet functionally complete. Watch
|
|
this space for more news coming soon!
|
|
|
|
Current expected test failures
|
|
------------------------------
|
|
|
|
Here are the currently-expected SingleSource failures for V8
|
|
(Some C++ programs are crashing in libstdc++ at the moment;
|
|
I'm not sure why.)
|
|
|
|
(llc) SingleSource/Regression/C++/EH/exception_spec_test
|
|
(llc) SingleSource/Regression/C++/EH/throw_rethrow_test
|
|
|
|
Here are the currently-expected MultiSource failures for V8:
|
|
|
|
(llc,cbe) MultiSource/Applications/d/make_dparser
|
|
(llc,cbe) MultiSource/Applications/hexxagon
|
|
(llc) MultiSource/Benchmarks/Fhourstones
|
|
(llc,cbe) MultiSource/Benchmarks/McCat/03-testtrie
|
|
(llc) MultiSource/Benchmarks/McCat/18-imp
|
|
(llc,cbe) MultiSource/Benchmarks/Prolangs-C/bison/mybison
|
|
(llc,cbe) MultiSource/Benchmarks/Prolangs-C/fixoutput
|
|
(llc,cbe) MultiSource/Benchmarks/Prolangs-C/gnugo
|
|
(llc,cbe) MultiSource/Benchmarks/Prolangs-C/plot2fig
|
|
(llc,cbe) MultiSource/Benchmarks/Ptrdist/anagram
|
|
(llc,cbe) MultiSource/Benchmarks/FreeBench/analyzer
|
|
* DANGER * analyzer will run the machine out of VM
|
|
(I don't know whether the following fail in cbe:)
|
|
(llc) MultiSource/Benchmarks/FreeBench/distray
|
|
(llc) MultiSource/Benchmarks/FreeBench/fourinarow
|
|
(llc) MultiSource/Benchmarks/FreeBench/pifft
|
|
(llc) MultiSource/Benchmarks/MallocBench/gs
|
|
(llc) MultiSource/Benchmarks/Prolangs-C++/deriv1
|
|
(llc) MultiSource/Benchmarks/Prolangs-C++/deriv2
|
|
|
|
Known SPEC failures for V8 (probably not an exhaustive list):
|
|
|
|
(llc) 134.perl
|
|
(llc) 177.mesa
|
|
(llc) 188.ammp -- FPMover bug?
|
|
(llc) 256.bzip2
|
|
(llc,cbe) 130.li
|
|
(native,llc,cbe) 126.gcc
|
|
(native,llc,cbe) 255.vortex
|
|
|
|
To-do
|
|
-----
|
|
|
|
* support shl on longs (fourinarow needs this)
|
|
* support casting 64-bit integers to FP types (fhourstones needs this)
|
|
* support FP rem (call fmod)
|
|
|
|
* Keep the address of the constant pool in a register instead of forming its
|
|
address all of the time.
|
|
|
|
* Change code like this:
|
|
or %o0, %lo(.CPI_main_0), %o0
|
|
ld [%o0+0], %o0
|
|
into:
|
|
ld [%o0+%lo(.CPI_main_0)], %o0
|
|
for constant pool access.
|
|
|
|
* We can fold small constant offsets into the %hi/%lo references to constant
|
|
pool addresses as well.
|
|
|
|
* Directly support select instructions, and fold setcc instructions into them
|
|
where possible. I think this is what afflicts the inner loop of Olden/tsp
|
|
(hot block = tsp():no_exit.1.i, overall GCC/LLC = 0.03).
|
|
|
|
* Generate fsqrtd for calls to sqrt() (~ 4% speedup on Olden/tsp).
|
|
|
|
$Date$
|
|
|