Bug 20813

Summary: MASTER: get faster on v8 benchmarks
Product: WebKit Reporter: Maciej Stachowiak <mjs>
Component: JavaScriptCoreAssignee: Geoffrey Garen <ggaren>
Status: RESOLVED DUPLICATE    
Severity: Normal CC: barraclough, ddkilzer, emacemac7, ossy, sam, webmaster, zherczeg, zwarich
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Mac   
OS: OS X 10.5   
Bug Depends on: 20812, 20814, 20815, 20816, 20818, 20819, 20820, 20821, 20823, 20827, 20972, 20982, 20983, 20984, 20989, 21019, 21123, 21200, 21294, 21702, 21703, 21803, 21814, 21943    
Bug Blocks:    
Attachments:
Description Flags
Shark Profile of Richards benchmark
none
Shark Profile of DeltaBlue benchmark
none
Shark profile of Crypto benchmark
none
Shark profile of Raytrace benchmark
none
Shark Profile of EarleyBoyer benchmark
none
newer profile of v8 RayTrace benchmark none

Maciej Stachowiak
Reported 2008-09-12 15:12:28 PDT
The v8 benchmarks overfocus on a few specific language issues, but we should get faster on them than we are currently.
Attachments
Shark Profile of Richards benchmark (deleted)
2008-09-12 15:25 PDT, Maciej Stachowiak
no flags
Shark Profile of DeltaBlue benchmark (deleted)
2008-09-12 15:27 PDT, Maciej Stachowiak
no flags
Shark profile of Crypto benchmark (deleted)
2008-09-12 15:29 PDT, Maciej Stachowiak
no flags
Shark profile of Raytrace benchmark (deleted)
2008-09-12 15:38 PDT, Maciej Stachowiak
no flags
Shark Profile of EarleyBoyer benchmark (deleted)
2008-09-12 15:40 PDT, Maciej Stachowiak
no flags
newer profile of v8 RayTrace benchmark (2.43 MB, application/octet-stream)
2008-10-04 17:47 PDT, Maciej Stachowiak
no flags
Maciej Stachowiak
Comment 1 2008-09-12 15:25:07 PDT
Created attachment 23375 [details] Shark Profile of Richards benchmark
Maciej Stachowiak
Comment 2 2008-09-12 15:27:46 PDT
Created attachment 23376 [details] Shark Profile of DeltaBlue benchmark
Maciej Stachowiak
Comment 3 2008-09-12 15:29:44 PDT
Created attachment 23377 [details] Shark profile of Crypto benchmark
Maciej Stachowiak
Comment 4 2008-09-12 15:38:32 PDT
Created attachment 23378 [details] Shark profile of Raytrace benchmark
Maciej Stachowiak
Comment 5 2008-09-12 15:40:10 PDT
Created attachment 23379 [details] Shark Profile of EarleyBoyer benchmark
Maciej Stachowiak
Comment 6 2008-09-12 15:53:15 PDT
One big issue is bug 20812 Our function call overhead is not so great right now (though faster than all non-v8 engines afaik) and could be improved. This affects all the test cases.
Maciej Stachowiak
Comment 7 2008-09-12 16:21:10 PDT
Another big issue is bug 20814 We spend quite a bit of time serving polymorphic inline cache misses, particularly on DeltaBlue.
Cameron Zwarich (cpst)
Comment 8 2008-09-12 16:43:25 PDT
Slow 'arguments' objection creation is bug 20815.
Cameron Zwarich (cpst)
Comment 9 2008-09-12 16:50:31 PDT
Optimization of op_lesseq is bug 20816.
Cameron Zwarich (cpst)
Comment 10 2008-09-12 17:30:41 PDT
Optimization of the 'instanceof' operator is bug 20818.
Cameron Zwarich (cpst)
Comment 11 2008-09-12 17:40:41 PDT
Optimization of JSValue::isObject() is bug 20819.
Cameron Zwarich (cpst)
Comment 12 2008-09-12 18:05:03 PDT
Optimization of op_stricteq is bug 20820.
Maciej Stachowiak
Comment 13 2008-09-12 18:11:14 PDT
bug 20821 covers the expense of adding new properties to objects as part of initialization, which primarily affects EarleyBoyer.
Cameron Zwarich (cpst)
Comment 14 2008-09-12 18:13:34 PDT
Optimization of op_eq_null and op_neq_null is bug 20823.
Cameron Zwarich (cpst)
Comment 15 2008-09-13 02:41:30 PDT
Optimization of the 'typeof' operator is bug 20827.
Cameron Zwarich (cpst)
Comment 16 2008-09-21 20:45:51 PDT
Removing the IndexToNameMap from the Arguments object was bug 20972.
Cameron Zwarich (cpst)
Comment 17 2008-09-21 20:50:23 PDT
Speeding up the 'apply' method of functions is bug 20982.
Cameron Zwarich (cpst)
Comment 18 2008-09-21 21:30:57 PDT
Inline space for extra arguments in ArgumentsData is 20983.
Cameron Zwarich (cpst)
Comment 19 2008-09-21 21:32:45 PDT
(In reply to comment #18) > Inline space for extra arguments in ArgumentsData is 20983. Oops. Inline space for extra arguments in ArgumentsData is bug 20983.
Cameron Zwarich (cpst)
Comment 20 2008-09-21 21:43:02 PDT
Converting masqueradesAsUndefined() from a virtual function to a TypeInfo flag is bug 20984.
Cameron Zwarich (cpst)
Comment 21 2008-09-22 03:56:59 PDT
Efficiently putting values in the 'callee' and 'length' properties in the Arguments constructor is bug 20989.
Cameron Zwarich (cpst)
Comment 22 2008-09-22 22:24:34 PDT
Optimizing FunctionBodyNode::ref()/deref() was bug 21019.
Cameron Zwarich (cpst)
Comment 23 2008-09-28 11:57:19 PDT
Allowing direct access to 'arguments' without using op_resolve is bug 21200.
Cameron Zwarich (cpst)
Comment 24 2008-09-28 11:58:37 PDT
Making 'arguments' not require an activation is bug 21123.
Cameron Zwarich (cpst)
Comment 25 2008-10-01 23:01:47 PDT
Devirtualization of getOwnPropertySlot() is bug 21294.
Maciej Stachowiak
Comment 26 2008-10-04 17:47:51 PDT
Created attachment 24095 [details] newer profile of v8 RayTrace benchmark
Cameron Zwarich (cpst)
Comment 27 2008-10-22 14:07:47 PDT
Fusing op_jfalse with op_eq_null and op_neq_null is bug 21803.
Cameron Zwarich (cpst)
Comment 28 2008-10-22 16:01:58 PDT
Putting properties directly in JS function creation is bug 21814.
Cameron Zwarich (cpst)
Comment 29 2008-10-24 13:32:40 PDT
Creating the JSFunction prototype property lazily is bug 21862.
Cameron Zwarich (cpst)
Comment 30 2008-10-28 22:55:35 PDT
Avoiding needless reads of temporary values in CTI code is bug 21943.
Gavin Barraclough
Comment 31 2012-03-07 00:05:10 PST
This umbrella bug is now only tracking one subtask, bug#20814. Having two bugs open to track one thing isn't really useful, so I'm going to simplify & close this master bug. *** This bug has been marked as a duplicate of bug 20814 ***
Note You need to log in before you can comment on or make changes to this bug.