Current expected test failures
------------------------------
-The SparcV8 backend works on many simple C++ SingleSource codes. Here
-are the known SingleSource failures:
-
- Regression/C++/EH/exception_spec_test
- Regression/C++/EH/throw_rethrow_test
- Benchmarks/Shootout-C++/moments
- Benchmarks/Shootout-C++/random
-
-Here are the known MultiSource test failures, neglecting FreeBench,
-MallocBench, and Prolangs-C++:
-
- Applications/lambda
- Applications/d/make_dparser
- Applications/hbd
- Applications/hexxagon
- Benchmarks/Fhourstones
- Benchmarks/McCat/03-testtrie
- Benchmarks/McCat/18-imp
- Benchmarks/Olden/tsp
- Benchmarks/Ptrdist/anagram
- Benchmarks/Prolangs-C/bison/mybison
- Benchmarks/Prolangs-C/fixoutput
- Benchmarks/Prolangs-C/gnugo
- Benchmarks/Prolangs-C/plot2fig
+Here are the currently-expected SingleSource failures for V8
+(Some C++ programs are crashing in libstdc++ at the moment;
+I'm not sure why.)
+
+ (llc) SingleSource/Regression/C++/EH/exception_spec_test
+ (llc) SingleSource/Regression/C++/EH/throw_rethrow_test
+
+Here are the currently-expected MultiSource failures for V8:
+
+ (llc,cbe) MultiSource/Applications/d/make_dparser
+ (llc,cbe) MultiSource/Applications/hexxagon
+ (llc) MultiSource/Benchmarks/Fhourstones
+ (llc,cbe) MultiSource/Benchmarks/McCat/03-testtrie
+ (llc) MultiSource/Benchmarks/McCat/18-imp
+ (llc,cbe) MultiSource/Benchmarks/Prolangs-C/bison/mybison
+ (llc,cbe) MultiSource/Benchmarks/Prolangs-C/fixoutput
+ (llc,cbe) MultiSource/Benchmarks/Prolangs-C/gnugo
+ (llc,cbe) MultiSource/Benchmarks/Prolangs-C/plot2fig
+ (llc,cbe) MultiSource/Benchmarks/Ptrdist/anagram
+ (llc,cbe) MultiSource/Benchmarks/FreeBench/analyzer
+ * DANGER * analyzer will run the machine out of VM
+ (I don't know whether the following fail in cbe:)
+ (llc) MultiSource/Benchmarks/FreeBench/distray
+ (llc) MultiSource/Benchmarks/FreeBench/fourinarow
+ (llc) MultiSource/Benchmarks/FreeBench/pifft
+ (llc) MultiSource/Benchmarks/MallocBench/gs
+ (llc) MultiSource/Benchmarks/Prolangs-C++/deriv1
+ (llc) MultiSource/Benchmarks/Prolangs-C++/deriv2
+
+Known SPEC failures for V8 (probably not an exhaustive list):
+
+ (llc) 134.perl
+ (llc) 177.mesa
+ (llc) 188.ammp -- FPMover bug?
+ (llc) 256.bzip2
+ (llc,cbe) 130.li
+ (native,llc,cbe) 126.gcc
+ (native,llc,cbe) 255.vortex
To-do
-----
-* support shifts on longs
-* support casting 64-bit integers to FP types
-* support FP rem
-* directly support select instructions
+* support shl on longs (fourinarow needs this)
+* support casting 64-bit integers to FP types (fhourstones needs this)
+* support FP rem (call fmod)
+
+* Keep the address of the constant pool in a register instead of forming its
+ address all of the time.
+
+* Change code like this:
+ or %o0, %lo(.CPI_main_0), %o0
+ ld [%o0+0], %o0
+ into:
+ ld [%o0+%lo(.CPI_main_0)], %o0
+ for constant pool access.
+
+* We can fold small constant offsets into the %hi/%lo references to constant
+ pool addresses as well.
+
+* Directly support select instructions, and fold setcc instructions into them
+ where possible. I think this is what afflicts the inner loop of Olden/tsp
+ (hot block = tsp():no_exit.1.i, overall GCC/LLC = 0.03).
+
+* Generate fsqrtd for calls to sqrt() (~ 4% speedup on Olden/tsp).
$Date$