d45a370e23eb0e3409be44aea7783b95bc817f2a
[oota-llvm.git] / lib / Target / Sparc / README.txt
1
2 SparcV8 backend skeleton
3 ------------------------
4
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!
8
9 Current expected test failures
10 ------------------------------
11
12 Here are the currently-expected SingleSource failures for V8
13 (Some C++ programs are crashing in libstdc++ at the moment;
14 I'm not sure why.)
15
16   (llc) SingleSource/Regression/C++/EH/exception_spec_test
17   (llc) SingleSource/Regression/C++/EH/throw_rethrow_test
18
19 Here are the currently-expected MultiSource failures for V8:
20
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
40
41 Known SPEC failures for V8 (probably not an exhaustive list):
42
43   (llc) 134.perl
44   (llc) 177.mesa
45   (llc) 188.ammp -- FPMover bug?
46   (llc) 256.bzip2
47   (llc,cbe) 130.li
48   (native,llc,cbe) 126.gcc
49   (native,llc,cbe) 255.vortex
50
51 To-do
52 -----
53
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)
57
58 * Eliminate srl/sll by zero bits like this:
59         sll %l0, 0, %l0
60         srl %l0, 0, %o0
61
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.
64
65 * Keep the address of the constant pool in a register instead of forming its
66   address all of the time.
67
68 * Change code like this:
69         or      %o0, %lo(.CPI_main_0), %o0
70         ld      [%o0+0], %o0
71   into:
72         ld      [%o0+%lo(.CPI_main_0)], %o0
73   for constant pool access.
74
75 * We can fold small constant offsets into the %hi/%lo references to constant
76   pool addresses as well.
77
78 $Date$
79