Specifically: We should emit code that checks the current resolve type of the instruction stream. The first execution of a UnresolvedProperty will call into the slow path, then, the slow path will do its best to update the ResolveType from UnresolvedProperty to GlobalProperty/GlobalLexicalVar. The current baseline implementation will always go to the slow path, where it will transition the ResolveType to something more useful, but then, the executing code will still always take the slow path because it never checks for the updated ResolveType. The updated ResolveType will only ever get noticed when DFG compiling. Instead, the baseline code we emit should check for updated ResolveTypes, and if it finds that the ResolveType was updated, it can prevent going down the slow path and execute the code it normally would. This is greatly beneficial because the slow path will update the ResolveType with high probability.
Created attachment 260682 [details] patch Almost done, just needs 32-bit.
Created attachment 260700 [details] patch
Attachment 260700 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/jit/JITPropertyAccess.cpp:693: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/jit/JITPropertyAccess.cpp:819: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/jit/JITPropertyAccess.cpp:964: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp:723: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp:852: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp:998: Place brace on its own line for function definitions. [whitespace/braces] [4] Total errors found: 6 in 9 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 260701 [details] patch
Attachment 260701 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/jit/JITPropertyAccess.cpp:693: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/jit/JITPropertyAccess.cpp:819: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/jit/JITPropertyAccess.cpp:964: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp:723: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp:852: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp:998: Place brace on its own line for function definitions. [whitespace/braces] [4] Total errors found: 6 in 9 files If any of these errors are false positives, please file a bug against check-webkit-style.
Comment on attachment 260701 [details] patch r=me
Comment on attachment 260701 [details] patch Clearing flags on attachment: 260701 Committed r189501: <http://trac.webkit.org/changeset/189501>
All reviewed patches have been landed. Closing bug.