Refactor the addPassesToEmitAssembly interface into a addPassesToEmitFile
[oota-llvm.git] / lib / Target / SparcV8 / 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 * Keep the address of the constant pool in a register instead of forming its
59   address all of the time.
60
61 * Change code like this:
62         or      %o0, %lo(.CPI_main_0), %o0
63         ld      [%o0+0], %o0
64   into:
65         ld      [%o0+%lo(.CPI_main_0)], %o0
66   for constant pool access.
67
68 * We can fold small constant offsets into the %hi/%lo references to constant
69   pool addresses as well.
70
71 * Directly support select instructions, and fold setcc instructions into them
72   where possible.  I think this is what afflicts the inner loop of Olden/tsp
73   (hot block = tsp():no_exit.1.i, overall GCC/LLC = 0.03).
74
75 * Generate fsqrtd for calls to sqrt()  (~ 4% speedup on Olden/tsp).
76
77 $Date$
78