1d7ceac3f60c7b8ad9a151cf8b15d3a46597e92c
[oota-llvm.git] / lib / Target / Sparc / README.txt
1
2 Meta TODO list:
3 1. Create a new DAG -> DAG instruction selector, by adding patterns to the
4    instructions.
5 2. ???
6 3. profit!
7
8
9 SparcV8 backend skeleton
10 ------------------------
11
12 This directory houses a 32-bit SPARC V8 backend employing an expander-based
13 instruction selector.  It is not yet functionally complete.  Watch
14 this space for more news coming soon!
15
16 Current expected test failures
17 ------------------------------
18
19 Here are the currently-expected SingleSource failures for V8
20 (Some C++ programs are crashing in libstdc++ at the moment;
21 I'm not sure why.)
22
23   (llc) SingleSource/Regression/C++/EH/exception_spec_test
24   (llc) SingleSource/Regression/C++/EH/throw_rethrow_test
25
26 Here are the currently-expected MultiSource failures for V8:
27
28   (llc,cbe) MultiSource/Applications/d/make_dparser
29   (llc,cbe) MultiSource/Applications/hexxagon
30   (llc) MultiSource/Benchmarks/Fhourstones
31   (llc,cbe) MultiSource/Benchmarks/McCat/03-testtrie
32   (llc) MultiSource/Benchmarks/McCat/18-imp
33   (llc,cbe) MultiSource/Benchmarks/Prolangs-C/bison/mybison
34   (llc,cbe) MultiSource/Benchmarks/Prolangs-C/fixoutput
35   (llc,cbe) MultiSource/Benchmarks/Prolangs-C/gnugo
36   (llc,cbe) MultiSource/Benchmarks/Prolangs-C/plot2fig
37   (llc,cbe) MultiSource/Benchmarks/Ptrdist/anagram
38   (llc,cbe) MultiSource/Benchmarks/FreeBench/analyzer
39     * DANGER * analyzer will run the machine out of VM
40   (I don't know whether the following fail in cbe:)
41   (llc) MultiSource/Benchmarks/FreeBench/distray
42   (llc) MultiSource/Benchmarks/FreeBench/fourinarow
43   (llc) MultiSource/Benchmarks/FreeBench/pifft
44   (llc) MultiSource/Benchmarks/MallocBench/gs
45   (llc) MultiSource/Benchmarks/Prolangs-C++/deriv1
46   (llc) MultiSource/Benchmarks/Prolangs-C++/deriv2
47
48 Known SPEC failures for V8 (probably not an exhaustive list):
49
50   (llc) 134.perl
51   (llc) 177.mesa
52   (llc) 188.ammp -- FPMover bug?
53   (llc) 256.bzip2
54   (llc,cbe) 130.li
55   (native,llc,cbe) 126.gcc
56   (native,llc,cbe) 255.vortex
57
58 To-do
59 -----
60
61 * support shl on longs (fourinarow needs this)
62 * support casting 64-bit integers to FP types (fhourstones needs this)
63 * support FP rem (call fmod)
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 * Directly support select instructions, and fold setcc instructions into them
79   where possible.  I think this is what afflicts the inner loop of Olden/tsp
80   (hot block = tsp():no_exit.1.i, overall GCC/LLC = 0.03).
81
82 $Date$
83