RESOLVED FIXED 148717
There should be one stub hanging off an inline cache that contains code for all of the cases, rather than forming a linked list consisting of one stub per case
https://bugs.webkit.org/show_bug.cgi?id=148717
Summary There should be one stub hanging off an inline cache that contains code for a...
Filip Pizlo
Reported 2015-09-02 10:39:00 PDT
Such a new approach where we regenerate the One True Stub every time a case is added will enable us to more easily prune out cases that become irrelevant once a new case is added. For a while now this has been something we should have added, for example when we go to slow path because a prototype check failed. But for the type checking PutById's that will be introduced in https://bugs.webkit.org/show_bug.cgi?id=148610, this kind of thing will be even more profitable. So, we should just implement this now.
Attachments
work in progress (46.52 KB, patch)
2015-09-04 15:04 PDT, Filip Pizlo
no flags
just a bit more (53.87 KB, patch)
2015-09-04 16:02 PDT, Filip Pizlo
no flags
some more stuff (65.22 KB, patch)
2015-09-05 11:44 PDT, Filip Pizlo
no flags
more glue (96.12 KB, patch)
2015-09-05 13:14 PDT, Filip Pizlo
no flags
starting to get interesting (116.04 KB, patch)
2015-09-06 12:06 PDT, Filip Pizlo
no flags
inching towards victory (160.99 KB, patch)
2015-09-06 13:16 PDT, Filip Pizlo
no flags
making this change a little less incremental (183.93 KB, patch)
2015-09-07 13:28 PDT, Filip Pizlo
no flags
it is written (201.04 KB, patch)
2015-09-08 10:36 PDT, Filip Pizlo
no flags
rebased (201.98 KB, patch)
2015-09-08 10:39 PDT, Filip Pizlo
no flags
inching towards victory (229.86 KB, patch)
2015-09-08 11:32 PDT, Filip Pizlo
no flags
it compiles! (236.45 KB, patch)
2015-09-08 13:02 PDT, Filip Pizlo
no flags
it does simple things (245.83 KB, patch)
2015-09-08 14:46 PDT, Filip Pizlo
no flags
more (265.66 KB, patch)
2015-09-08 16:06 PDT, Filip Pizlo
no flags
rebased again (266.11 KB, patch)
2015-09-08 16:31 PDT, Filip Pizlo
no flags
it's passing tests so much (266.11 KB, patch)
2015-09-08 16:53 PDT, Filip Pizlo
no flags
the patch (267.87 KB, patch)
2015-09-08 22:39 PDT, Filip Pizlo
no flags
the patch (269.57 KB, patch)
2015-09-08 22:44 PDT, Filip Pizlo
no flags
the patch (269.65 KB, patch)
2015-09-09 12:52 PDT, Filip Pizlo
ggaren: review-
buildbot: commit-queue-
Archive of layout-test-results from ews103 for mac-mavericks (617.78 KB, application/zip)
2015-09-09 13:41 PDT, Build Bot
no flags
the patch (288.22 KB, patch)
2015-09-09 16:14 PDT, Filip Pizlo
no flags
the patch (289.65 KB, patch)
2015-09-09 20:00 PDT, Filip Pizlo
msaboff: review+
Filip Pizlo
Comment 1 2015-09-04 15:03:51 PDT
*** Bug 148718 has been marked as a duplicate of this bug. ***
Filip Pizlo
Comment 2 2015-09-04 15:04:32 PDT
Created attachment 260628 [details] work in progress
Filip Pizlo
Comment 3 2015-09-04 16:02:43 PDT
Created attachment 260638 [details] just a bit more
Filip Pizlo
Comment 4 2015-09-05 11:44:49 PDT
Created attachment 260696 [details] some more stuff Now it has code generation for all of the "o.f" inline caches (get, put, in). I just need to finish hooking it up to Repatch, and deleting the old code from Repatch.
Filip Pizlo
Comment 5 2015-09-05 13:14:24 PDT
Created attachment 260697 [details] more glue
Filip Pizlo
Comment 6 2015-09-06 12:06:09 PDT
Created attachment 260711 [details] starting to get interesting Now most of the GetById patching code has been converted to use PolymorphicAccess. This also solves a longstanding issue: it establishes a way for the stub to jump to slow path while indicating that it's not useful to attempt patching. This comes into play for things like negative array length.
Filip Pizlo
Comment 7 2015-09-06 13:16:33 PDT
Created attachment 260715 [details] inching towards victory
Filip Pizlo
Comment 8 2015-09-07 13:28:39 PDT
Created attachment 260746 [details] making this change a little less incremental
Filip Pizlo
Comment 9 2015-09-08 10:36:41 PDT
Created attachment 260768 [details] it is written
Filip Pizlo
Comment 10 2015-09-08 10:39:25 PDT
Filip Pizlo
Comment 11 2015-09-08 11:32:52 PDT
Created attachment 260773 [details] inching towards victory
Filip Pizlo
Comment 12 2015-09-08 13:02:22 PDT
Created attachment 260784 [details] it compiles!
Filip Pizlo
Comment 13 2015-09-08 14:46:59 PDT
Created attachment 260797 [details] it does simple things
Filip Pizlo
Comment 14 2015-09-08 16:06:25 PDT
Created attachment 260801 [details] more Now it has a changelog!
Filip Pizlo
Comment 15 2015-09-08 16:31:09 PDT
Created attachment 260807 [details] rebased again It's starting to pass a lot of tests.
Filip Pizlo
Comment 16 2015-09-08 16:53:30 PDT
Created attachment 260812 [details] it's passing tests so much
Filip Pizlo
Comment 17 2015-09-08 20:38:08 PDT
Well this is promising so far. Benchmark report for SunSpider and Octane on shakezilla (MacBookPro11,3). VMs tested: "TipOfTree" at /Volumes/Data/secondary/OpenSource/WebKitBuild/Release/jsc (r189515) "NewPolyIC" at /Volumes/Data/primary/OpenSource/WebKitBuild/Release/jsc (r189515) Collected 6 samples per benchmark/VM, with 6 VM invocations per benchmark. Emitted a call to gc() between sample measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to get microsecond-level timing. Reporting benchmark execution times with 95% confidence intervals in milliseconds. TipOfTree NewPolyIC SunSpider: 3d-cube 4.6024+-0.2057 ? 4.6746+-0.3917 ? might be 1.0157x slower 3d-morph 4.9763+-0.0703 ? 5.1038+-0.1656 ? might be 1.0256x slower 3d-raytrace 5.5236+-1.3352 5.2140+-0.2418 might be 1.0594x faster access-binary-trees 1.9876+-0.1296 ? 2.1369+-0.1340 ? might be 1.0751x slower access-fannkuch 5.3289+-0.1978 ? 5.3676+-0.2694 ? access-nbody 2.3927+-0.0273 ? 2.4355+-0.0598 ? might be 1.0179x slower access-nsieve 3.0258+-0.1913 ? 3.0612+-0.2531 ? might be 1.0117x slower bitops-3bit-bits-in-byte 1.1162+-0.0642 1.0994+-0.0417 might be 1.0153x faster bitops-bits-in-byte 3.1965+-0.0740 ? 3.2351+-0.0609 ? might be 1.0121x slower bitops-bitwise-and 2.0063+-0.1278 1.9414+-0.0195 might be 1.0335x faster bitops-nsieve-bits 2.9116+-0.0211 ? 2.9129+-0.0259 ? controlflow-recursive 2.1255+-0.1569 ? 2.1341+-0.1410 ? crypto-aes 3.7949+-0.1613 ? 3.8543+-0.3143 ? might be 1.0157x slower crypto-md5 2.3102+-0.0309 ? 2.3524+-0.0716 ? might be 1.0183x slower crypto-sha1 2.2855+-0.2040 2.2119+-0.1688 might be 1.0333x faster date-format-tofte 6.5839+-0.0778 ? 6.9934+-0.6136 ? might be 1.0622x slower date-format-xparb 4.6549+-0.3346 4.6510+-0.3760 math-cordic 2.7710+-0.0694 ? 2.9258+-0.2232 ? might be 1.0559x slower math-partial-sums 4.8258+-0.2197 4.7726+-0.1412 might be 1.0111x faster math-spectral-norm 1.8119+-0.0436 1.7715+-0.0082 might be 1.0228x faster regexp-dna 6.4183+-0.1144 6.4147+-0.1123 string-base64 4.3978+-0.1363 4.3759+-0.1998 string-fasta 5.6844+-0.0468 ? 5.9449+-0.4471 ? might be 1.0458x slower string-tagcloud 7.7238+-0.1715 ? 7.7596+-0.1759 ? string-unpack-code 18.5982+-0.6501 ? 18.6956+-0.9401 ? string-validate-input 4.5659+-0.2548 4.5386+-0.0605 <arithmetic> 4.4469+-0.0887 ? 4.4838+-0.0390 ? might be 1.0083x slower TipOfTree NewPolyIC Octane: encrypt 0.17087+-0.00309 0.16614+-0.00481 might be 1.0285x faster decrypt 3.28232+-0.03832 3.25622+-0.01320 deltablue x2 0.16196+-0.01141 0.16081+-0.01273 earley 0.28344+-0.00397 ? 0.28406+-0.00337 ? boyer 4.27942+-0.04376 ? 4.32630+-0.14208 ? might be 1.0110x slower navier-stokes x2 4.80868+-0.01543 ? 4.82552+-0.02474 ? raytrace x2 1.02167+-0.06816 ^ 0.89800+-0.00457 ^ definitely 1.1377x faster richards x2 0.10766+-0.00134 0.10765+-0.00166 splay x2 0.32496+-0.00199 ? 0.32772+-0.00371 ? regexp x2 25.00191+-0.54257 24.92420+-0.47411 pdfjs x2 36.83656+-0.33963 36.36966+-0.38146 might be 1.0128x faster mandreel x2 44.36845+-1.14861 ? 44.49560+-0.74444 ? gbemu x2 33.64794+-0.14868 ? 34.52705+-1.54902 ? might be 1.0261x slower closure 0.57074+-0.00573 0.56838+-0.00330 jquery 7.09301+-0.07669 7.08691+-0.03837 box2d x2 9.93760+-0.16151 ? 9.95929+-0.15017 ? zlib x2 379.93174+-6.77425 ? 385.75085+-5.85169 ? might be 1.0153x slower typescript x2 641.18534+-13.63696 ^ 615.81299+-8.24530 ^ definitely 1.0412x faster <geometric> 5.56752+-0.02770 5.51303+-0.05167 might be 1.0099x faster TipOfTree NewPolyIC Geomean of preferred means: <scaled-result> 15.7343+-0.1832 15.7219+-0.0499 might be 1.0008x faster
Filip Pizlo
Comment 18 2015-09-08 20:54:00 PDT
The only thing remaining with this patch is to make custom accessors work again.
Filip Pizlo
Comment 19 2015-09-08 22:39:52 PDT
Created attachment 260836 [details] the patch
WebKit Commit Bot
Comment 20 2015-09-08 22:42:16 PDT
Attachment 260836 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:560: Declaration has space between type name and * in numberOfRegsForCall * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:629: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:677: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:840: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:870: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:919: Use 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:936: Use 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:964: Use 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:979: Use 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:988: Use 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:989: Use 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:1120: Use 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.h:135: The parameter name "structure" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.h:135: The parameter name "offset" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.h:138: The parameter name "offset" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.h:147: The parameter name "structure" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.h:94: The parameter name "accessCase" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/jit/Repatch.cpp:305: Use 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] ERROR: Source/JavaScriptCore/jit/Repatch.cpp:448: Use 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] ERROR: Source/JavaScriptCore/jit/Repatch.cpp:506: Use 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.cpp:56: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:61: The parameter name "value" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:58: Use 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:67: Use 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:69: Use 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:72: Use 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] Total errors found: 26 in 23 files If any of these errors are false positives, please file a bug against check-webkit-style.
Filip Pizlo
Comment 21 2015-09-08 22:44:57 PDT
Created attachment 260837 [details] the patch Include my WTF changes as well.
WebKit Commit Bot
Comment 22 2015-09-08 22:47:43 PDT
Attachment 260837 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:560: Declaration has space between type name and * in numberOfRegsForCall * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:629: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:677: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:840: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:870: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:919: Use 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:936: Use 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:964: Use 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:979: Use 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:988: Use 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:989: Use 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:1120: Use 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.h:135: The parameter name "structure" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.h:135: The parameter name "offset" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.h:138: The parameter name "offset" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.h:147: The parameter name "structure" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.h:94: The parameter name "accessCase" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/jit/Repatch.cpp:305: Use 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] ERROR: Source/JavaScriptCore/jit/Repatch.cpp:448: Use 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] ERROR: Source/JavaScriptCore/jit/Repatch.cpp:506: Use 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.cpp:56: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:61: The parameter name "value" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:58: Use 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:67: Use 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:69: Use 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:72: Use 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] Total errors found: 26 in 25 files If any of these errors are false positives, please file a bug against check-webkit-style.
Filip Pizlo
Comment 23 2015-09-09 12:21:37 PDT
(In reply to comment #22) > Attachment 260837 [details] did not pass style-queue: > > > ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:560: > Declaration has space between type name and * in numberOfRegsForCall * > sizeof [whitespace/declaration] [3] No. That * is a multiply and not a pointer. > ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:629: Place > brace on its own line for function definitions. [whitespace/braces] [4] > ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:677: Place > brace on its own line for function definitions. [whitespace/braces] [4] > ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:840: Place > brace on its own line for function definitions. [whitespace/braces] [4] > ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:870: Place > brace on its own line for function definitions. [whitespace/braces] [4] No. > ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:919: Use > 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] > ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:936: Use > 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] > ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:964: Use > 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] > ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:979: Use > 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] > ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:988: Use > 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] > ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:989: Use > 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] > ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:1120: Use > 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] Fixed. > ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.h:135: The > parameter name "structure" adds no information, so it should be removed. > [readability/parameter_name] [5] > ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.h:135: The > parameter name "offset" adds no information, so it should be removed. > [readability/parameter_name] [5] > ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.h:138: The > parameter name "offset" adds no information, so it should be removed. > [readability/parameter_name] [5] > ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.h:147: The > parameter name "structure" adds no information, so it should be removed. > [readability/parameter_name] [5] Fixed. > ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.h:94: The parameter > name "accessCase" adds no information, so it should be removed. > [readability/parameter_name] [5] Fixed. > ERROR: Source/JavaScriptCore/jit/Repatch.cpp:305: Use 'WTF::move()' instead > of 'std::move()'. [runtime/wtf_move] [4] > ERROR: Source/JavaScriptCore/jit/Repatch.cpp:448: Use 'WTF::move()' instead > of 'std::move()'. [runtime/wtf_move] [4] > ERROR: Source/JavaScriptCore/jit/Repatch.cpp:506: Use 'WTF::move()' instead > of 'std::move()'. [runtime/wtf_move] [4] Fixed. > ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.cpp:56: Wrong > number of spaces before statement. (expected: 8) [whitespace/indent] [4] No. > ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:61: The > parameter name "value" adds no information, so it should be removed. > [readability/parameter_name] [5] No. The name "value" most definitely adds information here and should not be removed. > ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:58: Use > 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] > ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:67: Use > 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] > ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:69: Use > 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] > ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:72: Use > 'WTF::move()' instead of 'std::move()'. [runtime/wtf_move] [4] Fixed. > Total errors found: 26 in 25 files > > > If any of these errors are false positives, please file a bug against > check-webkit-style.
Filip Pizlo
Comment 24 2015-09-09 12:52:34 PDT
Created attachment 260868 [details] the patch Fixed style.
Keith Miller
Comment 25 2015-09-09 12:55:21 PDT
This is way better than the old IC code. If I could r=me I would.
WebKit Commit Bot
Comment 26 2015-09-09 12:55:31 PDT
Attachment 260868 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:560: Declaration has space between type name and * in numberOfRegsForCall * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:629: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:677: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:840: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:870: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.cpp:56: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:61: The parameter name "value" adds no information, so it should be removed. [readability/parameter_name] [5] Total errors found: 7 in 25 files If any of these errors are false positives, please file a bug against check-webkit-style.
Build Bot
Comment 27 2015-09-09 13:41:07 PDT
Comment on attachment 260868 [details] the patch Attachment 260868 [details] did not pass mac-ews (mac): Output: http://webkit-queues.webkit.org/results/155148 New failing tests: fast/canvas/webgl/array-message-passing.html
Build Bot
Comment 28 2015-09-09 13:41:13 PDT
Created attachment 260870 [details] Archive of layout-test-results from ews103 for mac-mavericks The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: ews103 Port: mac-mavericks Platform: Mac OS X 10.9.5
Geoffrey Garen
Comment 29 2015-09-09 13:43:31 PDT
Comment on attachment 260868 [details] the patch Mac EWS failure appears repeatable. There seems to be a bug here.
Filip Pizlo
Comment 30 2015-09-09 14:48:49 PDT
(In reply to comment #29) > Comment on attachment 260868 [details] > the patch > > Mac EWS failure appears repeatable. There seems to be a bug here. Yup, I'm looking at it.
Filip Pizlo
Comment 31 2015-09-09 14:49:17 PDT
Performance right now. Note that this is still crashy... Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on shakezilla (MacBookPro11,3). VMs tested: "TipOfTree" at /Volumes/Data/secondary/OpenSource/WebKitBuild/Release/jsc (r189543) "NewPolyIC" at /Volumes/Data/primary/OpenSource/WebKitBuild/Release/jsc (r189543) Collected 7 samples per benchmark/VM, with 7 VM invocations per benchmark. Emitted a call to gc() between sample measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to get microsecond-level timing. Reporting benchmark execution times with 95% confidence intervals in milliseconds. TipOfTree NewPolyIC SunSpider: 3d-cube 5.1075+-0.6560 4.7601+-0.3870 might be 1.0730x faster 3d-morph 5.0320+-0.1400 ? 5.2651+-0.3521 ? might be 1.0463x slower 3d-raytrace 4.9996+-0.0689 ? 5.0286+-0.0677 ? access-binary-trees 2.2453+-0.5531 2.1274+-0.3070 might be 1.0554x faster access-fannkuch 5.3371+-0.1715 5.2975+-0.1321 access-nbody 2.4964+-0.1009 2.4405+-0.1112 might be 1.0229x faster access-nsieve 3.0154+-0.0434 3.0007+-0.1009 bitops-3bit-bits-in-byte 1.1410+-0.0621 1.1209+-0.0541 might be 1.0180x faster bitops-bits-in-byte 3.2891+-0.2005 3.2593+-0.0336 bitops-bitwise-and 1.9700+-0.0245 ? 2.0135+-0.1010 ? might be 1.0221x slower bitops-nsieve-bits 3.0685+-0.4055 2.9649+-0.1037 might be 1.0349x faster controlflow-recursive 2.2236+-0.2178 2.1899+-0.1005 might be 1.0154x faster crypto-aes 3.7646+-0.0613 ? 4.1674+-0.6451 ? might be 1.1070x slower crypto-md5 2.3670+-0.0518 2.3224+-0.0700 might be 1.0192x faster crypto-sha1 2.4143+-0.2377 2.3173+-0.1680 might be 1.0419x faster date-format-tofte 7.0110+-0.5702 6.8600+-0.4968 might be 1.0220x faster date-format-xparb 4.5725+-0.1417 ? 4.8746+-0.5230 ? might be 1.0661x slower math-cordic 2.8699+-0.1687 2.8324+-0.1953 might be 1.0132x faster math-partial-sums 4.8574+-0.0635 4.7650+-0.1495 might be 1.0194x faster math-spectral-norm 1.7814+-0.0390 ? 1.8792+-0.2496 ? might be 1.0549x slower regexp-dna 6.3695+-0.0549 ? 6.4812+-0.2530 ? might be 1.0175x slower string-base64 4.3328+-0.1619 ? 4.5306+-0.3657 ? might be 1.0456x slower string-fasta 6.0422+-0.4884 5.7344+-0.1970 might be 1.0537x faster string-tagcloud 8.4223+-1.2020 7.6838+-0.0787 might be 1.0961x faster string-unpack-code 18.6022+-0.6993 18.2919+-0.5691 might be 1.0170x faster string-validate-input 4.4676+-0.1120 ? 4.5831+-0.1879 ? might be 1.0259x slower <arithmetic> 4.5308+-0.0818 4.4920+-0.0296 might be 1.0086x faster TipOfTree NewPolyIC LongSpider: 3d-cube 809.6053+-3.9580 ? 811.3845+-6.4851 ? 3d-morph 1486.1304+-3.2766 1483.5084+-2.7493 3d-raytrace 597.8175+-3.1973 ? 598.3330+-2.8893 ? access-binary-trees 795.7429+-6.7876 ? 800.4827+-2.3669 ? access-fannkuch 269.5301+-0.6699 ? 276.0987+-7.0337 ? might be 1.0244x slower access-nbody 507.9226+-0.4334 ! 511.4803+-3.0121 ! definitely 1.0070x slower access-nsieve 365.9178+-10.6595 359.2681+-1.5470 might be 1.0185x faster bitops-3bit-bits-in-byte 34.3169+-0.5829 34.2000+-0.8549 bitops-bits-in-byte 75.1884+-2.0288 ? 75.6968+-1.6298 ? bitops-nsieve-bits 401.9336+-4.8055 397.8354+-4.2023 might be 1.0103x faster controlflow-recursive 418.9929+-6.7955 416.9046+-4.8172 crypto-aes 578.5614+-2.7896 575.3235+-1.8384 crypto-md5 491.3981+-10.7190 484.9644+-23.8053 might be 1.0133x faster crypto-sha1 626.8269+-12.6420 615.2220+-1.6506 might be 1.0189x faster date-format-tofte 500.3375+-8.7373 498.4564+-6.3742 date-format-xparb 660.9286+-10.5195 ? 676.7945+-59.0872 ? might be 1.0240x slower hash-map 165.9336+-3.0773 165.8269+-0.7891 math-cordic 475.5828+-2.4531 ? 477.7976+-3.4316 ? math-partial-sums 459.8112+-0.8460 ? 460.2152+-0.5471 ? math-spectral-norm 545.5664+-0.5491 ? 546.1919+-1.3176 ? string-base64 365.3368+-6.6264 ? 366.2951+-7.3312 ? string-fasta 359.3473+-1.7211 ? 362.2948+-2.2072 ? string-tagcloud 174.1983+-1.9124 ? 175.2374+-0.9227 ? <geometric> 387.1291+-0.9274 ? 387.2913+-1.7999 ? might be 1.0004x slower TipOfTree NewPolyIC V8Spider: crypto 49.9816+-1.1614 49.0812+-1.1449 might be 1.0183x faster deltablue 85.0666+-3.0589 ? 86.6115+-2.9666 ? might be 1.0182x slower earley-boyer 40.8530+-1.4286 ? 41.3219+-0.8405 ? might be 1.0115x slower raytrace 31.8295+-2.1171 31.5521+-1.6879 regexp 63.0987+-1.7526 62.1826+-1.3531 might be 1.0147x faster richards 64.5601+-1.4575 ? 65.1003+-1.9806 ? splay 36.3726+-1.2844 ^ 32.9393+-0.9570 ^ definitely 1.1042x faster <geometric> 50.3082+-0.6714 49.5827+-0.5999 might be 1.0146x faster TipOfTree NewPolyIC Octane: encrypt 0.16804+-0.00333 0.16620+-0.00418 might be 1.0111x faster decrypt 3.25691+-0.01040 3.25420+-0.00595 deltablue x2 0.15740+-0.00105 0.15504+-0.00172 might be 1.0153x faster earley 0.28122+-0.00219 0.28094+-0.00112 boyer 4.25290+-0.02204 ? 4.25976+-0.01565 ? navier-stokes x2 4.82187+-0.05331 4.80793+-0.02086 raytrace x2 1.00222+-0.03859 ^ 0.90785+-0.01213 ^ definitely 1.1040x faster richards x2 0.10629+-0.00107 ? 0.10702+-0.00142 ? splay x2 0.33672+-0.01169 0.33314+-0.00487 might be 1.0107x faster regexp x2 24.78739+-0.26856 ? 24.97754+-0.50844 ? pdfjs x2 36.74056+-0.33416 36.52673+-0.31558 mandreel x2 44.23978+-1.11454 44.09202+-0.99418 gbemu x2 34.99170+-2.26470 33.87401+-0.17512 might be 1.0330x faster closure 0.56867+-0.00377 0.56740+-0.00296 jquery 7.04663+-0.05138 ? 7.11633+-0.17211 ? box2d x2 9.85185+-0.03790 ? 9.97573+-0.10546 ? might be 1.0126x slower zlib x2 374.49586+-17.12213 ? 384.25307+-9.31213 ? might be 1.0261x slower typescript x2 643.61314+-12.90819 ^ 620.64286+-5.78507 ^ definitely 1.0370x faster <geometric> 5.55216+-0.03399 ^ 5.49643+-0.00916 ^ definitely 1.0101x faster TipOfTree NewPolyIC Kraken: ai-astar 220.708+-2.295 218.039+-1.637 might be 1.0122x faster audio-beat-detection 50.623+-0.463 50.368+-0.483 audio-dft 96.257+-1.906 95.427+-1.555 audio-fft 35.381+-1.643 34.839+-0.236 might be 1.0155x faster audio-oscillator 60.669+-3.027 58.669+-0.363 might be 1.0341x faster imaging-darkroom 60.743+-0.321 ? 61.395+-1.836 ? might be 1.0107x slower imaging-desaturate 48.885+-0.322 ? 49.288+-0.351 ? imaging-gaussian-blur 84.987+-0.446 ? 87.021+-4.687 ? might be 1.0239x slower json-parse-financial 37.807+-0.479 ? 38.162+-1.391 ? json-stringify-tinderbox 22.106+-0.313 ! 24.894+-1.215 ! definitely 1.1262x slower stanford-crypto-aes 41.385+-2.062 41.173+-1.384 stanford-crypto-ccm 35.960+-1.493 35.695+-1.259 stanford-crypto-pbkdf2 93.304+-0.343 ? 93.648+-0.678 ? stanford-crypto-sha256-iterative 37.347+-1.565 36.838+-1.140 might be 1.0138x faster <arithmetic> 66.154+-0.465 66.104+-0.411 might be 1.0008x faster TipOfTree NewPolyIC JSRegress: abc-forward-loop-equal 29.4827+-0.3607 ? 29.7214+-1.0619 ? abc-postfix-backward-loop 29.6307+-0.6166 ? 30.1094+-1.3583 ? might be 1.0162x slower abc-simple-backward-loop 29.6631+-1.5155 29.3856+-1.5383 abc-simple-forward-loop 30.0333+-1.6490 29.6564+-1.8017 might be 1.0127x faster abc-skippy-loop 21.0393+-0.4155 ? 21.4065+-0.2126 ? might be 1.0174x slower abs-boolean 2.4545+-0.1030 ? 2.4709+-0.0955 ? adapt-to-double-divide 16.7863+-0.7291 ? 16.9810+-0.7255 ? might be 1.0116x slower aliased-arguments-getbyval 1.1653+-0.0870 ? 1.1700+-0.0539 ? allocate-big-object 2.4905+-0.0988 ? 2.6195+-0.5289 ? might be 1.0518x slower arguments-named-and-reflective 11.1848+-0.8763 10.9711+-0.4680 might be 1.0195x faster arguments-out-of-bounds 9.3388+-0.3065 9.2277+-0.5527 might be 1.0120x faster arguments-strict-mode 9.7055+-0.6204 9.6486+-0.9985 arguments 8.4119+-0.3836 8.2973+-0.3068 might be 1.0138x faster arity-mismatch-inlining 0.8235+-0.0221 ? 0.8588+-0.0653 ? might be 1.0429x slower array-access-polymorphic-structure 5.7975+-0.1120 ? 5.8343+-0.1597 ? array-nonarray-polymorhpic-access 24.5723+-0.6498 23.7154+-0.6516 might be 1.0361x faster array-prototype-every 75.6078+-2.1788 75.3799+-1.3309 array-prototype-forEach 74.7404+-2.0104 73.9970+-1.0558 might be 1.0100x faster array-prototype-map 79.8269+-0.7447 ? 80.4953+-1.0972 ? array-prototype-reduce 70.2274+-0.9570 ? 70.7728+-1.4600 ? array-prototype-reduceRight 70.3583+-1.4368 ? 71.2870+-1.9813 ? might be 1.0132x slower array-prototype-some 75.3365+-1.0169 74.6313+-1.6556 array-splice-contiguous 21.2718+-0.5439 ? 22.0295+-2.1383 ? might be 1.0356x slower array-with-double-add 3.4384+-0.1577 ? 3.4623+-0.1650 ? array-with-double-increment 3.0944+-0.1125 ? 3.1009+-0.1789 ? array-with-double-mul-add 4.2584+-0.1057 4.1370+-0.0455 might be 1.0293x faster array-with-double-sum 3.2586+-0.1650 3.1237+-0.0164 might be 1.0432x faster array-with-int32-add-sub 5.6055+-0.0613 ? 5.6932+-0.1773 ? might be 1.0156x slower array-with-int32-or-double-sum 3.2460+-0.1880 ? 3.3141+-0.1697 ? might be 1.0210x slower ArrayBuffer-DataView-alloc-large-long-lived 25.6887+-0.8838 ? 27.1256+-1.8324 ? might be 1.0559x slower ArrayBuffer-DataView-alloc-long-lived 11.8639+-0.3817 11.7981+-0.4534 ArrayBuffer-Int32Array-byteOffset 3.5019+-0.0763 3.4851+-0.1207 ArrayBuffer-Int8Array-alloc-large-long-lived 30.8180+-1.7967 30.3651+-0.6900 might be 1.0149x faster ArrayBuffer-Int8Array-alloc-long-lived-buffer 20.2607+-0.4183 ? 21.3177+-1.0934 ? might be 1.0522x slower ArrayBuffer-Int8Array-alloc-long-lived 12.3179+-0.5055 ? 12.3189+-0.7590 ? ArrayBuffer-Int8Array-alloc 9.4633+-0.3967 ? 9.5524+-0.5062 ? arrowfunction-call 9.9027+-0.1601 9.8614+-0.1317 asmjs_bool_bug 7.4319+-0.1969 ? 7.5542+-0.3540 ? might be 1.0165x slower assign-custom-setter-polymorphic 2.3085+-0.0628 ? 2.4720+-0.1520 ? might be 1.0708x slower assign-custom-setter 3.1340+-0.0494 ? 3.2322+-0.0788 ? might be 1.0313x slower basic-set 7.1469+-0.2058 ? 7.3257+-0.6986 ? might be 1.0250x slower big-int-mul 3.4082+-0.0546 ? 3.4494+-0.0893 ? might be 1.0121x slower boolean-test 2.8813+-0.0639 ? 2.8881+-0.0213 ? branch-fold 3.6698+-0.1719 ? 3.6754+-0.2311 ? branch-on-string-as-boolean 17.5798+-0.8557 17.3710+-0.5012 might be 1.0120x faster by-val-generic 2.4084+-0.3337 2.3033+-0.1229 might be 1.0456x faster call-spread-apply 26.0063+-0.5907 25.9428+-0.6743 call-spread-call 21.3142+-0.7482 20.8861+-0.5101 might be 1.0205x faster captured-assignments 0.4110+-0.0227 ? 0.4518+-0.0612 ? might be 1.0992x slower cast-int-to-double 5.0475+-0.1328 4.9980+-0.0883 cell-argument 6.5038+-0.3804 6.2392+-0.1884 might be 1.0424x faster cfg-simplify 2.8218+-0.0845 ? 2.9031+-0.2099 ? might be 1.0288x slower chain-getter-access 8.4399+-0.2094 8.2271+-0.1312 might be 1.0259x faster cmpeq-obj-to-obj-other 12.1866+-0.8155 ? 12.3672+-1.6706 ? might be 1.0148x slower constant-test 4.7427+-0.1635 4.7312+-0.0727 create-lots-of-functions 9.6595+-0.8759 9.2115+-0.3716 might be 1.0486x faster cse-new-array-buffer 2.2253+-0.1311 2.1706+-0.0901 might be 1.0252x faster cse-new-array 3.0022+-1.7512 2.2514+-0.0941 might be 1.3335x faster DataView-custom-properties 31.1648+-1.5371 31.1243+-1.4138 delay-tear-off-arguments-strictmode 12.6584+-0.7602 12.3959+-0.4637 might be 1.0212x faster deltablue-varargs 160.8017+-3.5139 158.3215+-1.9129 might be 1.0157x faster destructuring-arguments 163.3447+-1.9397 ? 163.5504+-0.7293 ? destructuring-parameters-overridden-by-function 0.4329+-0.0084 ? 0.4902+-0.0569 ? might be 1.1323x slower destructuring-swap 4.6838+-0.1550 4.6820+-0.0711 direct-arguments-getbyval 1.1636+-0.0629 1.1052+-0.0339 might be 1.0529x faster div-boolean-double 5.3056+-0.1568 ? 5.3097+-0.0885 ? div-boolean 8.1618+-0.2975 8.0997+-0.1364 double-get-by-val-out-of-bounds 4.1674+-0.2641 4.0087+-0.0847 might be 1.0396x faster double-pollution-getbyval 8.7495+-0.3360 ? 8.8559+-0.3579 ? might be 1.0122x slower double-pollution-putbyoffset 3.6738+-0.1738 ? 3.7230+-0.1902 ? might be 1.0134x slower double-real-use 24.7588+-1.1652 ? 25.3221+-1.8578 ? might be 1.0228x slower double-to-int32-typed-array-no-inline 2.0026+-0.0974 1.9776+-0.0662 might be 1.0126x faster double-to-int32-typed-array 1.7745+-0.0364 1.7645+-0.0675 double-to-uint32-typed-array-no-inline 2.0896+-0.1457 ? 2.1373+-0.2807 ? might be 1.0228x slower double-to-uint32-typed-array 1.8732+-0.1104 ? 1.9479+-0.1478 ? might be 1.0399x slower elidable-new-object-dag 35.0045+-1.2805 34.1770+-0.9491 might be 1.0242x faster elidable-new-object-roflcopter 32.9935+-0.5720 ? 33.2759+-1.1725 ? elidable-new-object-then-call 33.1413+-1.8925 32.1100+-1.8914 might be 1.0321x faster elidable-new-object-tree 37.6701+-1.6256 37.6440+-1.4968 empty-string-plus-int 4.7306+-0.1397 4.6538+-0.1667 might be 1.0165x faster emscripten-cube2hash 27.5827+-0.6800 27.3231+-2.0532 exit-length-on-plain-object 13.0200+-0.9690 ? 13.4278+-1.4707 ? might be 1.0313x slower external-arguments-getbyval 1.1794+-0.0345 ? 1.2119+-0.1175 ? might be 1.0276x slower external-arguments-putbyval 2.3375+-0.4381 2.1752+-0.1324 might be 1.0746x faster fixed-typed-array-storage-var-index 1.2962+-0.3603 1.1784+-0.0874 might be 1.0999x faster fixed-typed-array-storage 0.8849+-0.0832 0.8592+-0.0678 might be 1.0298x faster Float32Array-matrix-mult 3.8473+-0.1124 ? 4.0200+-0.4307 ? might be 1.0449x slower Float32Array-to-Float64Array-set 46.3595+-0.5574 ? 47.1399+-1.5388 ? might be 1.0168x slower Float64Array-alloc-long-lived 70.0729+-1.7150 ? 70.2935+-2.2537 ? Float64Array-to-Int16Array-set 56.6025+-1.0564 55.4960+-0.9563 might be 1.0199x faster fold-double-to-int 12.1222+-0.5848 ? 12.1606+-0.5593 ? fold-get-by-id-to-multi-get-by-offset-rare-int 11.3149+-1.1291 ? 12.1633+-1.0000 ? might be 1.0750x slower fold-get-by-id-to-multi-get-by-offset 10.0302+-0.6417 ? 10.3791+-0.4443 ? might be 1.0348x slower fold-multi-get-by-offset-to-get-by-offset 9.0641+-0.8956 8.7765+-1.5193 might be 1.0328x faster fold-multi-get-by-offset-to-poly-get-by-offset 7.9405+-0.9065 7.7867+-1.1706 might be 1.0197x faster fold-multi-put-by-offset-to-poly-put-by-offset 8.4993+-0.6274 ? 9.3335+-0.2343 ? might be 1.0981x slower fold-multi-put-by-offset-to-put-by-offset 4.1995+-0.5731 ? 4.6303+-0.7585 ? might be 1.1026x slower fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 8.7965+-0.8589 ? 9.6766+-0.4680 ? might be 1.1001x slower fold-put-by-id-to-multi-put-by-offset 11.4880+-1.1559 ? 12.0700+-1.1159 ? might be 1.0507x slower fold-put-by-val-with-string-to-multi-put-by-offset 10.8771+-0.9090 ? 11.3743+-1.1234 ? might be 1.0457x slower fold-put-by-val-with-symbol-to-multi-put-by-offset 10.1823+-1.5338 ? 10.6002+-0.7861 ? might be 1.0410x slower fold-put-structure 4.3298+-0.3623 ? 4.5824+-1.0212 ? might be 1.0584x slower for-of-iterate-array-entries 11.4380+-0.5785 ? 11.4420+-0.4518 ? for-of-iterate-array-keys 3.6518+-0.1785 ? 3.6953+-0.1593 ? might be 1.0119x slower for-of-iterate-array-values 3.7957+-0.4072 3.6401+-0.2064 might be 1.0428x faster fround 17.8805+-0.4461 17.6460+-0.3801 might be 1.0133x faster ftl-library-inlining-dataview 56.1237+-0.7259 55.9549+-1.0552 ftl-library-inlining 95.2243+-1.2162 ? 95.7191+-0.8219 ? function-call 9.9362+-0.2223 ? 10.0033+-0.2136 ? function-dot-apply 2.0926+-0.2486 1.9850+-0.1146 might be 1.0542x faster function-test 2.7679+-0.1756 ? 2.8648+-0.2638 ? might be 1.0350x slower function-with-eval 99.6352+-1.8479 ? 103.5155+-3.2789 ? might be 1.0389x slower gcse-poly-get-less-obvious 14.6280+-1.0409 ! 18.5351+-0.1695 ! definitely 1.2671x slower gcse-poly-get 15.8617+-0.3204 ! 22.0256+-0.7602 ! definitely 1.3886x slower gcse 3.7969+-0.0446 ? 3.9950+-0.3145 ? might be 1.0522x slower get-by-id-bimorphic-check-structure-elimination-simple 2.6593+-0.1735 2.6546+-0.1860 get-by-id-bimorphic-check-structure-elimination 5.7222+-0.1640 ? 5.7434+-0.3457 ? get-by-id-chain-from-try-block 5.5054+-0.2768 5.4199+-0.1691 might be 1.0158x faster get-by-id-check-structure-elimination 4.4006+-0.0694 ? 4.4429+-0.0514 ? get-by-id-proto-or-self 14.6330+-0.2818 ? 15.3632+-0.5265 ? might be 1.0499x slower get-by-id-quadmorphic-check-structure-elimination-simple 2.8511+-0.0585 ? 3.1593+-0.6173 ? might be 1.1081x slower get-by-id-self-or-proto 15.4144+-0.6034 ? 15.5662+-0.6628 ? get-by-val-out-of-bounds 3.9080+-0.1952 ? 3.9112+-0.1101 ? get-by-val-with-string-bimorphic-check-structure-elimination-simple 2.7396+-0.0404 ? 2.7494+-0.0252 ? get-by-val-with-string-bimorphic-check-structure-elimination 5.9702+-0.0997 ? 6.0829+-0.1680 ? might be 1.0189x slower get-by-val-with-string-chain-from-try-block 5.6085+-0.1841 ? 5.7550+-0.3724 ? might be 1.0261x slower get-by-val-with-string-check-structure-elimination 5.0995+-0.0827 ? 5.1159+-0.1757 ? get-by-val-with-string-proto-or-self 15.0379+-0.5903 ? 15.6604+-1.4231 ? might be 1.0414x slower get-by-val-with-string-quadmorphic-check-structure-elimination-simple 3.3245+-0.0528 3.3037+-0.0604 get-by-val-with-string-self-or-proto 15.7241+-1.2060 15.6344+-0.8814 get-by-val-with-symbol-bimorphic-check-structure-elimination-simple 3.1130+-0.1016 ? 3.2099+-0.3127 ? might be 1.0311x slower get-by-val-with-symbol-bimorphic-check-structure-elimination 12.6816+-0.6539 ? 12.9689+-1.4128 ? might be 1.0227x slower get-by-val-with-symbol-chain-from-try-block 5.4856+-0.0685 ? 5.5936+-0.1470 ? might be 1.0197x slower get-by-val-with-symbol-check-structure-elimination 11.1132+-0.3332 11.0871+-0.2499 get-by-val-with-symbol-proto-or-self 14.8131+-0.9009 ? 15.9215+-0.7395 ? might be 1.0748x slower get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple 3.7819+-0.3031 ? 3.9305+-0.3500 ? might be 1.0393x slower get-by-val-with-symbol-self-or-proto 15.6397+-0.8039 15.4517+-0.8269 might be 1.0122x faster get_callee_monomorphic 2.5271+-0.4456 2.4854+-0.4470 might be 1.0168x faster get_callee_polymorphic 3.2113+-0.0466 ? 3.3606+-0.2072 ? might be 1.0465x slower getter-no-activation 4.7807+-0.2564 4.7502+-0.1712 getter-prototype 8.9587+-0.1583 8.7340+-0.2325 might be 1.0257x faster getter-richards 117.7746+-4.1061 116.6130+-8.2667 getter 5.7845+-0.7333 ? 5.9121+-0.7352 ? might be 1.0221x slower global-object-access-with-mutating-structure 5.7900+-0.2680 5.7549+-0.4126 global-var-const-infer-fire-from-opt 0.8838+-0.2711 0.7825+-0.0514 might be 1.1294x faster global-var-const-infer 0.6185+-0.0349 0.5904+-0.0162 might be 1.0476x faster hard-overflow-check-equal 32.8856+-0.8859 ? 33.4152+-1.2498 ? might be 1.0161x slower hard-overflow-check 32.8915+-1.3756 32.6631+-0.8393 HashMap-put-get-iterate-keys 27.3347+-2.0865 25.5123+-1.5986 might be 1.0714x faster HashMap-put-get-iterate 28.9101+-0.9982 28.0691+-1.0667 might be 1.0300x faster HashMap-string-put-get-iterate 25.2002+-2.8351 ? 25.5573+-1.9905 ? might be 1.0142x slower hoist-make-rope 9.6164+-1.4235 8.7898+-0.6416 might be 1.0940x faster hoist-poly-check-structure-effectful-loop 4.1336+-0.2317 4.0438+-0.0691 might be 1.0222x faster hoist-poly-check-structure 3.2937+-0.1567 3.2393+-0.0520 might be 1.0168x faster imul-double-only 7.3452+-0.3659 ? 7.3872+-0.6378 ? imul-int-only 8.3098+-0.7673 ? 8.7393+-0.7817 ? might be 1.0517x slower imul-mixed 6.9233+-0.4298 ? 7.2306+-0.4539 ? might be 1.0444x slower in-four-cases 16.7223+-0.8025 ? 16.8579+-0.4346 ? in-one-case-false 9.9339+-0.6650 ? 10.1345+-0.7628 ? might be 1.0202x slower in-one-case-true 10.1658+-0.9222 10.0036+-0.7543 might be 1.0162x faster in-two-cases 10.1089+-0.6008 10.0869+-0.1110 indexed-properties-in-objects 2.7484+-0.0475 2.7461+-0.1446 infer-closure-const-then-mov-no-inline 3.0143+-0.0541 3.0020+-0.0518 infer-closure-const-then-mov 18.4009+-0.3867 18.0909+-0.6086 might be 1.0171x faster infer-closure-const-then-put-to-scope-no-inline 9.8418+-0.1087 ? 10.2132+-0.4056 ? might be 1.0377x slower infer-closure-const-then-put-to-scope 22.8895+-0.3485 22.7981+-1.1854 infer-closure-const-then-reenter-no-inline 45.1586+-1.7685 ? 45.1716+-0.9921 ? infer-closure-const-then-reenter 22.5262+-1.0363 22.4987+-1.3555 infer-constant-global-property 3.4619+-0.1626 3.4513+-0.0970 infer-constant-property 2.5834+-0.0617 ? 2.6789+-0.2906 ? might be 1.0369x slower infer-one-time-closure-ten-vars 7.7796+-0.4251 ? 7.8540+-0.3811 ? infer-one-time-closure-two-vars 7.2216+-0.2799 ? 7.3160+-0.1708 ? might be 1.0131x slower infer-one-time-closure 7.1757+-0.4528 ? 7.3222+-0.3630 ? might be 1.0204x slower infer-one-time-deep-closure 11.0037+-0.5622 10.9153+-0.7444 inline-arguments-access 3.6974+-0.2989 3.6600+-0.2197 might be 1.0102x faster inline-arguments-aliased-access 3.8458+-0.3684 3.5640+-0.1185 might be 1.0791x faster inline-arguments-local-escape 3.7261+-0.2094 3.5614+-0.1142 might be 1.0463x faster inline-get-scoped-var 4.4755+-0.1321 4.4322+-0.0752 inlined-put-by-id-transition 10.8137+-1.3723 9.2073+-0.4570 might be 1.1745x faster inlined-put-by-val-with-string-transition 72.6438+-3.9758 ^ 41.2424+-1.8262 ^ definitely 1.7614x faster inlined-put-by-val-with-symbol-transition 70.3780+-0.9152 ^ 41.2326+-1.3954 ^ definitely 1.7069x faster int-or-other-abs-then-get-by-val 4.0519+-0.0428 ? 4.1366+-0.0680 ? might be 1.0209x slower int-or-other-abs-zero-then-get-by-val 15.5216+-0.4210 ? 15.7687+-0.6526 ? might be 1.0159x slower int-or-other-add-then-get-by-val 4.0375+-0.1783 ? 4.1189+-0.2410 ? might be 1.0202x slower int-or-other-add 4.7487+-0.0704 ? 5.0979+-0.3345 ? might be 1.0735x slower int-or-other-div-then-get-by-val 3.6810+-0.0604 ? 3.7524+-0.0819 ? might be 1.0194x slower int-or-other-max-then-get-by-val 3.8418+-0.4812 3.7259+-0.1553 might be 1.0311x faster int-or-other-min-then-get-by-val 3.8742+-0.4322 3.7784+-0.1025 might be 1.0254x faster int-or-other-mod-then-get-by-val 3.4543+-0.0678 3.4169+-0.0500 might be 1.0110x faster int-or-other-mul-then-get-by-val 3.5915+-0.0901 ? 3.9361+-0.6230 ? might be 1.0960x slower int-or-other-neg-then-get-by-val 3.8596+-0.1058 ? 3.8797+-0.1669 ? int-or-other-neg-zero-then-get-by-val 15.3652+-0.3771 ? 15.4408+-0.5653 ? int-or-other-sub-then-get-by-val 4.1926+-0.3401 4.0048+-0.0705 might be 1.0469x faster int-or-other-sub 3.4665+-0.1053 3.3845+-0.0612 might be 1.0242x faster int-overflow-local 3.9411+-0.0235 ? 3.9579+-0.0802 ? Int16Array-alloc-long-lived 45.9919+-0.7681 ? 47.9485+-1.3440 ? might be 1.0425x slower Int16Array-bubble-sort-with-byteLength 17.8592+-1.2230 17.5242+-0.1616 might be 1.0191x faster Int16Array-bubble-sort 18.0943+-0.5513 18.0746+-0.3566 Int16Array-load-int-mul 1.4037+-0.0497 ? 1.4344+-0.0537 ? might be 1.0219x slower Int16Array-to-Int32Array-set 43.8099+-0.8927 ? 43.9587+-2.0841 ? Int32Array-alloc-large 12.1019+-0.6316 ? 12.9754+-0.9018 ? might be 1.0722x slower Int32Array-alloc-long-lived 54.9708+-1.5492 ? 55.0248+-1.7429 ? Int32Array-alloc 2.7409+-0.2002 ? 2.8403+-0.3071 ? might be 1.0363x slower Int32Array-Int8Array-view-alloc 6.0284+-0.2558 5.9403+-0.1909 might be 1.0148x faster int52-spill 4.4882+-0.0504 ? 4.5686+-0.2015 ? might be 1.0179x slower Int8Array-alloc-long-lived 41.9918+-1.9272 40.2285+-0.6346 might be 1.0438x faster Int8Array-load-with-byteLength 3.4107+-0.2222 3.3640+-0.0625 might be 1.0139x faster Int8Array-load 3.4136+-0.1107 ? 3.7002+-0.2579 ? might be 1.0840x slower integer-divide 10.2019+-0.0709 ? 10.2446+-0.1389 ? integer-modulo 1.5895+-0.1275 ? 1.6460+-0.2057 ? might be 1.0355x slower is-boolean-fold-tricky 3.6218+-0.0667 ? 3.6294+-0.0959 ? is-boolean-fold 2.6307+-0.0247 2.5876+-0.0319 might be 1.0166x faster is-function-fold-tricky-internal-function 9.7915+-0.3773 9.6386+-0.2522 might be 1.0159x faster is-function-fold-tricky 3.9284+-0.4679 3.8539+-0.3927 might be 1.0193x faster is-function-fold 2.6281+-0.0550 ? 2.6617+-0.0556 ? might be 1.0128x slower is-number-fold-tricky 3.7077+-0.1273 3.6167+-0.0301 might be 1.0252x faster is-number-fold 2.6107+-0.0589 ? 2.6112+-0.0173 ? is-object-or-null-fold-functions 2.6446+-0.0252 2.6436+-0.0501 is-object-or-null-fold-less-tricky 3.7839+-0.2444 3.6847+-0.0579 might be 1.0269x faster is-object-or-null-fold-tricky 4.4562+-0.0918 ? 4.4773+-0.0621 ? is-object-or-null-fold 2.6464+-0.0267 ? 2.6594+-0.0776 ? is-object-or-null-trickier-function 3.7288+-0.0879 ? 3.7503+-0.0620 ? is-object-or-null-trickier-internal-function 9.6041+-0.1733 ? 9.8485+-0.1326 ? might be 1.0254x slower is-object-or-null-tricky-function 3.8137+-0.1850 3.7094+-0.0712 might be 1.0281x faster is-object-or-null-tricky-internal-function 7.1667+-0.1232 ? 7.2501+-0.0671 ? might be 1.0116x slower is-string-fold-tricky 3.6298+-0.0525 ? 3.6428+-0.0851 ? is-string-fold 2.5950+-0.0550 2.5923+-0.0510 is-undefined-fold-tricky 2.8072+-0.0262 ? 3.0736+-0.5586 ? might be 1.0949x slower is-undefined-fold 2.6684+-0.1452 2.6371+-0.0301 might be 1.0119x faster JSONP-negative-0 0.2512+-0.0307 ? 0.2543+-0.0186 ? might be 1.0124x slower large-int-captured 3.9194+-0.2470 3.7739+-0.1667 might be 1.0386x faster large-int-neg 13.9124+-0.2626 ? 14.0268+-0.5026 ? large-int 12.9276+-0.2431 ? 13.3826+-0.6343 ? might be 1.0352x slower load-varargs-elimination 20.7050+-0.6937 ? 20.9970+-1.5988 ? might be 1.0141x slower logical-not-weird-types 2.7457+-0.0355 ? 2.8655+-0.1192 ? might be 1.0436x slower logical-not 3.8721+-0.0980 ? 4.0562+-0.3533 ? might be 1.0475x slower lots-of-fields 8.4889+-0.1485 ? 8.8735+-0.3558 ? might be 1.0453x slower make-indexed-storage 2.8316+-0.1228 2.7818+-0.0519 might be 1.0179x faster make-rope-cse 3.8218+-0.5091 3.5540+-0.0738 might be 1.0753x faster marsaglia-larger-ints 31.5935+-0.4695 ? 31.9410+-1.1375 ? might be 1.0110x slower marsaglia-osr-entry 21.3730+-0.6321 20.9876+-0.3617 might be 1.0184x faster math-with-out-of-bounds-array-values 21.8956+-0.7243 ? 22.1317+-1.2004 ? might be 1.0108x slower max-boolean 2.7966+-0.4559 2.6514+-0.0654 might be 1.0548x faster method-on-number 17.5921+-2.3271 16.1689+-0.9431 might be 1.0880x faster min-boolean 2.5912+-0.0596 ? 2.6452+-0.0487 ? might be 1.0208x slower minus-boolean-double 3.0644+-0.0229 ? 3.1033+-0.0781 ? might be 1.0127x slower minus-boolean 2.3256+-0.0849 ? 2.3626+-0.0771 ? might be 1.0159x slower misc-strict-eq 27.5782+-0.6645 ? 28.5178+-1.9061 ? might be 1.0341x slower mod-boolean-double 11.0269+-0.3246 10.9732+-0.0827 mod-boolean 8.2103+-0.0451 ? 8.3065+-0.1911 ? might be 1.0117x slower mul-boolean-double 3.6419+-0.1250 ? 3.7218+-0.2017 ? might be 1.0219x slower mul-boolean 2.8734+-0.1285 2.8043+-0.0723 might be 1.0247x faster neg-boolean 3.1650+-0.1830 3.0705+-0.0554 might be 1.0308x faster negative-zero-divide 0.3574+-0.0606 0.3281+-0.0047 might be 1.0894x faster negative-zero-modulo 0.3252+-0.0039 ? 0.3497+-0.0410 ? might be 1.0756x slower negative-zero-negate 0.4047+-0.2153 0.3241+-0.0176 might be 1.2485x faster nested-function-parsing 44.4465+-0.7348 ? 44.5638+-0.7258 ? new-array-buffer-dead 89.0078+-1.7278 87.2928+-1.0476 might be 1.0196x faster new-array-buffer-push 6.4101+-0.7057 6.0497+-0.3552 might be 1.0596x faster new-array-dead 15.4235+-1.2700 15.2636+-0.9277 might be 1.0105x faster new-array-push 3.5560+-0.4794 3.3837+-0.2020 might be 1.0509x faster no-inline-constructor 32.0130+-1.6072 ? 33.0959+-1.8180 ? might be 1.0338x slower number-test 3.1161+-0.6992 3.0123+-0.3902 might be 1.0344x faster object-closure-call 5.1105+-0.0520 5.0861+-0.0664 object-get-own-property-symbols-on-large-array 4.1708+-0.3296 4.1292+-0.2494 might be 1.0101x faster object-test 2.7287+-0.1827 2.6386+-0.0463 might be 1.0341x faster obvious-sink-pathology-taken 98.7021+-1.4791 ? 99.0081+-1.1866 ? obvious-sink-pathology 93.5946+-1.4385 ? 94.3019+-1.0521 ? obviously-elidable-new-object 29.6667+-1.7614 29.5003+-1.9391 plus-boolean-arith 2.3333+-0.0510 ? 2.3924+-0.0567 ? might be 1.0254x slower plus-boolean-double 3.1956+-0.1133 3.0765+-0.0539 might be 1.0387x faster plus-boolean 2.6000+-0.1819 2.4764+-0.0548 might be 1.0499x faster poly-chain-access-different-prototypes-simple 3.2030+-0.0531 ? 3.4128+-0.1765 ? might be 1.0655x slower poly-chain-access-different-prototypes 3.2477+-0.1094 ? 3.2568+-0.0385 ? poly-chain-access-simpler 3.3506+-0.4195 ? 3.4652+-0.0766 ? might be 1.0342x slower poly-chain-access 3.2027+-0.0381 ? 3.3022+-0.0802 ? might be 1.0311x slower poly-stricteq 50.5701+-2.4948 ? 50.9478+-2.2033 ? polymorphic-array-call 1.2616+-0.1126 ERROR polymorphic-get-by-id 2.8157+-0.1135 ? 2.8413+-0.0797 ? polymorphic-put-by-id 24.7850+-1.0770 ! 28.5172+-0.6276 ! definitely 1.1506x slower polymorphic-put-by-val-with-string 25.0303+-0.8124 ! 29.5797+-1.7070 ! definitely 1.1818x slower polymorphic-put-by-val-with-symbol 25.5333+-1.2361 ! 27.6089+-0.3341 ! definitely 1.0813x slower polymorphic-structure 12.9117+-0.3324 ? 13.0308+-0.5017 ? polyvariant-monomorphic-get-by-id 6.3628+-0.8938 ? 7.3165+-1.2692 ? might be 1.1499x slower proto-getter-access 8.2995+-0.2186 ? 8.3900+-0.2011 ? might be 1.0109x slower prototype-access-with-mutating-prototype 5.3836+-0.0769 ? 5.4852+-0.1530 ? might be 1.0189x slower put-by-id-replace-and-transition 7.8712+-0.6463 7.5909+-0.3264 might be 1.0369x faster put-by-id-slightly-polymorphic 2.6514+-0.1192 ? 2.7445+-0.1776 ? might be 1.0351x slower put-by-id 9.5186+-0.4856 ? 9.5272+-0.3246 ? put-by-val-direct 0.4873+-0.2740 0.3386+-0.0210 might be 1.4395x faster put-by-val-large-index-blank-indexing-type 5.1635+-0.2846 ? 5.4386+-0.6054 ? might be 1.0533x slower put-by-val-machine-int 2.4363+-0.1803 2.4097+-0.1703 might be 1.0110x faster put-by-val-with-string-replace-and-transition 9.7352+-0.0957 ? 10.2951+-0.6629 ? might be 1.0575x slower put-by-val-with-string-slightly-polymorphic 2.9011+-0.1494 2.8328+-0.0399 might be 1.0241x faster put-by-val-with-string 10.2152+-0.5029 ? 10.2219+-0.4663 ? put-by-val-with-symbol-replace-and-transition 11.5022+-0.4566 ? 12.0575+-0.9607 ? might be 1.0483x slower put-by-val-with-symbol-slightly-polymorphic 3.1166+-0.0834 3.1126+-0.0678 put-by-val-with-symbol 11.0364+-0.5235 10.2553+-0.5247 might be 1.0762x faster rare-osr-exit-on-local 13.4074+-0.1971 ? 13.9234+-0.7151 ? might be 1.0385x slower register-pressure-from-osr 16.4147+-0.4987 ? 16.5071+-0.4117 ? repeat-multi-get-by-offset 20.7601+-0.2696 ? 20.9120+-0.7323 ? setter-prototype 7.6626+-0.2313 ? 7.6734+-0.2092 ? setter 5.5045+-0.4129 5.4978+-0.4401 simple-activation-demo 24.3068+-0.4168 ? 24.4869+-0.8986 ? simple-getter-access 10.6019+-0.2463 10.5633+-0.2311 simple-poly-call-nested 8.4321+-0.7550 8.2975+-0.8184 might be 1.0162x faster simple-poly-call 1.1296+-0.0323 1.1294+-0.0291 sin-boolean 20.6144+-1.8443 ? 21.0148+-1.8351 ? might be 1.0194x slower singleton-scope 55.0364+-1.1251 ? 55.4321+-0.9536 ? sink-function 9.8300+-0.4396 ? 10.3881+-1.2097 ? might be 1.0568x slower sink-huge-activation 16.1642+-1.2933 ? 17.0401+-0.7199 ? might be 1.0542x slower sinkable-new-object-dag 55.5725+-1.5707 54.5355+-1.3000 might be 1.0190x faster sinkable-new-object-taken 43.5704+-1.5172 43.5632+-0.9638 sinkable-new-object 29.4796+-0.3823 ? 29.6930+-0.3820 ? slow-array-profile-convergence 2.3567+-0.0810 ? 2.3761+-0.0334 ? slow-convergence 2.2894+-0.0625 2.2575+-0.0461 might be 1.0142x faster slow-ternaries 17.5651+-0.4812 17.2562+-0.3153 might be 1.0179x faster sorting-benchmark 16.8188+-0.2816 ? 17.3362+-1.1051 ? might be 1.0308x slower sparse-conditional 1.1884+-0.1133 1.1177+-0.0057 might be 1.0632x faster splice-to-remove 12.1964+-0.9621 11.8202+-0.1882 might be 1.0318x faster string-char-code-at 13.1814+-0.4328 12.9048+-0.4135 might be 1.0214x faster string-concat-object 2.0890+-0.1280 ? 2.3130+-0.3069 ? might be 1.1072x slower string-concat-pair-object 2.1667+-0.2016 2.1027+-0.1746 might be 1.0305x faster string-concat-pair-simple 9.1200+-0.2439 ? 10.2148+-1.3996 ? might be 1.1201x slower string-concat-simple 9.3874+-0.4654 ? 9.7610+-0.7386 ? might be 1.0398x slower string-cons-repeat 6.7603+-0.7195 6.5241+-0.4478 might be 1.0362x faster string-cons-tower 6.6130+-0.2664 ? 6.6937+-0.4509 ? might be 1.0122x slower string-equality 15.8530+-0.2138 ? 15.9399+-0.2099 ? string-get-by-val-big-char 6.5070+-0.1476 6.4845+-0.1965 string-get-by-val-out-of-bounds-insane 3.0780+-0.1275 ? 3.0957+-0.1170 ? string-get-by-val-out-of-bounds 4.2801+-0.6171 3.9026+-0.0661 might be 1.0967x faster string-get-by-val 2.7802+-0.0207 ? 2.7954+-0.0465 ? string-hash 1.7963+-0.0223 1.7885+-0.0553 string-long-ident-equality 13.3568+-0.3418 13.2543+-0.2242 string-out-of-bounds 10.0272+-0.2119 10.0070+-0.2392 string-repeat-arith 27.3014+-0.9589 27.1584+-0.4409 string-sub 53.5487+-1.4652 53.1037+-1.6422 string-test 2.8773+-0.2132 2.7502+-0.0607 might be 1.0462x faster string-var-equality 25.7118+-0.5069 25.2362+-0.4450 might be 1.0188x faster structure-hoist-over-transitions 2.3719+-0.0493 ? 2.4723+-0.2688 ? might be 1.0423x slower substring-concat-weird 35.9517+-1.0117 ? 36.3435+-1.4392 ? might be 1.0109x slower substring-concat 39.7954+-1.2485 ? 39.9030+-1.1510 ? substring 45.2133+-1.3888 44.2791+-0.6978 might be 1.0211x faster switch-char-constant 2.6959+-0.1427 2.6221+-0.0473 might be 1.0281x faster switch-char 5.6748+-0.7996 ? 5.7040+-0.8403 ? switch-constant 8.0575+-0.7252 7.8456+-0.7597 might be 1.0270x faster switch-string-basic-big-var 13.3040+-0.2213 ? 13.3959+-0.2766 ? switch-string-basic-big 14.1127+-0.9837 13.9955+-0.8126 switch-string-basic-var 12.9421+-0.4662 12.6441+-0.2105 might be 1.0236x faster switch-string-basic 12.3180+-0.1770 12.2356+-0.2656 switch-string-big-length-tower-var 17.7317+-0.4247 ? 17.7591+-0.3601 ? switch-string-length-tower-var 13.3729+-0.3905 13.0472+-0.2952 might be 1.0250x faster switch-string-length-tower 11.6212+-0.1933 ? 11.6571+-0.5260 ? switch-string-short 11.8155+-0.5449 11.5797+-0.1011 might be 1.0204x faster switch 11.2640+-0.4091 ? 11.3058+-0.5703 ? tear-off-arguments-simple 2.9888+-0.1363 ? 3.0495+-0.1585 ? might be 1.0203x slower tear-off-arguments 4.1885+-0.2707 4.0549+-0.5055 might be 1.0330x faster temporal-structure 11.7441+-0.1933 ? 11.7633+-0.2253 ? to-int32-boolean 12.6164+-0.4174 12.3920+-0.0933 might be 1.0181x faster try-catch-get-by-val-cloned-arguments 14.0280+-0.5272 13.9606+-0.7588 try-catch-get-by-val-direct-arguments 6.4890+-0.6329 6.2231+-0.2252 might be 1.0427x faster try-catch-get-by-val-scoped-arguments 7.6760+-0.3974 7.4541+-0.2315 might be 1.0298x faster typed-array-get-set-by-val-profiling 27.0093+-0.9579 26.7186+-0.5656 might be 1.0109x faster undefined-property-access 224.9176+-0.8511 ? 225.8445+-2.0551 ? undefined-test 2.8604+-0.0736 ? 2.9276+-0.0392 ? might be 1.0235x slower unprofiled-licm 13.6104+-0.2384 ? 13.9234+-0.5151 ? might be 1.0230x slower varargs-call 12.4609+-0.2951 ? 12.5722+-0.2279 ? varargs-construct-inline 22.8646+-1.0615 21.7610+-1.1961 might be 1.0507x faster varargs-construct 20.4170+-1.2253 19.8159+-0.9795 might be 1.0303x faster varargs-inline 8.1285+-0.3946 7.7846+-0.1182 might be 1.0442x faster varargs-strict-mode 9.0262+-0.6311 8.6633+-0.1398 might be 1.0419x faster varargs 8.5977+-0.1317 ? 9.0539+-1.1400 ? might be 1.0531x slower weird-inlining-const-prop 2.0829+-0.0803 2.0679+-0.2963 <geometric> 7.7813+-0.0288 ERROR TipOfTree NewPolyIC AsmBench: bigfib.cpp 448.3273+-8.3243 ? 453.2424+-5.6490 ? might be 1.0110x slower cray.c 398.2515+-3.2341 398.1871+-2.4686 dry.c 420.0529+-7.9347 412.8385+-7.9821 might be 1.0175x faster FloatMM.c 681.9023+-2.0043 ? 684.2348+-3.5513 ? gcc-loops.cpp 3423.1442+-17.6593 3416.4462+-20.5228 n-body.c 819.8316+-1.5053 ? 823.9700+-7.8652 ? Quicksort.c 405.2087+-6.5606 404.3651+-0.8151 stepanov_container.cpp 3546.6263+-16.1474 3526.1716+-22.6991 Towers.c 235.6921+-1.8398 ? 236.7061+-3.7922 ? <geometric> 714.5940+-2.0892 714.3088+-2.2449 might be 1.0004x faster TipOfTree NewPolyIC CompressionBench: huffman 58.9485+-0.8693 ? 59.9698+-0.6593 ? might be 1.0173x slower arithmetic-simple 270.1069+-0.6587 ? 271.5894+-2.7625 ? arithmetic-precise 243.8536+-3.0425 240.2072+-1.9811 might be 1.0152x faster arithmetic-complex-precise 241.4851+-1.6367 ? 242.3879+-3.3590 ? arithmetic-precise-order-0 278.4817+-0.7713 ? 280.1524+-1.9989 ? arithmetic-precise-order-1 305.4280+-5.7719 304.0262+-1.8489 arithmetic-precise-order-2 350.2224+-2.1488 ? 350.7878+-4.8364 ? arithmetic-simple-order-1 325.7271+-1.3399 ? 326.7786+-2.9401 ? arithmetic-simple-order-2 380.1700+-3.9336 ^ 374.6579+-1.4940 ^ definitely 1.0147x faster lz-string 312.2294+-3.3868 311.1443+-5.5307 <geometric> 253.1143+-0.6356 253.0992+-0.7479 might be 1.0001x faster TipOfTree NewPolyIC Geomean of preferred means: <scaled-result> 50.9769+-0.1137 ERROR
Filip Pizlo
Comment 32 2015-09-09 16:07:51 PDT
(In reply to comment #30) > (In reply to comment #29) > > Comment on attachment 260868 [details] > > the patch > > > > Mac EWS failure appears repeatable. There seems to be a bug here. > > Yup, I'm looking at it. This turned out to be an existing bug in BinarySwitch. This patch makes it easy to reproduce this using typed array tests. I'll upload a new patch shortly that fixes that BinarySwitch bug and adds a test...
Filip Pizlo
Comment 33 2015-09-09 16:14:23 PDT
Created attachment 260886 [details] the patch And now, with fixes to the array-message-passing bug.
WebKit Commit Bot
Comment 34 2015-09-09 16:16:37 PDT
Attachment 260886 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:560: Declaration has space between type name and * in numberOfRegsForCall * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:629: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:677: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:840: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:870: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/jit/BinarySwitch.cpp:143: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/jit/BinarySwitch.cpp:217: Multi line control clauses should use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.cpp:56: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:61: The parameter name "value" adds no information, so it should be removed. [readability/parameter_name] [5] Total errors found: 9 in 29 files If any of these errors are false positives, please file a bug against check-webkit-style.
Filip Pizlo
Comment 35 2015-09-09 20:00:50 PDT
Created attachment 260906 [details] the patch Fixes for 32-bit x86.
WebKit Commit Bot
Comment 36 2015-09-09 20:03:54 PDT
Attachment 260906 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:560: Declaration has space between type name and * in numberOfRegsForCall * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:629: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:677: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:844: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:875: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/jit/BinarySwitch.cpp:143: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/jit/BinarySwitch.cpp:217: Multi line control clauses should use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.cpp:56: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:61: The parameter name "value" adds no information, so it should be removed. [readability/parameter_name] [5] Total errors found: 9 in 29 files If any of these errors are false positives, please file a bug against check-webkit-style.
Michael Saboff
Comment 37 2015-09-10 11:16:27 PDT
Comment on attachment 260906 [details] the patch r=me
Filip Pizlo
Comment 38 2015-09-10 12:50:18 PDT
Chris Dumez
Comment 39 2015-09-10 19:50:07 PDT
Looks like a 4% progression on Speedometer :)
Note You need to log in before you can comment on or make changes to this bug.