2 SparcV8 backend skeleton
3 ------------------------
5 This directory houses a 32-bit SPARC V8 backend employing an expander-based
6 instruction selector. It is not yet functionally complete. Watch
7 this space for more news coming soon!
9 Current expected test failures
10 ------------------------------
12 Here are the currently-expected SingleSource failures for V8
13 (Some C++ programs are crashing in libstdc++ at the moment;
16 (llc) SingleSource/Regression/C++/EH/exception_spec_test
17 (llc) SingleSource/Regression/C++/EH/throw_rethrow_test
19 Here are the currently-expected MultiSource failures for V8:
21 (llc,cbe) MultiSource/Applications/d/make_dparser
22 (llc,cbe) MultiSource/Applications/hexxagon
23 (llc) MultiSource/Benchmarks/Fhourstones
24 (llc,cbe) MultiSource/Benchmarks/McCat/03-testtrie
25 (llc) MultiSource/Benchmarks/McCat/18-imp
26 (llc,cbe) MultiSource/Benchmarks/Prolangs-C/bison/mybison
27 (llc,cbe) MultiSource/Benchmarks/Prolangs-C/fixoutput
28 (llc,cbe) MultiSource/Benchmarks/Prolangs-C/gnugo
29 (llc,cbe) MultiSource/Benchmarks/Prolangs-C/plot2fig
30 (llc,cbe) MultiSource/Benchmarks/Ptrdist/anagram
31 (llc,cbe) MultiSource/Benchmarks/FreeBench/analyzer
32 * DANGER * analyzer will run the machine out of VM
33 (I don't know whether the following fail in cbe:)
34 (llc) MultiSource/Benchmarks/FreeBench/distray
35 (llc) MultiSource/Benchmarks/FreeBench/fourinarow
36 (llc) MultiSource/Benchmarks/FreeBench/pifft
37 (llc) MultiSource/Benchmarks/MallocBench/gs
38 (llc) MultiSource/Benchmarks/Prolangs-C++/deriv1
39 (llc) MultiSource/Benchmarks/Prolangs-C++/deriv2
41 Known SPEC failures for V8 (probably not an exhaustive list):
45 (llc) 188.ammp -- FPMover bug?
48 (native,llc,cbe) 126.gcc
49 (native,llc,cbe) 255.vortex
54 * support shl on longs (fourinarow needs this)
55 * support casting 64-bit integers to FP types (fhourstones needs this)
56 * support FP rem (call fmod)
58 * Eliminate srl/sll by zero bits like this:
62 We think these are only used by V9 to clear off the top 32 bits of a reg,
63 so they are not needed.
65 * Keep the address of the constant pool in a register instead of forming its
66 address all of the time.
68 * Change code like this:
69 or %o0, %lo(.CPI_main_0), %o0
72 ld [%o0+%lo(.CPI_main_0)], %o0
73 for constant pool access.
75 * We can fold small constant offsets into the %hi/%lo references to constant
76 pool addresses as well.