README.txt revision 0647bf69653df8f8f15e938341fe6e63daf5c3b6
1
2Meta TODO list:
31. Convert all instructions to use autogeneration for asm strings.
42. Convert asmprinter to use lib/CodeGen/AsmPrinter for global init printing
5   constant pool printing, etc.
63. Create a new DAG -> DAG instruction selector, by adding patterns to the
7   instructions.
84. profit!
9
10
11SparcV8 backend skeleton
12------------------------
13
14This directory houses a 32-bit SPARC V8 backend employing an expander-based
15instruction selector.  It is not yet functionally complete.  Watch
16this space for more news coming soon!
17
18Current expected test failures
19------------------------------
20
21Here are the currently-expected SingleSource failures for V8
22(Some C++ programs are crashing in libstdc++ at the moment;
23I'm not sure why.)
24
25  (llc) SingleSource/Regression/C++/EH/exception_spec_test
26  (llc) SingleSource/Regression/C++/EH/throw_rethrow_test
27
28Here are the currently-expected MultiSource failures for V8:
29
30  (llc,cbe) MultiSource/Applications/d/make_dparser
31  (llc,cbe) MultiSource/Applications/hexxagon
32  (llc) MultiSource/Benchmarks/Fhourstones
33  (llc,cbe) MultiSource/Benchmarks/McCat/03-testtrie
34  (llc) MultiSource/Benchmarks/McCat/18-imp
35  (llc,cbe) MultiSource/Benchmarks/Prolangs-C/bison/mybison
36  (llc,cbe) MultiSource/Benchmarks/Prolangs-C/fixoutput
37  (llc,cbe) MultiSource/Benchmarks/Prolangs-C/gnugo
38  (llc,cbe) MultiSource/Benchmarks/Prolangs-C/plot2fig
39  (llc,cbe) MultiSource/Benchmarks/Ptrdist/anagram
40  (llc,cbe) MultiSource/Benchmarks/FreeBench/analyzer
41    * DANGER * analyzer will run the machine out of VM
42  (I don't know whether the following fail in cbe:)
43  (llc) MultiSource/Benchmarks/FreeBench/distray
44  (llc) MultiSource/Benchmarks/FreeBench/fourinarow
45  (llc) MultiSource/Benchmarks/FreeBench/pifft
46  (llc) MultiSource/Benchmarks/MallocBench/gs
47  (llc) MultiSource/Benchmarks/Prolangs-C++/deriv1
48  (llc) MultiSource/Benchmarks/Prolangs-C++/deriv2
49
50Known SPEC failures for V8 (probably not an exhaustive list):
51
52  (llc) 134.perl
53  (llc) 177.mesa
54  (llc) 188.ammp -- FPMover bug?
55  (llc) 256.bzip2
56  (llc,cbe) 130.li
57  (native,llc,cbe) 126.gcc
58  (native,llc,cbe) 255.vortex
59
60To-do
61-----
62
63* support shl on longs (fourinarow needs this)
64* support casting 64-bit integers to FP types (fhourstones needs this)
65* support FP rem (call fmod)
66
67* Keep the address of the constant pool in a register instead of forming its
68  address all of the time.
69
70* Change code like this:
71        or      %o0, %lo(.CPI_main_0), %o0
72        ld      [%o0+0], %o0
73  into:
74        ld	[%o0+%lo(.CPI_main_0)], %o0
75  for constant pool access.
76
77* We can fold small constant offsets into the %hi/%lo references to constant
78  pool addresses as well.
79
80* Directly support select instructions, and fold setcc instructions into them
81  where possible.  I think this is what afflicts the inner loop of Olden/tsp
82  (hot block = tsp():no_exit.1.i, overall GCC/LLC = 0.03).
83
84* Generate fsqrtd for calls to sqrt()  (~ 4% speedup on Olden/tsp).
85
86$Date$
87
88