RESOLVED FIXED 61508
DFG JIT - Add support for get by id self caching.
https://bugs.webkit.org/show_bug.cgi?id=61508
Summary DFG JIT - Add support for get by id self caching.
Gavin Barraclough
Reported 2011-05-26 00:50:56 PDT
Change the call out to be an unexpected call (using silent spill/fill mechanisms), add a structure check & compact load to the JIT code, and add patching mechanisms. Since DFGOperations may want to be be implemented in asm, make these symbols be extern "C". Add an asm wrapper to pass the return address to the optimizing get-by-id operation, so that it can look up its StructureStubInfo.
Attachments
The patch (29.83 KB, patch)
2011-05-26 01:03 PDT, Gavin Barraclough
ggaren: review+
Gavin Barraclough
Comment 1 2011-05-26 01:03:07 PDT
Created attachment 94936 [details] The patch
WebKit Review Bot
Comment 2 2011-05-26 01:05:08 PDT
Attachment 94936 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/JavaScriptCore/ChangeLog', u'Source..." exit_code: 1 Source/JavaScriptCore/dfg/DFGOperations.cpp:36: Alphabetical sorting problem. [build/include_order] [4] Source/JavaScriptCore/dfg/DFGOperations.cpp:39: Extra space before ( in function call [whitespace/parens] [4] Source/JavaScriptCore/dfg/DFGRepatch.h:35: The parameter name "exec" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/dfg/DFGRepatch.h:35: The parameter name "slot" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/dfg/DFGRepatch.h:35: The parameter name "stubInfo" adds no information, so it should be removed. [readability/parameter_name] [5] Total errors found: 5 in 11 files If any of these errors are false positives, please file a bug against check-webkit-style.
Geoffrey Garen
Comment 3 2011-05-26 11:07:06 PDT
Comment on attachment 94936 [details] The patch View in context: https://bugs.webkit.org/attachment.cgi?id=94936&action=review Please fix style bot issues and change C-style casts to C++-style casts. r=me > Source/JavaScriptCore/dfg/DFGRepatch.cpp:46 > + // Only optimize once! I still think it's crazy that all of this stuff is called "repatch" even though it can only happen once. This comment fills me with sad irony.
Gavin Barraclough
Comment 4 2011-05-26 14:38:02 PDT
fixed in r87431
Note You need to log in before you can comment on or make changes to this bug.