Saturday, September 14, 2013

As a matter of fact, I did have a V8

Starting program: /Volumes/BruceDeuce/src/mozilla-24a/obj-ff-dbg/dist/bin/js --baseline-eager --no-ion -f js/src/v8/run.js
Reading symbols for shared libraries .....+++ done

Richards: 192
DeltaBlue: 187
Crypto: 330
RayTrace: 297
EarleyBoyer: 270
RegExp: 230
Splay: 717
NavierStokes: 430
Score (version 7): 301

BaselineCompiler PowerPC (which I've christened "PPCBC") now passes V8 with flying colours (it also passes SunSpider). It still does not pass all the tests, but it's only down to a handful and I have a reasonably good idea where some of the bugs are. If I can get my skates on, I might have it passing all tests by next week -- which could mean a 24.0 beta instead of a 22.0.2 interim release. Let's see how far I can get.

The sharp-eyed amongst you will have noticed the numbers, although still much faster than the raw interpreter, are much lower than methodjit's were. Do keep in mind this is an unoptimized debug build running on my quad G5, and the PowerPC 970 suffers badly when its particular idiosyncrasies about instruction scheduling are not indulged in addition to all the debug-friendly but inefficient code in a debugging build. Also, BaselineCompiler's inline caches are very generalized and not well-suited to the PowerPC instruction set. I'm going to be almost completely rewriting those when all the tests pass, which will really earn the "PPCBC" name.

That said, though, I expect PPCBC's numbers only to improve about 3-5x even with a properly optimized build, correct processor specialization and better inline cache codegen. That puts it firmly in old TraceMonkey JIT's range: a lightweight compiler which means its code can come online quicker and run for longer, but less well optimized and not as strong a performer on benchmarks. To fix that will require getting full IonMonkey and that's not on the table yet.

1 comment:

  1. Actually, there is a V8 engine for PowerPC, thanks to IBM's Andrew Low:


Due to an increased frequency of spam, comments are now subject to moderation.