Bug 120022

Summary: DFG should inline new typedArray()
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: Filip Pizlo <fpizlo>
Status: RESOLVED FIXED    
Severity: Normal CC: barraclough, commit-queue, eflews.bot, ggaren, gyuyoung.kim, mark.lam, mhahnenberg, msaboff, oliver, sam, webkit-ews
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Attachments:
Description Flags
work in progress
none
almost done
none
the patch
webkit-ews: commit-queue-
the patch oliver: review+

Filip Pizlo
Reported 2013-08-19 12:45:39 PDT
Patch forthcoming.
Attachments
work in progress (18.43 KB, patch)
2013-08-19 12:46 PDT, Filip Pizlo
no flags
almost done (39.78 KB, patch)
2013-08-20 17:36 PDT, Filip Pizlo
no flags
the patch (57.57 KB, patch)
2013-08-20 18:37 PDT, Filip Pizlo
webkit-ews: commit-queue-
the patch (57.59 KB, patch)
2013-08-20 20:35 PDT, Filip Pizlo
oliver: review+
Filip Pizlo
Comment 1 2013-08-19 12:46:44 PDT
Created attachment 209110 [details] work in progress
Filip Pizlo
Comment 2 2013-08-20 17:36:30 PDT
Created attachment 209240 [details] almost done
Filip Pizlo
Comment 3 2013-08-20 18:37:26 PDT
Created attachment 209245 [details] the patch
WebKit Commit Bot
Comment 4 2013-08-20 18:39:34 PDT
Attachment 209245 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'LayoutTests/ChangeLog', u'LayoutTests/fast/js/regress/Float64Array-alloc-long-lived-expected.txt', u'LayoutTests/fast/js/regress/Float64Array-alloc-long-lived.html', u'LayoutTests/fast/js/regress/Int16Array-alloc-long-lived-expected.txt', u'LayoutTests/fast/js/regress/Int16Array-alloc-long-lived.html', u'LayoutTests/fast/js/regress/Int8Array-alloc-long-lived-expected.txt', u'LayoutTests/fast/js/regress/Int8Array-alloc-long-lived.html', u'LayoutTests/fast/js/regress/script-tests/Float64Array-alloc-long-lived.js', u'LayoutTests/fast/js/regress/script-tests/Int16Array-alloc-long-lived.js', u'LayoutTests/fast/js/regress/script-tests/Int32Array-alloc-long-lived.js', u'LayoutTests/fast/js/regress/script-tests/Int8Array-alloc-long-lived.js', u'Source/JavaScriptCore/ChangeLog', u'Source/JavaScriptCore/bytecode/SpeculatedType.cpp', u'Source/JavaScriptCore/bytecode/SpeculatedType.h', u'Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h', u'Source/JavaScriptCore/dfg/DFGBackwardsPropagationPhase.cpp', u'Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp', u'Source/JavaScriptCore/dfg/DFGCCallHelpers.h', u'Source/JavaScriptCore/dfg/DFGCSEPhase.cpp', u'Source/JavaScriptCore/dfg/DFGClobberize.h', u'Source/JavaScriptCore/dfg/DFGFixupPhase.cpp', u'Source/JavaScriptCore/dfg/DFGGraph.cpp', u'Source/JavaScriptCore/dfg/DFGNode.h', u'Source/JavaScriptCore/dfg/DFGNodeType.h', u'Source/JavaScriptCore/dfg/DFGOperations.cpp', u'Source/JavaScriptCore/dfg/DFGOperations.h', u'Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp', u'Source/JavaScriptCore/dfg/DFGSafeToExecute.h', u'Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp', u'Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h', u'Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp', u'Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp', u'Source/JavaScriptCore/jit/JITOpcodes.cpp', u'Source/JavaScriptCore/jit/JITOpcodes32_64.cpp', u'Source/JavaScriptCore/runtime/JSArray.h', u'Source/JavaScriptCore/runtime/JSArrayBufferView.h', u'Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructorInlines.h', u'Source/JavaScriptCore/runtime/JSObject.h', u'Source/JavaScriptCore/runtime/TypedArrayType.cpp', u'Source/JavaScriptCore/runtime/TypedArrayType.h']" exit_code: 1 Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:171: The parameter name "type" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:1691: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] Total errors found: 2 in 40 files If any of these errors are false positives, please file a bug against check-webkit-style.
Early Warning System Bot
Comment 5 2013-08-20 18:45:44 PDT
EFL EWS Bot
Comment 6 2013-08-20 18:45:47 PDT
Comment on attachment 209245 [details] the patch Attachment 209245 [details] did not pass efl-wk2-ews (efl-wk2): Output: http://webkit-queues.appspot.com/results/1515727
Early Warning System Bot
Comment 7 2013-08-20 18:47:25 PDT
Comment on attachment 209245 [details] the patch Attachment 209245 [details] did not pass qt-wk2-ews (qt-wk2): Output: http://webkit-queues.appspot.com/results/1525239
EFL EWS Bot
Comment 8 2013-08-20 19:03:13 PDT
Filip Pizlo
Comment 9 2013-08-20 20:35:25 PDT
Created attachment 209247 [details] the patch A fix for less intelligent compilers.
WebKit Commit Bot
Comment 10 2013-08-20 20:37:04 PDT
Attachment 209247 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'LayoutTests/ChangeLog', u'LayoutTests/fast/js/regress/Float64Array-alloc-long-lived-expected.txt', u'LayoutTests/fast/js/regress/Float64Array-alloc-long-lived.html', u'LayoutTests/fast/js/regress/Int16Array-alloc-long-lived-expected.txt', u'LayoutTests/fast/js/regress/Int16Array-alloc-long-lived.html', u'LayoutTests/fast/js/regress/Int8Array-alloc-long-lived-expected.txt', u'LayoutTests/fast/js/regress/Int8Array-alloc-long-lived.html', u'LayoutTests/fast/js/regress/script-tests/Float64Array-alloc-long-lived.js', u'LayoutTests/fast/js/regress/script-tests/Int16Array-alloc-long-lived.js', u'LayoutTests/fast/js/regress/script-tests/Int32Array-alloc-long-lived.js', u'LayoutTests/fast/js/regress/script-tests/Int8Array-alloc-long-lived.js', u'Source/JavaScriptCore/ChangeLog', u'Source/JavaScriptCore/bytecode/SpeculatedType.cpp', u'Source/JavaScriptCore/bytecode/SpeculatedType.h', u'Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h', u'Source/JavaScriptCore/dfg/DFGBackwardsPropagationPhase.cpp', u'Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp', u'Source/JavaScriptCore/dfg/DFGCCallHelpers.h', u'Source/JavaScriptCore/dfg/DFGCSEPhase.cpp', u'Source/JavaScriptCore/dfg/DFGClobberize.h', u'Source/JavaScriptCore/dfg/DFGFixupPhase.cpp', u'Source/JavaScriptCore/dfg/DFGGraph.cpp', u'Source/JavaScriptCore/dfg/DFGNode.h', u'Source/JavaScriptCore/dfg/DFGNodeType.h', u'Source/JavaScriptCore/dfg/DFGOperations.cpp', u'Source/JavaScriptCore/dfg/DFGOperations.h', u'Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp', u'Source/JavaScriptCore/dfg/DFGSafeToExecute.h', u'Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp', u'Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h', u'Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp', u'Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp', u'Source/JavaScriptCore/jit/JITOpcodes.cpp', u'Source/JavaScriptCore/jit/JITOpcodes32_64.cpp', u'Source/JavaScriptCore/runtime/JSArray.h', u'Source/JavaScriptCore/runtime/JSArrayBufferView.h', u'Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructorInlines.h', u'Source/JavaScriptCore/runtime/JSObject.h', u'Source/JavaScriptCore/runtime/TypedArrayType.cpp', u'Source/JavaScriptCore/runtime/TypedArrayType.h']" exit_code: 1 Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:171: The parameter name "type" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:1691: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] Total errors found: 2 in 40 files If any of these errors are false positives, please file a bug against check-webkit-style.
Oliver Hunt
Comment 11 2013-08-21 08:52:57 PDT
Comment on attachment 209247 [details] the patch View in context: https://bugs.webkit.org/attachment.cgi?id=209247&action=review > Source/JavaScriptCore/ChangeLog:18 > + is turned into the NewTypedArray intrinsic. Later, of child1 (i.e. 'blah') s/of/if >> Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:171 >> + bool handleTypedArrayConstructor(int resultOperand, InternalFunction*, int registerOffset, int argumentCountIncludingThis, TypedArrayType type); > > The parameter name "type" adds no information, so it should be removed. [readability/parameter_name] [5] Fix this :)
Filip Pizlo
Comment 12 2013-08-21 10:19:48 PDT
Benchmark report for SunSpider, V8Spider, Octane, Kraken, JSBench, JSRegress, and DSP on oldmac (MacPro4,1). VMs tested: "TipOfTree" at /Volumes/Data/pizlo/OpenSource/WebKitBuild/Release/DumpRenderTree (r154377) "InlineAlloc" at /Volumes/Data/fromMiniMe/primary/OpenSource/WebKitBuild/Release/DumpRenderTree (r154377) Collected 12 samples per benchmark/VM, with 4 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 InlineAlloc SunSpider: 3d-cube 7.7747+-0.2891 7.6122+-0.2301 might be 1.0213x faster 3d-morph 8.4042+-0.0833 ? 8.4356+-0.0870 ? 3d-raytrace 9.5497+-0.2998 9.5160+-0.3047 access-binary-trees 2.7488+-0.3093 2.7450+-0.3167 access-fannkuch 7.6606+-0.0376 7.6433+-0.0390 access-nbody 4.1223+-0.0489 4.1041+-0.0394 access-nsieve 4.9050+-0.0653 4.8810+-0.0746 bitops-3bit-bits-in-byte 1.8460+-0.0329 ^ 1.7946+-0.0107 ^ definitely 1.0287x faster bitops-bits-in-byte 6.6703+-0.0584 ? 6.7175+-0.0737 ? bitops-bitwise-and 2.8029+-0.0326 2.7653+-0.0429 might be 1.0136x faster bitops-nsieve-bits 4.7089+-0.0393 4.7014+-0.0414 controlflow-recursive 2.9434+-0.0240 ? 2.9978+-0.0708 ? might be 1.0185x slower crypto-aes 5.9733+-0.3473 5.9107+-0.2899 might be 1.0106x faster crypto-md5 3.2492+-0.0606 3.2384+-0.0617 crypto-sha1 2.9954+-0.0452 2.9403+-0.0437 might be 1.0187x faster date-format-tofte 13.1546+-1.0071 13.1275+-0.9659 date-format-xparb 9.3071+-0.6714 ? 9.5249+-0.7396 ? might be 1.0234x slower math-cordic 3.9242+-0.0352 ? 3.9461+-0.0192 ? math-partial-sums 10.4970+-0.0290 10.4726+-0.0370 math-spectral-norm 2.8442+-0.0370 ? 2.8529+-0.0297 ? regexp-dna 12.9782+-0.6301 12.8178+-0.5322 might be 1.0125x faster string-base64 6.4370+-0.5505 6.4214+-0.5929 string-fasta 12.2881+-0.1464 12.2108+-0.1253 string-tagcloud 14.8669+-0.2310 ? 14.8729+-0.2187 ? string-unpack-code 32.3795+-0.7718 32.0481+-0.3149 might be 1.0103x faster string-validate-input 9.0677+-0.1770 8.9481+-0.2276 might be 1.0134x faster <arithmetic> * 7.8500+-0.1349 7.8172+-0.1398 might be 1.0042x faster <geometric> 6.2312+-0.1016 6.2069+-0.1029 might be 1.0039x faster <harmonic> 5.0701+-0.0759 5.0428+-0.0787 might be 1.0054x faster TipOfTree InlineAlloc V8Spider: crypto 81.5586+-0.3559 81.4630+-0.3788 deltablue 102.2116+-1.0560 ? 102.5456+-0.5378 ? earley-boyer 71.6705+-0.3700 71.6049+-0.5320 raytrace 45.9929+-5.3371 ? 46.1615+-5.1969 ? regexp 104.1917+-2.0254 102.5365+-0.4734 might be 1.0161x faster richards 117.2156+-1.6040 116.5673+-1.7465 splay 59.8726+-3.4770 ? 59.9441+-3.4551 ? <arithmetic> 83.2448+-0.8593 82.9747+-0.7452 might be 1.0033x faster <geometric> * 79.3191+-1.1836 79.1510+-0.9761 might be 1.0021x faster <harmonic> 75.1002+-1.6936 75.0304+-1.4054 might be 1.0009x faster TipOfTree InlineAlloc Octane and V8v7: encrypt 0.47487+-0.00076 0.47478+-0.00069 decrypt 8.66462+-0.02477 8.65431+-0.01733 deltablue x2 0.59545+-0.00631 0.59416+-0.00485 earley 0.90704+-0.01580 0.89599+-0.00466 might be 1.0123x faster boyer 12.64573+-0.06277 12.63382+-0.05103 raytrace x2 4.38205+-0.03395 ? 4.40496+-0.05377 ? regexp x2 33.23950+-0.19545 ? 33.32507+-0.17230 ? richards x2 0.32354+-0.00271 0.32283+-0.00406 splay x2 0.65176+-0.02634 0.64136+-0.00827 might be 1.0162x faster navier-stokes x2 10.94309+-0.01203 ? 10.94347+-0.01603 ? closure 0.38418+-0.01884 0.38326+-0.01851 jquery 4.76358+-0.55838 4.73609+-0.55293 gbemu x2 90.83779+-3.24956 ? 91.22615+-3.31175 ? mandreel x2 194.93612+-1.39532 194.83794+-0.77357 pdfjs x2 99.36695+-0.18055 ! 100.01355+-0.38784 ! definitely 1.0065x slower box2d x2 34.68833+-0.20417 ? 34.69207+-0.18310 ? V8v7: <arithmetic> 7.68519+-0.02484 ? 7.69516+-0.02354 ? might be 1.0013x slower <geometric> * 2.46708+-0.01450 2.46133+-0.00618 might be 1.0023x faster <harmonic> 0.95689+-0.00846 0.95257+-0.00485 might be 1.0045x faster Octane including V8v7: <arithmetic> 37.22189+-0.25133 ? 37.29928+-0.24211 ? might be 1.0021x slower <geometric> * 7.07940+-0.05390 7.07267+-0.04226 might be 1.0010x faster <harmonic> 1.32226+-0.01282 1.31672+-0.00878 might be 1.0042x faster TipOfTree InlineAlloc Kraken: ai-astar 492.730+-1.298 491.255+-0.398 audio-beat-detection 256.100+-3.567 255.496+-4.584 audio-dft 314.049+-1.557 ? 339.032+-24.153 ? might be 1.0796x slower audio-fft 147.776+-0.288 ? 147.864+-0.172 ? audio-oscillator 248.750+-1.189 ? 249.490+-1.810 ? imaging-darkroom 295.701+-1.758 ? 297.813+-1.420 ? imaging-desaturate 159.473+-0.200 ? 159.631+-0.433 ? imaging-gaussian-blur 404.553+-0.510 404.551+-0.217 json-parse-financial 79.445+-0.194 79.164+-0.168 json-stringify-tinderbox 103.648+-0.346 103.328+-0.326 stanford-crypto-aes 109.355+-1.158 107.618+-0.888 might be 1.0161x faster stanford-crypto-ccm 121.821+-6.161 ? 122.051+-4.304 ? stanford-crypto-pbkdf2 264.888+-0.831 ! 268.123+-2.100 ! definitely 1.0122x slower stanford-crypto-sha256-iterative 128.084+-0.560 128.021+-0.973 <arithmetic> * 223.312+-0.376 ? 225.246+-1.600 ? might be 1.0087x slower <geometric> 193.486+-0.591 ? 194.456+-0.910 ? might be 1.0050x slower <harmonic> 168.153+-0.828 ? 168.346+-0.664 ? might be 1.0011x slower TipOfTree InlineAlloc JSBench: amazon 10.1667+-0.2473 10.1667+-0.2473 facebook 39.3333+-0.5640 39.0000+-0.5418 google 67.2500+-0.9815 ? 67.4167+-1.0302 ? twitter 10.1667+-0.2473 10.0833+-0.1834 yahoo 3.7500+-0.2874 ? 3.9167+-0.1834 ? might be 1.0444x slower <arithmetic> * 26.1333+-0.2443 26.1167+-0.2680 might be 1.0006x faster <geometric> 15.9054+-0.2946 ? 16.0113+-0.2278 ? might be 1.0067x slower <harmonic> 9.8876+-0.4366 ? 10.1190+-0.2889 ? might be 1.0234x slower TipOfTree InlineAlloc JSRegress: adapt-to-double-divide 22.5600+-0.0715 22.5582+-0.0336 aliased-arguments-getbyval 0.9642+-0.0247 ! 1.0092+-0.0184 ! definitely 1.0467x slower allocate-big-object 4.0949+-1.3080 ? 4.9551+-1.4695 ? might be 1.2101x slower arity-mismatch-inlining 0.8773+-0.0282 0.8665+-0.0177 might be 1.0124x faster array-access-polymorphic-structure 9.0851+-2.0234 8.6002+-1.8577 might be 1.0564x faster array-nonarray-polymorhpic-access 82.4143+-31.8422 72.6338+-26.1691 might be 1.1347x faster array-with-double-add 5.3757+-0.0204 ? 5.3784+-0.0348 ? array-with-double-increment 4.1515+-0.0264 4.1237+-0.0399 array-with-double-mul-add 7.5173+-0.2387 7.4381+-0.2816 might be 1.0106x faster array-with-double-sum 7.8886+-0.0624 7.8565+-0.0269 array-with-int32-add-sub 9.3562+-0.0332 9.3382+-0.0315 array-with-int32-or-double-sum 8.0342+-0.0653 7.9547+-0.0309 might be 1.0100x faster ArrayBuffer-Int32Array-byteOffset 7.9765+-0.0598 ! 8.7132+-0.0169 ! definitely 1.0924x slower ArrayBuffer-Int8Array-alloc-huge-long-lived 215.5981+-3.3786 ? 217.8355+-2.2534 ? might be 1.0104x slower ArrayBuffer-Int8Array-alloc-large-long-lived 134.0660+-2.0835 131.2934+-1.3026 might be 1.0211x faster ArrayBuffer-Int8Array-alloc-long-lived-buffer 83.6345+-10.6929 83.1611+-10.6541 ArrayBuffer-Int8Array-alloc-long-lived 42.7316+-3.9578 41.4995+-4.3815 might be 1.0297x faster ArrayBuffer-Int8Array-alloc 37.9366+-4.0841 35.8926+-3.7251 might be 1.0569x faster big-int-mul 4.8030+-0.0300 4.7721+-0.0317 boolean-test 4.3622+-0.0422 ? 4.3658+-0.0313 ? branch-fold 4.7819+-0.0418 4.7683+-0.0300 cast-int-to-double 14.1485+-0.0564 14.1102+-0.0495 cell-argument 14.6673+-0.2356 14.6391+-0.2113 cfg-simplify 3.8331+-0.0300 3.7911+-0.0392 might be 1.0111x faster cmpeq-obj-to-obj-other 12.4158+-0.2515 ? 12.5477+-0.2278 ? might be 1.0106x slower constant-test 8.5819+-0.0579 ? 8.7165+-0.1282 ? might be 1.0157x slower delay-tear-off-arguments-strictmode 3.4013+-0.0322 3.3702+-0.0271 direct-arguments-getbyval 0.8023+-0.0161 ? 0.8180+-0.0209 ? might be 1.0195x slower double-pollution-getbyval 10.8241+-0.0600 10.7756+-0.0334 double-pollution-putbyoffset 6.8139+-0.6348 6.7952+-0.6303 empty-string-plus-int 13.9439+-0.2141 ? 14.0987+-0.2422 ? might be 1.0111x slower emscripten-cube2hash 52.2623+-2.5513 52.0843+-2.5690 emscripten-memops 10463.3257+-518.7311 ? 10465.9307+-522.8421 ? external-arguments-getbyval 2.4380+-0.1392 2.4051+-0.1580 might be 1.0137x faster external-arguments-putbyval 3.9601+-0.2598 ? 4.0561+-0.2801 ? might be 1.0242x slower Float32Array-matrix-mult 7.2984+-0.2222 ^ 6.6040+-0.2134 ^ definitely 1.1051x faster Float64Array-alloc-long-lived 219.4572+-0.7419 ^ 109.2268+-0.6746 ^ definitely 2.0092x faster fold-double-to-int 25.5762+-0.3840 25.2633+-0.0383 might be 1.0124x faster function-dot-apply 3.0334+-0.0150 3.0242+-0.0287 function-test 4.9158+-0.0449 4.8012+-0.0820 might be 1.0239x faster get-by-id-chain-from-try-block 6.5817+-0.0274 ? 6.5958+-0.0546 ? get-by-id-proto-or-self 22.8288+-0.2613 ? 23.1340+-0.3339 ? might be 1.0134x slower get-by-id-self-or-proto 23.6257+-0.2443 23.2238+-0.4009 might be 1.0173x faster HashMap-put-get-iterate-keys 44.3407+-0.5527 ? 44.5284+-0.6442 ? HashMap-put-get-iterate 54.5920+-0.9207 53.9982+-0.6264 might be 1.0110x faster HashMap-string-put-get-iterate 64.9997+-0.4874 ? 65.9980+-0.9330 ? might be 1.0154x slower hole-check-on-array-load 1270.0081+-1.0233 1269.8773+-0.9651 imul-double-only 18.1523+-0.9762 17.8309+-0.7116 might be 1.0180x faster imul-int-only 15.8455+-0.1851 15.7861+-0.1496 imul-mixed 22.0594+-0.0573 21.9972+-0.0228 in-four-cases 26.1402+-0.0817 26.1036+-0.0410 in-one-case-false 12.3101+-0.0710 ? 12.3556+-0.0947 ? in-one-case-true 12.2911+-0.0995 12.1761+-0.0295 in-two-cases 12.6503+-0.0352 ? 12.7884+-0.1597 ? might be 1.0109x slower indexed-properties-in-objects 4.0919+-0.0221 4.0798+-0.0361 inline-arguments-access 1.4620+-0.0335 1.4474+-0.0261 might be 1.0101x faster inline-arguments-local-escape 27.1226+-1.6491 ? 27.3519+-1.6311 ? inline-get-scoped-var 6.8488+-0.0444 6.7971+-0.0776 inlined-put-by-id-transition 14.9442+-0.1931 ? 14.9766+-0.2706 ? int-or-other-abs-then-get-by-val 9.0881+-0.1312 ^ 8.7744+-0.0611 ^ definitely 1.0357x faster int-or-other-abs-zero-then-get-by-val 36.8343+-0.2610 ? 37.6201+-0.7877 ? might be 1.0213x slower int-or-other-add-then-get-by-val 10.2167+-0.0415 10.1959+-0.0247 int-or-other-add 10.6599+-0.1921 10.6462+-0.2030 int-or-other-div-then-get-by-val 6.1230+-0.0344 6.1176+-0.0299 int-or-other-max-then-get-by-val 7.1459+-0.0905 7.1218+-0.0641 int-or-other-min-then-get-by-val 7.1497+-0.0352 ? 7.1631+-0.0342 ? int-or-other-mod-then-get-by-val 6.0270+-0.0501 ? 6.0443+-0.0733 ? int-or-other-mul-then-get-by-val 6.5275+-0.0402 6.4605+-0.0564 might be 1.0104x faster int-or-other-neg-then-get-by-val 8.0284+-0.0929 7.9680+-0.0412 int-or-other-neg-zero-then-get-by-val 36.7312+-0.6814 ? 36.7574+-0.9346 ? int-or-other-sub-then-get-by-val 10.5797+-0.0329 ? 10.5993+-0.0548 ? int-or-other-sub 8.1684+-0.0240 ? 8.1968+-0.0654 ? int-overflow-local 11.8136+-0.0327 11.7632+-0.0938 Int16Array-alloc-long-lived 182.6471+-1.2198 ^ 72.5788+-0.3563 ^ definitely 2.5165x faster Int16Array-bubble-sort-with-byteLength 48.3408+-0.1377 ? 48.3746+-0.1175 ? Int16Array-bubble-sort 47.7895+-0.1044 47.7442+-0.0847 Int16Array-load-int-mul 2.0035+-0.0252 ? 2.0370+-0.0205 ? might be 1.0167x slower Int32Array-alloc-huge-long-lived 720.1225+-15.1730 ? 720.2589+-15.2175 ? Int32Array-alloc-huge 824.2469+-6.0581 820.0264+-7.0436 Int32Array-alloc-large-long-lived 1025.7290+-4.3856 ^ 971.3623+-4.0902 ^ definitely 1.0560x faster Int32Array-alloc-large 46.2191+-1.0630 ? 46.6714+-0.7328 ? Int32Array-alloc-long-lived 195.6223+-1.9626 ^ 85.6301+-1.4103 ^ definitely 2.2845x faster Int32Array-alloc 17.4408+-3.0402 ^ 7.4380+-2.9563 ^ definitely 2.3448x faster Int32Array-Int8Array-view-alloc 24.7730+-1.8619 21.8413+-1.8240 might be 1.1342x faster Int8Array-alloc-long-lived 180.1925+-2.4417 ^ 71.9688+-1.9285 ^ definitely 2.5038x faster Int8Array-load-with-byteLength 4.8677+-0.0380 4.8358+-0.0229 Int8Array-load 4.8796+-0.0427 4.8473+-0.0231 integer-divide 15.3890+-0.0316 ? 15.4343+-0.0463 ? integer-modulo 1.9361+-0.0265 1.9286+-0.0284 lots-of-fields 16.6240+-2.4854 16.0715+-2.4798 might be 1.0344x faster make-indexed-storage 4.8819+-0.6625 ? 4.9315+-0.6602 ? might be 1.0102x slower make-rope-cse 16.6918+-2.9808 16.5411+-3.0522 marsaglia 521.9623+-0.6508 521.2033+-0.3265 method-on-number 27.8754+-0.3046 ? 28.2241+-0.6018 ? might be 1.0125x slower miss-string-lookup 62.1661+-0.4184 ? 62.5905+-0.3326 ? negative-zero-divide 0.3401+-0.0135 ? 0.3428+-0.0121 ? negative-zero-modulo 0.3284+-0.0121 ? 0.3288+-0.0139 ? negative-zero-negate 0.3138+-0.0142 0.3121+-0.0142 nested-function-parsing-random 416.1320+-12.4091 411.0815+-12.4662 might be 1.0123x faster nested-function-parsing 57.7434+-3.8680 57.3994+-3.9516 new-array-buffer-dead 3.9478+-0.0927 3.9473+-0.0901 new-array-buffer-push 15.2118+-2.5014 15.0291+-2.5368 might be 1.0122x faster new-array-dead 28.4109+-0.0457 ? 28.4228+-0.0747 ? new-array-push 12.6476+-2.0941 12.4977+-2.0320 might be 1.0120x faster number-test 4.3098+-0.0305 ? 4.3176+-0.0304 ? object-closure-call 9.0886+-1.0417 ? 9.6717+-1.4505 ? might be 1.0642x slower object-test 4.7759+-0.0768 ? 4.8167+-0.0723 ? poly-stricteq 93.1621+-0.2777 ? 94.3929+-1.2858 ? might be 1.0132x slower polymorphic-structure 21.1515+-0.0692 21.1147+-0.0717 polyvariant-monomorphic-get-by-id 12.5067+-0.0400 ? 12.5144+-0.0324 ? put-by-val-large-index-blank-indexing-type 15.9676+-3.0524 15.9620+-3.1521 rare-osr-exit-on-local 20.2809+-0.1895 20.1918+-0.0787 regexp-match-reify-before-putbyval 0.3020+-0.0119 0.3007+-0.0115 register-pressure-from-osr 31.5259+-0.0717 31.4446+-0.0754 simple-activation-demo 35.0315+-0.3777 34.7502+-0.2011 slow-array-profile-convergence 4.6973+-0.2641 ? 4.7110+-0.2878 ? slow-convergence 3.6619+-0.0507 ? 3.6634+-0.0607 ? sparse-conditional 1.3192+-0.0342 1.3061+-0.0220 might be 1.0101x faster splice-to-remove 47.6253+-0.1291 ? 47.6689+-0.1805 ? string-concat-object 5.0779+-1.4223 ? 5.1365+-1.4382 ? might be 1.0115x slower string-concat-pair-object 4.9933+-1.3963 ? 5.0411+-1.4200 ? string-concat-pair-simple 19.6399+-0.5747 19.2151+-0.8278 might be 1.0221x faster string-concat-simple 19.2758+-0.8918 ? 19.3407+-0.5321 ? string-cons-repeat 15.0167+-1.0281 14.9867+-1.0080 string-cons-tower 15.6889+-0.9547 ? 15.9399+-1.0425 ? might be 1.0160x slower string-equality 43.7165+-0.5144 43.6238+-0.5748 string-get-by-val-big-char 17.4781+-0.2515 ? 17.7367+-0.1889 ? might be 1.0148x slower string-get-by-val-out-of-bounds-insane 5.2209+-0.0962 ? 5.2994+-0.1394 ? might be 1.0150x slower string-get-by-val-out-of-bounds 4.7929+-0.0362 4.7504+-0.0171 string-get-by-val 3.9958+-0.0172 ? 4.0535+-0.0670 ? might be 1.0144x slower string-hash 2.6197+-0.0394 ? 2.6363+-0.0248 ? string-long-ident-equality 38.4349+-0.0584 38.4187+-0.0725 string-repeat-arith 49.4914+-0.3283 ? 50.3259+-1.3032 ? might be 1.0169x slower string-sub 94.6537+-0.6196 ? 95.9270+-0.9390 ? might be 1.0135x slower string-test 4.2635+-0.0364 ? 4.2744+-0.0236 ? string-var-equality 72.0660+-1.0456 71.2062+-0.3974 might be 1.0121x faster structure-hoist-over-transitions 4.0925+-0.6219 4.0813+-0.6077 switch-char-constant 3.3911+-0.0696 3.3584+-0.0197 switch-char 8.0485+-0.0639 7.9989+-0.0612 switch-constant 13.0496+-2.7806 12.8804+-2.6501 might be 1.0131x faster switch-string-basic-big-var 21.8130+-0.3185 21.7935+-0.3669 switch-string-basic-big 26.1809+-1.1259 ? 26.5506+-0.8547 ? might be 1.0141x slower switch-string-basic-var 21.2953+-0.0627 ? 21.3057+-0.0560 ? switch-string-basic 22.8580+-2.5141 21.9533+-2.3720 might be 1.0412x faster switch-string-big-length-tower-var 29.8612+-0.3670 29.5637+-0.0889 might be 1.0101x faster switch-string-length-tower-var 23.3739+-0.0570 23.3358+-0.0357 switch-string-length-tower 17.6419+-0.0858 17.5974+-0.0488 switch-string-short 17.6899+-0.0621 17.6379+-0.0640 switch 19.3848+-2.8092 19.2594+-2.7689 tear-off-arguments-simple 2.3175+-0.0342 ? 2.3581+-0.0626 ? might be 1.0175x slower tear-off-arguments 3.5372+-0.0471 3.5010+-0.0323 might be 1.0103x faster temporal-structure 21.3620+-0.3637 21.1282+-0.0555 might be 1.0111x faster to-int32-boolean 21.5867+-0.0581 ? 21.6972+-0.1367 ? undefined-test 4.4648+-0.0535 4.4648+-0.0401 <arithmetic> 100.4402+-21.3166 97.0145+-21.3945 might be 1.0353x faster <geometric> * 14.0782+-0.3253 13.6561+-0.3200 might be 1.0309x faster <harmonic> 4.6232+-0.0930 4.6107+-0.0953 might be 1.0027x faster TipOfTree InlineAlloc DSP: filtrr-posterize-tint 44.3632+-1.4008 44.1349+-1.3230 filtrr-tint-contrast-sat-bright 71.5984+-0.8206 ? 71.8267+-0.7608 ? filtrr-tint-sat-adj-contr-mult 85.2243+-3.3061 ? 86.1100+-4.4840 ? might be 1.0104x slower filtrr-blur-overlay-sat-contr 217.6965+-6.2245 ? 219.9597+-6.0855 ? might be 1.0104x slower filtrr-sat-blur-mult-sharpen-contr 257.2542+-2.1818 ? 258.2245+-2.4730 ? filtrr-sepia-bias 34.1611+-3.4407 ? 34.2785+-3.6184 ? route9-vp8 x5 1100.1926+-7.1243 1097.4051+-7.6272 starfield x5 1195.0479+-5.2723 ? 1199.8144+-5.3339 ? bellard-jslinux x5 2873.8333+-7.3491 ? 2883.0833+-12.4903 ? zynaps-quake3 x5 1404.7575+-21.4354 ? 1408.7024+-26.8952 ? zynaps-mandelbrot x5 1117.3226+-4.0033 1116.0303+-4.8226 ammojs-asm-js x5 271.0255+-14.7087 265.4232+-15.8431 might be 1.0211x faster ammojs-regular-js x5 249.5704+-10.4340 243.8708+-10.8966 might be 1.0234x faster <arithmetic> 1018.7572+-1.8917 ? 1019.1752+-2.8746 ? might be 1.0004x slower <geometric> * 627.9550+-7.8855 625.3468+-8.0212 might be 1.0042x faster <harmonic> 285.8163+-10.9754 284.4107+-11.4919 might be 1.0049x faster TipOfTree InlineAlloc All benchmarks: <arithmetic> 228.1969+-11.8042 226.4252+-11.9524 might be 1.0078x faster <geometric> 25.8783+-0.3385 25.4183+-0.3243 might be 1.0181x faster <harmonic> 4.6318+-0.0644 4.6169+-0.0616 might be 1.0032x faster TipOfTree InlineAlloc Geomean of preferred means: <scaled-result> 41.9108+-0.2494 41.7075+-0.1791 might be 1.0049x faster
Filip Pizlo
Comment 13 2013-08-21 13:02:53 PDT
Note You need to log in before you can comment on or make changes to this bug.