Convert feature of the simple isel over for the pattern isel to use.
[oota-llvm.git] / lib / Target / Sparc / README.txt
index 71992721928930a6635b5e9df6ba8280341026b2..c35b60266a658faa348256e195a47319df0d7d07 100644 (file)
@@ -9,38 +9,70 @@ this space for more news coming soon!
 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$