Bug 61508 - DFG JIT - Add support for get by id self caching.
Summary: DFG JIT - Add support for get by id self caching.
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Gavin Barraclough
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-05-26 00:50 PDT by Gavin Barraclough
Modified: 2011-05-26 14:38 PDT (History)
1 user (show)

See Also:


Attachments
The patch (29.83 KB, patch)
2011-05-26 01:03 PDT, Gavin Barraclough
ggaren: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Gavin Barraclough 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.
Comment 1 Gavin Barraclough 2011-05-26 01:03:07 PDT
Created attachment 94936 [details]
The patch
Comment 2 WebKit Review Bot 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.
Comment 3 Geoffrey Garen 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.
Comment 4 Gavin Barraclough 2011-05-26 14:38:02 PDT
fixed in r87431