
Thiemo Seufer wrote:
I decided to ignore the performance tuning for now and used a register mapping which is compatible to all three relevant MIPS ABIs. It uses 4 callee-saved registers as R1-R4, plus 4 temporaries (caller-saved) registers as R5-R8.
With the appended patch to support a registerised build of GHC 6.4.2 on Debian mips-linux I got those testsuite results:
OVERALL SUMMARY for test run started at Wed Aug 23 20:12:05 BST 2006 674 total tests, which gave rise to 1883 test cases, of which 21 caused framework failures 369 were skipped
1407 expected passes 22 expected failures 0 unexpected passes 41 unexpected failures
Unexpected failures: barton-mangler-bug(normal,opt,prof,threaded) cabal01(normal) cg005(prof) char001(prof) directory001(prof) driver062.2(normal) drvrun006(normal) drvrun018(opt) enum02(threaded) exceptions001(normal) ext1(prof) fed001(normal,opt,prof,threaded) ffi006(normal,opt,prof,threaded) ffi007(normal,opt,prof,threaded) ffi008(normal) finalization001(threaded) freeNames(threaded) galois_raytrace(opt,prof) ioref001(normal,prof,threaded) joao-circular(normal,opt,prof,threaded) ratio001(prof) uri001(prof) xmlish(prof)
Congratulations, that does look pretty good. Leaving out barton-mangler-bug (probably floating-point rounding differences) and the ffi tests (lack of Adjustor.c support), there aren't many failures. Although there don't seem to be any pattern to the remaining failures, which is perhaps slightly worrying - were they all segfaults, and are they repeatable? I've committed your patch, thanks. Cheers, Simon