RESOLVED FIXED 156889
Speed up bound functions a bit
https://bugs.webkit.org/show_bug.cgi?id=156889
Summary Speed up bound functions a bit
Filip Pizlo
Reported 2016-04-21 18:53:32 PDT
Patch forthcoming.
Attachments
work in progress (30.77 KB, patch)
2016-04-21 18:54 PDT, Filip Pizlo
no flags
it does things! (38.65 KB, patch)
2016-04-21 22:00 PDT, Filip Pizlo
no flags
the patch (46.84 KB, patch)
2016-04-22 13:38 PDT, Filip Pizlo
saam: review+
buildbot: commit-queue-
Archive of layout-test-results from ews117 for mac-yosemite (981.27 KB, application/zip)
2016-04-22 14:42 PDT, Build Bot
no flags
patch for landing (47.83 KB, patch)
2016-04-22 15:47 PDT, Filip Pizlo
buildbot: commit-queue-
Archive of layout-test-results from ews112 for mac-yosemite (980.50 KB, application/zip)
2016-04-22 17:42 PDT, Build Bot
no flags
patch for landing (47.95 KB, patch)
2016-04-22 18:12 PDT, Filip Pizlo
no flags
Filip Pizlo
Comment 1 2016-04-21 18:54:05 PDT
Created attachment 276996 [details] work in progress It doesn't compile yet.
Filip Pizlo
Comment 2 2016-04-21 22:00:08 PDT
Created attachment 277008 [details] it does things! 6x faster on my microbenchmark
Saam Barati
Comment 3 2016-04-22 00:21:57 PDT
Comment on attachment 277008 [details] it does things! View in context: https://bugs.webkit.org/attachment.cgi?id=277008&action=review > Source/JavaScriptCore/jit/ThunkGenerators.cpp:1099 > + jit.and32(CCallHelpers::TrustedImm32(-stackAlignmentBytes()), GPRInfo::regT2); This is nifty. I didn't know this worked for rounding up to a power two but it makes sense because of two's complement.
Filip Pizlo
Comment 4 2016-04-22 13:38:53 PDT
Created attachment 277093 [details] the patch
WebKit Commit Bot
Comment 5 2016-04-22 13:41:22 PDT
Attachment 277093 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/jit/ThunkGenerators.h:69: The parameter name "vm" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/Executable.h:261: The parameter name "vm" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/Executable.h:261: The parameter name "function" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/Executable.h:261: The parameter name "intrinsic" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/Executable.h:300: The parameter name "function" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/VM.h:413: The parameter name "intrinsic" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/jit/ThunkGenerators.cpp:1100: Place brace on its own line for function definitions. [whitespace/braces] [4] Total errors found: 7 in 21 files If any of these errors are false positives, please file a bug against check-webkit-style.
Filip Pizlo
Comment 6 2016-04-22 13:42:33 PDT
Comment on attachment 277093 [details] the patch View in context: https://bugs.webkit.org/attachment.cgi?id=277093&action=review > Source/JavaScriptCore/jit/ThunkGenerators.cpp:1066 > + static std::once_flag dummyCallLinkInfoFlag; > + static CallLinkInfo* dummyCallLinkInfo; > + std::call_once( > + dummyCallLinkInfoFlag, > + [] () { > + dummyCallLinkInfo = new CallLinkInfo(); > + dummyCallLinkInfo->setUpCall(CallLinkInfo::Call, CodeOrigin(), GPRInfo::regT3); > + }); I'll remove this. It's not needed.
Saam Barati
Comment 7 2016-04-22 14:28:48 PDT
Comment on attachment 277093 [details] the patch View in context: https://bugs.webkit.org/attachment.cgi?id=277093&action=review r=me > Source/JavaScriptCore/jit/ThunkGenerators.cpp:1099 > + jit.add32(CCallHelpers::TrustedImm32(stackAlignmentBytes() - 1), GPRInfo::regT2); > + jit.and32(CCallHelpers::TrustedImm32(-stackAlignmentBytes()), GPRInfo::regT2); It would be cool to make this a JIT method.
Saam Barati
Comment 8 2016-04-22 14:29:28 PDT
looks like some debug tests might be broken.
Build Bot
Comment 9 2016-04-22 14:42:09 PDT
Comment on attachment 277093 [details] the patch Attachment 277093 [details] did not pass mac-debug-ews (mac): Output: http://webkit-queues.webkit.org/results/1203810 Number of test failures exceeded the failure limit.
Build Bot
Comment 10 2016-04-22 14:42:13 PDT
Created attachment 277102 [details] Archive of layout-test-results from ews117 for mac-yosemite The attached test failures were seen while running run-webkit-tests on the mac-debug-ews. Bot: ews117 Port: mac-yosemite Platform: Mac OS X 10.10.5
Filip Pizlo
Comment 11 2016-04-22 14:48:22 PDT
(In reply to comment #8) > looks like some debug tests might be broken. Wow yeah, that's what I get for not testing debug. Doing that now.
Filip Pizlo
Comment 12 2016-04-22 15:47:49 PDT
Created attachment 277109 [details] patch for landing To fix debug failures I had to do more dejankification of the "OMG no JIT" path.
WebKit Commit Bot
Comment 13 2016-04-22 16:52:36 PDT
Attachment 277109 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/jit/ThunkGenerators.h:69: The parameter name "vm" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/Executable.h:261: The parameter name "vm" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/Executable.h:261: The parameter name "function" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/Executable.h:261: The parameter name "intrinsic" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/Executable.h:300: The parameter name "function" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/VM.h:413: The parameter name "intrinsic" adds no information, so it should be removed. [readability/parameter_name] [5] Total errors found: 6 in 21 files If any of these errors are false positives, please file a bug against check-webkit-style.
Build Bot
Comment 14 2016-04-22 17:42:19 PDT
Comment on attachment 277109 [details] patch for landing Attachment 277109 [details] did not pass mac-debug-ews (mac): Output: http://webkit-queues.webkit.org/results/1204518 Number of test failures exceeded the failure limit.
Build Bot
Comment 15 2016-04-22 17:42:22 PDT
Created attachment 277121 [details] Archive of layout-test-results from ews112 for mac-yosemite The attached test failures were seen while running run-webkit-tests on the mac-debug-ews. Bot: ews112 Port: mac-yosemite Platform: Mac OS X 10.10.5
Filip Pizlo
Comment 16 2016-04-22 18:12:38 PDT
Created attachment 277122 [details] patch for landing Silenced a pointless null check.
WebKit Commit Bot
Comment 17 2016-04-22 18:14:12 PDT
Attachment 277122 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/jit/ThunkGenerators.h:69: The parameter name "vm" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/Executable.h:261: The parameter name "vm" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/Executable.h:261: The parameter name "function" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/Executable.h:261: The parameter name "intrinsic" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/Executable.h:300: The parameter name "function" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/VM.h:413: The parameter name "intrinsic" adds no information, so it should be removed. [readability/parameter_name] [5] Total errors found: 6 in 21 files If any of these errors are false positives, please file a bug against check-webkit-style.
Filip Pizlo
Comment 18 2016-04-22 19:00:54 PDT
Csaba Osztrogonác
Comment 19 2016-04-22 23:09:44 PDT
(In reply to comment #18) > Landed in http://trac.webkit.org/changeset/199946 It broke the cloop build.
Filip Pizlo
Comment 20 2016-04-23 09:07:09 PDT
(In reply to comment #19) > (In reply to comment #18) > > Landed in http://trac.webkit.org/changeset/199946 > > It broke the cloop build. Of course it did. I'll fix it.
Filip Pizlo
Comment 21 2016-04-23 09:38:23 PDT
Note You need to log in before you can comment on or make changes to this bug.