keeleysam / tenfourfox

Automatically exported from code.google.com/p/tenfourfox
0 stars 0 forks source link

Implement PPCBC: optimize the shizznick out of BaselineCompiler #245

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Part 1: optimize int32 and boolean multi-type guards
Part 2: optimize object and string or int32 multi-type guards
Part 3: optimize object and shape/clasp guards
Part 4: optimize double guards

Part 1 is already implemented. 6% improvement on V8.

Original issue reported on code.google.com by classi...@floodgap.com on 11 Oct 2013 at 4:27

GoogleCodeExporter commented 9 years ago

Original comment by classi...@floodgap.com on 11 Oct 2013 at 4:27

GoogleCodeExporter commented 9 years ago
original V8: 282 avg
after part 1: 299 avg
after part 2: 318 avg

Original comment by classi...@floodgap.com on 11 Oct 2013 at 4:36

GoogleCodeExporter commented 9 years ago
Part 3 will have to be much more limited. It occurred to me that if the payload 
is not an object pointer, then we could be off in never-never-land with 
unmapped memory trying to speculatively identify its shape or clasp.

Original comment by classi...@floodgap.com on 12 Oct 2013 at 4:26

GoogleCodeExporter commented 9 years ago
Part 4 won't work. There is no fast path for double conversion; most of the 
time they have to go through conversion. We end up doing less work if we just 
test in the beginning rather than trying to make the guard clever. It reduced 
Crypto by 15% and didn't help RayTrace.

Part 5: optimize string guards. No improvement, but no regression. Might help 
more for string heavy ops like the browser and Peacekeeper, though. Still at 
318 avg score.

Original comment by classi...@floodgap.com on 12 Oct 2013 at 7:53

GoogleCodeExporter commented 9 years ago
Part 6: change truthy testing for int32 and string to straight line sequences. 
Changes relatively little, but Splay jumped 30 points. 320 avg score.

Original comment by classi...@floodgap.com on 12 Oct 2013 at 11:50

GoogleCodeExporter commented 9 years ago
Speculatively looking at whether adding additional straightline sequences for 
boolean ops in BaselineIC-ppc showed the existing ones get hit exclusively, and 
even then not that much.

We may have hit the wall for the time being.

Original comment by classi...@floodgap.com on 13 Oct 2013 at 12:02

GoogleCodeExporter commented 9 years ago
We're shipping. Further work to occur on Ion.

Original comment by classi...@floodgap.com on 17 Oct 2013 at 3:46

GoogleCodeExporter commented 9 years ago

Original comment by classi...@floodgap.com on 17 Oct 2013 at 3:46