WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
146849
jsc-tailcall: Clean up register naming
https://bugs.webkit.org/show_bug.cgi?id=146849
Summary
jsc-tailcall: Clean up register naming
Basile Clement
Reported
2015-07-10 12:33:40 PDT
This has two goals: 1) Ensure that we are not using callee-save registers (or the least possible amount) on 64-bits platforms in preparation of
https://bugs.webkit.org/show_bug.cgi?id=146845
2) Have sane(r) and (mostly) platform-independent conventions for register naming in the LLint to limit the number of implicit platform knowledge
Attachments
WIP
(123.49 KB, patch)
2015-07-10 17:52 PDT
,
Basile Clement
no flags
Details
Formatted Diff
Diff
Patch
(126.31 KB, patch)
2015-07-13 13:54 PDT
,
Basile Clement
no flags
Details
Formatted Diff
Diff
Show Obsolete
(2)
View All
Add attachment
proposed patch, testcase, etc.
Basile Clement
Comment 1
2015-07-10 17:52:14 PDT
Created
attachment 256629
[details]
WIP Tests pass on x86_64 and x86. Missing a ChangeLog entry + check that its perf-neutral.
Basile Clement
Comment 2
2015-07-13 12:15:33 PDT
(In reply to
comment #1
)
> Created
attachment 256629
[details]
> WIP > > Tests pass on x86_64 and x86. Missing a ChangeLog entry + check that its > perf-neutral.
Some tests are actually failing on a clean build.
Basile Clement
Comment 3
2015-07-13 12:30:39 PDT
(In reply to
comment #2
)
> (In reply to
comment #1
) > > Created
attachment 256629
[details]
> > WIP > > > > Tests pass on x86_64 and x86. Missing a ChangeLog entry + check that its > > perf-neutral. > > Some tests are actually failing on a clean build.
Actually, I just shouldn't leave debug breaks lying around when running run-javascriptcore-tests...
https://bugs.webkit.org/attachment.cgi?id=256629&action=diff#a/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm_sec12
Basile Clement
Comment 4
2015-07-13 13:07:35 PDT
A few perf changes that were to be expected due to changes in register allocation ordering, but overall looks perf neutral on x86_64. I'll try to run a couple more benches on the browser to check we are not getting screwed by increasing code size. Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on Basiles-Mac-Pro (MacPro6,1). VMs tested: "Baseline" at /Volumes/Data/secondary/OpenSource/WebKitBuild/svn-tailcall/Release/jsc "Cleanup" at /Volumes/Data/secondary/OpenSource/WebKitBuild/jsc-tailcall-cleanup/Release/jsc 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. Baseline Cleanup SunSpider: 3d-cube 6.7349+-0.0719 ? 6.7963+-0.1519 ? 3d-morph 7.5206+-0.0335 ? 7.5511+-0.0287 ? 3d-raytrace 8.4003+-0.0908 8.3558+-0.1055 access-binary-trees 2.8979+-0.0343 ? 2.9416+-0.0735 ? might be 1.0151x slower access-fannkuch 7.8890+-0.0495 7.8054+-0.0433 might be 1.0107x faster access-nbody 3.7960+-0.0149 ! 3.8320+-0.0162 ! definitely 1.0095x slower access-nsieve 4.7426+-0.3226 4.5509+-0.0419 might be 1.0421x faster bitops-3bit-bits-in-byte 2.1748+-0.1635 ^ 1.5761+-0.0334 ^ definitely 1.3799x faster bitops-bits-in-byte 4.6630+-0.0654 ? 4.6742+-0.0658 ? bitops-bitwise-and 2.8267+-0.0360 2.8265+-0.0289 bitops-nsieve-bits 4.0926+-0.0189 4.0922+-0.0112 controlflow-recursive 2.9229+-0.1597 ? 2.9332+-0.0994 ? crypto-aes 5.9205+-0.0867 ? 5.9594+-0.0675 ? crypto-md5 3.4471+-0.0576 ? 3.4939+-0.0313 ? might be 1.0136x slower crypto-sha1 3.3060+-0.0552 ^ 3.2107+-0.0318 ^ definitely 1.0297x faster date-format-tofte 12.4493+-0.1084 12.3802+-0.2785 date-format-xparb 7.3903+-0.1070 ? 7.4753+-0.2236 ? might be 1.0115x slower math-cordic 4.0004+-0.0193 ^ 3.8087+-0.0412 ^ definitely 1.0503x faster math-partial-sums 7.1932+-0.0700 7.1144+-0.0711 might be 1.0111x faster math-spectral-norm 2.5990+-0.0933 2.4769+-0.0372 might be 1.0493x faster regexp-dna 9.7048+-0.1017 9.6091+-0.0942 string-base64 6.2059+-0.0708 ? 6.3383+-0.1474 ? might be 1.0213x slower string-fasta 8.3570+-0.0535 ! 8.4763+-0.0392 ! definitely 1.0143x slower string-tagcloud 12.2777+-0.0970 ^ 12.0398+-0.0679 ^ definitely 1.0198x faster string-unpack-code 27.1223+-0.2250 ? 27.3379+-0.2668 ? string-validate-input 6.4165+-0.0868 ? 6.4353+-0.0778 ? <arithmetic> 6.7327+-0.0109 6.6958+-0.0263 might be 1.0055x faster Baseline Cleanup LongSpider: 3d-cube 1161.8412+-6.4887 1152.5332+-3.2716 3d-morph 2081.1110+-1.1700 2080.3168+-0.0956 3d-raytrace 945.4407+-2.7038 ^ 934.5921+-4.2997 ^ definitely 1.0116x faster access-binary-trees 1198.6842+-3.9270 1196.6345+-2.7889 access-fannkuch 453.4463+-8.8105 452.8426+-10.8680 access-nbody 800.7323+-0.3361 ^ 795.9546+-0.4892 ^ definitely 1.0060x faster access-nsieve 545.8983+-1.8585 544.8724+-3.3537 bitops-3bit-bits-in-byte 62.0057+-0.4545 ^ 53.0330+-0.0786 ^ definitely 1.1692x faster bitops-bits-in-byte 124.3708+-1.3943 122.9960+-2.4800 might be 1.0112x faster bitops-nsieve-bits 589.7192+-3.1306 587.5258+-3.5433 controlflow-recursive 629.7211+-11.0865 ? 638.1432+-9.7784 ? might be 1.0134x slower crypto-aes 876.1451+-5.0672 869.2526+-4.0232 crypto-md5 677.6091+-2.5095 ! 685.0111+-2.6589 ! definitely 1.0109x slower crypto-sha1 902.1063+-13.3005 ? 905.6310+-3.3668 ? date-format-tofte 990.8559+-16.6845 965.2799+-25.6768 might be 1.0265x faster date-format-xparb 1000.6452+-25.5231 ! 1042.5932+-9.3398 ! definitely 1.0419x slower hash-map 219.3025+-1.3116 ? 219.7008+-2.6742 ? math-cordic 783.6735+-1.1202 783.1446+-0.9507 math-partial-sums 692.6728+-3.8965 ? 694.4527+-5.9501 ? math-spectral-norm 770.1455+-4.6595 765.6347+-1.3753 string-base64 479.7296+-0.3406 ! 505.6764+-2.4112 ! definitely 1.0541x slower string-fasta 544.5638+-3.6467 544.3551+-6.8886 string-tagcloud 266.0013+-3.3262 263.7384+-1.1230 <geometric> 589.4795+-1.4041 ^ 586.2730+-1.1275 ^ definitely 1.0055x faster Baseline Cleanup V8Spider: crypto 67.5082+-0.2485 ! 68.9623+-1.1668 ! definitely 1.0215x slower deltablue 87.2450+-1.8400 86.8190+-1.1002 earley-boyer 55.9561+-0.3860 ? 56.6427+-0.4786 ? might be 1.0123x slower raytrace 38.1482+-0.6174 ? 38.6637+-0.7811 ? might be 1.0135x slower regexp 97.8666+-0.5275 96.9073+-0.7904 richards 96.8340+-1.3080 96.4351+-1.4363 splay 46.4869+-2.2516 ? 47.5540+-2.8788 ? might be 1.0230x slower <geometric> 66.1322+-0.3290 ? 66.6109+-0.7971 ? might be 1.0072x slower Baseline Cleanup Octane: encrypt 0.31168+-0.01076 0.30730+-0.01144 might be 1.0142x faster decrypt 5.11519+-0.11926 5.06137+-0.01625 might be 1.0106x faster deltablue x2 0.24911+-0.00229 ? 0.24961+-0.00472 ? earley 0.42829+-0.00222 ? 0.43060+-0.00139 ? boyer 6.76369+-0.00910 ! 6.80048+-0.00558 ! definitely 1.0054x slower navier-stokes x2 7.00241+-0.00648 ? 7.01282+-0.00568 ? raytrace x2 1.62602+-0.05696 1.62311+-0.06450 richards x2 0.17121+-0.00312 0.16901+-0.00248 might be 1.0130x faster splay x2 0.46480+-0.00577 ? 0.46815+-0.00591 ? regexp x2 36.88398+-0.37551 36.63212+-0.20488 pdfjs x2 55.99159+-0.08090 ! 56.42693+-0.19653 ! definitely 1.0078x slower mandreel x2 67.92740+-0.15191 ! 68.50462+-0.19064 ! definitely 1.0085x slower gbemu x2 60.30344+-0.65758 59.67936+-0.23516 might be 1.0105x faster closure 0.88833+-0.00385 0.88533+-0.00465 jquery 11.58502+-0.03336 11.54738+-0.01633 box2d x2 16.75842+-0.06345 ? 16.76000+-0.04127 ? zlib x2 519.24531+-19.93258 ? 529.23839+-1.89203 ? might be 1.0192x slower typescript x2 1071.06067+-17.42616 1066.31193+-20.44820 <geometric> 8.69376+-0.05176 8.69358+-0.03174 might be 1.0000x faster Baseline Cleanup Kraken: ai-astar 374.098+-4.521 371.082+-5.049 audio-beat-detection 108.882+-0.610 ? 109.963+-0.717 ? audio-dft 150.174+-0.868 149.704+-1.020 audio-fft 86.256+-6.821 80.177+-5.606 might be 1.0758x faster audio-oscillator 96.539+-0.173 ^ 95.260+-0.153 ^ definitely 1.0134x faster imaging-darkroom 140.365+-1.004 140.333+-0.736 imaging-desaturate 84.466+-0.627 ? 84.985+-0.388 ? imaging-gaussian-blur 144.349+-1.003 ? 144.462+-1.088 ? json-parse-financial 62.070+-0.221 ? 62.595+-0.365 ? json-stringify-tinderbox 41.271+-0.124 ! 42.021+-0.153 ! definitely 1.0182x slower stanford-crypto-aes 75.097+-0.656 ? 75.291+-0.662 ? stanford-crypto-ccm 65.848+-2.608 65.224+-1.840 stanford-crypto-pbkdf2 138.845+-0.981 ? 139.965+-1.186 ? stanford-crypto-sha256-iterative 56.915+-0.317 56.605+-0.543 <arithmetic> 116.084+-0.763 115.548+-0.796 might be 1.0046x faster Baseline Cleanup JSRegress: abc-forward-loop-equal 62.0682+-0.1434 ? 62.1720+-0.0636 ? abc-postfix-backward-loop 61.6083+-0.1318 61.5688+-0.0841 abc-simple-backward-loop 61.3091+-0.0556 61.2077+-0.0497 abc-simple-forward-loop 61.5677+-0.2466 61.5199+-0.1163 abc-skippy-loop 42.0013+-0.1525 ? 42.1657+-0.3324 ? abs-boolean 3.4184+-0.0357 ? 3.4819+-0.0387 ? might be 1.0186x slower adapt-to-double-divide 21.7009+-0.0684 ? 21.7128+-0.0704 ? aliased-arguments-getbyval 1.6740+-0.1143 1.6715+-0.0651 allocate-big-object 3.1800+-0.1098 ? 3.2656+-0.0873 ? might be 1.0269x slower arguments-named-and-reflective 15.1085+-0.3518 15.0746+-0.3501 arguments-out-of-bounds 18.5758+-0.0332 ? 18.6112+-0.0983 ? arguments-strict-mode 12.8947+-0.2754 ? 13.0587+-0.3522 ? might be 1.0127x slower arguments 11.4388+-0.0800 11.4332+-0.0854 arity-mismatch-inlining 1.1892+-0.0290 ? 1.2225+-0.0388 ? might be 1.0280x slower array-access-polymorphic-structure 7.9513+-0.0805 7.9278+-0.0657 array-nonarray-polymorhpic-access 41.1190+-0.2191 40.6074+-1.1804 might be 1.0126x faster array-prototype-every 111.6422+-0.2003 ! 112.5262+-0.6148 ! definitely 1.0079x slower array-prototype-forEach 109.2232+-0.8932 ? 109.5192+-0.5706 ? array-prototype-map 124.6735+-2.4861 124.0004+-2.5844 array-prototype-reduce 104.9543+-0.5647 ? 105.2569+-0.7580 ? array-prototype-reduceRight 105.3582+-0.6879 104.7185+-0.6439 array-prototype-some 111.6165+-0.2144 ? 113.3468+-1.9217 ? might be 1.0155x slower array-splice-contiguous 34.7727+-0.3378 ! 35.8519+-0.4091 ! definitely 1.0310x slower array-with-double-add 5.3252+-0.0559 ? 5.3681+-0.0151 ? array-with-double-increment 4.2321+-0.0217 4.1750+-0.0374 might be 1.0137x faster array-with-double-mul-add 6.5493+-0.0387 ^ 6.4688+-0.0119 ^ definitely 1.0124x faster array-with-double-sum 4.2673+-0.0313 4.2491+-0.0183 array-with-int32-add-sub 8.5422+-0.0337 ! 8.7853+-0.1885 ! definitely 1.0285x slower array-with-int32-or-double-sum 4.3495+-0.0312 4.3354+-0.0213 ArrayBuffer-DataView-alloc-large-long-lived 38.7996+-0.1750 38.6390+-0.1529 ArrayBuffer-DataView-alloc-long-lived 16.9175+-0.2802 ? 17.0192+-0.2815 ? ArrayBuffer-Int32Array-byteOffset 5.1020+-0.1983 5.0294+-0.0139 might be 1.0144x faster ArrayBuffer-Int8Array-alloc-large-long-lived 41.6876+-3.8315 39.7367+-1.8853 might be 1.0491x faster ArrayBuffer-Int8Array-alloc-long-lived-buffer 28.2072+-0.1603 ^ 27.5235+-0.1837 ^ definitely 1.0248x faster ArrayBuffer-Int8Array-alloc-long-lived 16.8138+-2.1193 15.9185+-0.1793 might be 1.0562x faster ArrayBuffer-Int8Array-alloc 13.6458+-0.3295 ? 14.5506+-2.5724 ? might be 1.0663x slower asmjs_bool_bug 9.5976+-0.1853 ? 9.7096+-0.1721 ? might be 1.0117x slower assign-custom-setter-polymorphic 4.0940+-0.0581 ! 4.1918+-0.0398 ! definitely 1.0239x slower assign-custom-setter 5.6039+-0.0315 ? 5.8127+-0.1899 ? might be 1.0373x slower basic-set 11.1949+-0.5221 11.1298+-0.0903 big-int-mul 5.3266+-0.2377 5.2237+-0.0130 might be 1.0197x faster boolean-test 4.0314+-0.0562 3.9959+-0.0278 branch-fold 4.8407+-0.0350 ? 4.9161+-0.1572 ? might be 1.0156x slower branch-on-string-as-boolean 25.3538+-0.3078 25.2882+-0.3910 by-val-generic 9.9597+-0.0653 9.9080+-0.2558 call-spread-apply 37.4915+-0.8748 ? 38.4904+-1.1527 ? might be 1.0266x slower call-spread-call 31.1302+-0.0865 ^ 30.8404+-0.1320 ^ definitely 1.0094x faster captured-assignments 0.6444+-0.0219 ? 0.6492+-0.0241 ? cast-int-to-double 6.7339+-0.0235 ? 6.8240+-0.1739 ? might be 1.0134x slower cell-argument 10.7218+-0.0303 ? 10.7826+-0.2197 ? cfg-simplify 3.6548+-0.0806 3.6434+-0.0936 chain-getter-access 11.7304+-0.0908 11.6052+-0.1325 might be 1.0108x faster cmpeq-obj-to-obj-other 12.6528+-0.1375 ! 13.0671+-0.0453 ! definitely 1.0328x slower constant-test 6.3556+-0.0184 ? 6.3623+-0.0255 ? create-lots-of-functions 13.3037+-0.5555 12.9614+-0.1109 might be 1.0264x faster cse-new-array-buffer 2.8648+-0.0402 2.7787+-0.0864 might be 1.0310x faster cse-new-array 2.9864+-0.0579 2.9787+-0.0495 DataView-custom-properties 46.2083+-1.2287 45.5124+-0.4256 might be 1.0153x faster delay-tear-off-arguments-strictmode 17.5054+-0.2570 17.3861+-0.0780 deltablue-varargs 266.0583+-1.9069 ? 268.6702+-8.2586 ? destructuring-arguments 230.2788+-1.2814 ? 235.8361+-10.9457 ? might be 1.0241x slower destructuring-parameters-overridden-by-function 0.7323+-0.0307 0.7212+-0.0487 might be 1.0154x faster destructuring-swap 6.5111+-0.0286 6.5089+-0.0481 direct-arguments-getbyval 1.7095+-0.0661 1.7005+-0.0518 div-boolean-double 6.6482+-0.0212 ? 6.6833+-0.0341 ? div-boolean 9.9967+-0.0109 ! 10.0710+-0.0184 ! definitely 1.0074x slower double-get-by-val-out-of-bounds 5.7133+-0.0227 ^ 5.5549+-0.0347 ^ definitely 1.0285x faster double-pollution-getbyval 11.3955+-0.0430 ? 11.4111+-0.0237 ? double-pollution-putbyoffset 5.3514+-0.0304 ^ 5.2711+-0.0395 ^ definitely 1.0152x faster double-real-use 38.8680+-0.0312 ! 39.0460+-0.1097 ! definitely 1.0046x slower double-to-int32-typed-array-no-inline 2.9147+-0.0513 2.9027+-0.0509 double-to-int32-typed-array 2.6109+-0.0410 2.5654+-0.0535 might be 1.0177x faster double-to-uint32-typed-array-no-inline 2.9718+-0.0460 2.9450+-0.0312 double-to-uint32-typed-array 2.6473+-0.0525 ? 2.6488+-0.0403 ? elidable-new-object-dag 50.3193+-0.8058 ? 50.3413+-0.4375 ? elidable-new-object-roflcopter 50.8408+-0.4193 50.8092+-0.4156 elidable-new-object-then-call 46.7357+-0.2467 ? 46.9992+-0.4955 ? elidable-new-object-tree 52.7918+-0.6395 ? 52.8315+-0.6537 ? empty-string-plus-int 6.7159+-0.1521 ? 6.7271+-0.0628 ? emscripten-cube2hash 48.3326+-0.3124 ? 48.8531+-0.3268 ? might be 1.0108x slower exit-length-on-plain-object 16.8698+-0.0872 ? 17.4952+-0.7665 ? might be 1.0371x slower external-arguments-getbyval 1.6294+-0.0537 ? 1.6655+-0.0615 ? might be 1.0222x slower external-arguments-putbyval 3.0933+-0.1654 3.0282+-0.0560 might be 1.0215x faster fixed-typed-array-storage-var-index 1.6789+-0.0308 ? 1.6958+-0.0626 ? might be 1.0101x slower fixed-typed-array-storage 1.2629+-0.0240 1.2496+-0.0284 might be 1.0106x faster Float32Array-matrix-mult 5.8921+-0.0466 ? 5.9247+-0.0474 ? Float32Array-to-Float64Array-set 70.4592+-0.0870 ! 73.9915+-0.1406 ! definitely 1.0501x slower Float64Array-alloc-long-lived 80.4173+-0.3633 ^ 79.3145+-0.3472 ^ definitely 1.0139x faster Float64Array-to-Int16Array-set 99.7402+-0.3963 ^ 93.4952+-0.1544 ^ definitely 1.0668x faster fold-double-to-int 18.5864+-0.1552 ? 18.6248+-0.1537 ? fold-get-by-id-to-multi-get-by-offset-rare-int 10.7157+-0.2105 ? 10.7184+-0.2382 ? fold-get-by-id-to-multi-get-by-offset 8.9760+-0.2921 ? 9.0944+-0.1363 ? might be 1.0132x slower fold-multi-get-by-offset-to-get-by-offset 8.4648+-0.3831 ? 8.4701+-0.4334 ? fold-multi-get-by-offset-to-poly-get-by-offset 8.3057+-0.5966 ? 8.3653+-0.6644 ? fold-multi-put-by-offset-to-poly-put-by-offset 7.7778+-0.3071 ? 7.7787+-0.2733 ? fold-multi-put-by-offset-to-put-by-offset 6.2231+-0.0474 6.0987+-0.3375 might be 1.0204x faster fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 12.2407+-0.7210 ? 12.6628+-0.6421 ? might be 1.0345x slower fold-put-by-id-to-multi-put-by-offset 8.9200+-0.5767 ? 8.9666+-0.4092 ? fold-put-structure 5.9176+-0.0474 ? 5.9606+-0.0391 ? for-of-iterate-array-entries 16.5500+-0.5184 16.1927+-0.3405 might be 1.0221x faster for-of-iterate-array-keys 4.8068+-0.1401 ? 4.9388+-0.1891 ? might be 1.0275x slower for-of-iterate-array-values 4.6561+-0.0500 ? 4.7798+-0.2045 ? might be 1.0266x slower fround 25.9820+-0.2891 ? 26.2406+-0.3518 ? ftl-library-inlining-dataview 86.4126+-0.0862 ? 86.7813+-0.3783 ? ftl-library-inlining 161.7449+-33.1793 144.2740+-0.1983 might be 1.1211x faster function-dot-apply 2.8805+-0.0433 ? 2.8958+-0.0308 ? function-test 3.8060+-0.0397 ? 3.8293+-0.0674 ? function-with-eval 124.7633+-0.9514 123.8104+-0.8024 gcse-poly-get-less-obvious 27.0659+-4.1221 25.2286+-1.9691 might be 1.0728x faster gcse-poly-get 33.4540+-3.5483 29.7109+-2.5840 might be 1.1260x faster gcse 5.6418+-0.0271 5.6310+-0.0204 get-by-id-bimorphic-check-structure-elimination-simple 3.6243+-0.1606 3.5333+-0.0273 might be 1.0258x faster get-by-id-bimorphic-check-structure-elimination 7.9460+-0.1116 ? 7.9474+-0.0904 ? get-by-id-chain-from-try-block 8.8924+-0.0081 ^ 8.7063+-0.0362 ^ definitely 1.0214x faster get-by-id-check-structure-elimination 6.6802+-0.0465 ? 6.6847+-0.0290 ? get-by-id-proto-or-self 22.5911+-0.9970 ? 24.9811+-2.2403 ? might be 1.1058x slower get-by-id-quadmorphic-check-structure-elimination-simple 3.8105+-0.0641 ? 3.8470+-0.2084 ? get-by-id-self-or-proto 22.1123+-0.9911 ? 23.0606+-1.1966 ? might be 1.0429x slower get-by-val-out-of-bounds 5.4045+-0.0329 5.3690+-0.0551 get_callee_monomorphic 3.0481+-0.1333 ? 3.0840+-0.0445 ? might be 1.0118x slower get_callee_polymorphic 4.2763+-0.0854 4.2666+-0.0632 getter-no-activation 6.1677+-0.0418 6.1478+-0.0583 getter-prototype 19.1430+-0.2014 ? 19.1616+-0.1338 ? getter-richards 119.2553+-2.3645 ? 120.0335+-1.7076 ? getter 6.7192+-0.0550 ? 6.8012+-0.0481 ? might be 1.0122x slower global-var-const-infer-fire-from-opt 1.2591+-0.1525 ? 1.3055+-0.1271 ? might be 1.0369x slower global-var-const-infer 1.0558+-0.0354 ? 1.1400+-0.1248 ? might be 1.0797x slower HashMap-put-get-iterate-keys 31.0373+-0.3722 30.7209+-0.2404 might be 1.0103x faster HashMap-put-get-iterate 30.6773+-0.2117 30.3654+-0.5507 might be 1.0103x faster HashMap-string-put-get-iterate 40.2012+-1.5833 ^ 35.2194+-1.3954 ^ definitely 1.1414x faster hoist-make-rope 14.3208+-1.1539 ? 14.7665+-1.3856 ? might be 1.0311x slower hoist-poly-check-structure-effectful-loop 6.4588+-0.0400 ? 6.4836+-0.0492 ? hoist-poly-check-structure 4.7786+-0.0272 4.7678+-0.0285 imul-double-only 10.0229+-0.0623 ^ 9.4725+-0.1127 ^ definitely 1.0581x faster imul-int-only 12.3222+-0.3697 12.2781+-0.3992 imul-mixed 9.5611+-0.1233 ? 9.8151+-0.5966 ? might be 1.0266x slower in-four-cases 28.8295+-0.1128 ! 29.9942+-0.2183 ! definitely 1.0404x slower in-one-case-false 14.1002+-0.0638 13.8383+-0.2094 might be 1.0189x faster in-one-case-true 14.0590+-0.0375 ^ 13.7144+-0.0258 ^ definitely 1.0251x faster in-two-cases 14.7330+-0.1485 ^ 14.1530+-0.0930 ^ definitely 1.0410x faster indexed-properties-in-objects 3.7946+-0.0502 3.7887+-0.0461 infer-closure-const-then-mov-no-inline 5.1108+-0.0671 ^ 5.0094+-0.0252 ^ definitely 1.0202x faster infer-closure-const-then-mov 25.5530+-0.1854 ? 25.8312+-0.3787 ? might be 1.0109x slower infer-closure-const-then-put-to-scope-no-inline 16.5005+-0.0361 ? 16.7502+-0.2455 ? might be 1.0151x slower infer-closure-const-then-put-to-scope 28.1703+-0.1493 ! 29.5809+-1.1496 ! definitely 1.0501x slower infer-closure-const-then-reenter-no-inline 72.4104+-0.3225 ? 73.0959+-1.1720 ? infer-closure-const-then-reenter 28.8865+-0.9151 28.8506+-0.8386 infer-constant-global-property 4.6298+-0.0958 4.5800+-0.0175 might be 1.0109x faster infer-constant-property 3.5152+-0.0184 ? 3.5610+-0.0347 ? might be 1.0130x slower infer-one-time-closure-ten-vars 15.8865+-0.1956 15.7283+-0.1921 might be 1.0101x faster infer-one-time-closure-two-vars 15.2623+-0.1001 15.0797+-0.1232 might be 1.0121x faster infer-one-time-closure 15.1500+-0.2953 ? 15.1530+-0.0952 ? infer-one-time-deep-closure 26.8258+-0.1937 ? 26.8922+-0.1958 ? inline-arguments-access 4.9858+-0.0946 4.9540+-0.0756 inline-arguments-aliased-access 5.0320+-0.1188 5.0165+-0.0968 inline-arguments-local-escape 5.1383+-0.1950 5.1078+-0.1401 inline-get-scoped-var 6.0699+-0.0654 ? 6.1210+-0.0525 ? inlined-put-by-id-transition 13.9570+-0.2643 13.8094+-0.1864 might be 1.0107x faster int-or-other-abs-then-get-by-val 6.3394+-0.0365 ^ 5.9941+-0.0386 ^ definitely 1.0576x faster int-or-other-abs-zero-then-get-by-val 22.7919+-0.2342 ? 23.4238+-0.4075 ? might be 1.0277x slower int-or-other-add-then-get-by-val 5.5110+-0.0473 ? 5.5436+-0.0547 ? int-or-other-add 6.8479+-0.0562 ? 6.8490+-0.0468 ? int-or-other-div-then-get-by-val 5.4437+-0.0291 ^ 5.3094+-0.0326 ^ definitely 1.0253x faster int-or-other-max-then-get-by-val 5.5627+-0.0332 ^ 5.5003+-0.0135 ^ definitely 1.0113x faster int-or-other-min-then-get-by-val 5.5589+-0.0265 ^ 5.3693+-0.0174 ^ definitely 1.0353x faster int-or-other-mod-then-get-by-val 5.0503+-0.0621 ? 5.0994+-0.0950 ? int-or-other-mul-then-get-by-val 5.0573+-0.0215 ? 5.1177+-0.1406 ? might be 1.0119x slower int-or-other-neg-then-get-by-val 6.1060+-0.0188 ^ 5.5638+-0.0251 ^ definitely 1.0974x faster int-or-other-neg-zero-then-get-by-val 22.6818+-0.2077 ! 23.3442+-0.2087 ! definitely 1.0292x slower int-or-other-sub-then-get-by-val 5.5424+-0.0524 5.5153+-0.0524 int-or-other-sub 4.5974+-0.0416 4.5789+-0.0389 int-overflow-local 5.7850+-0.0405 5.7319+-0.1740 Int16Array-alloc-long-lived 58.9126+-0.7147 58.2027+-0.3232 might be 1.0122x faster Int16Array-bubble-sort-with-byteLength 26.3084+-0.0651 ! 27.0109+-0.2123 ! definitely 1.0267x slower Int16Array-bubble-sort 26.9322+-0.2398 ? 26.9779+-0.2370 ? Int16Array-load-int-mul 1.9698+-0.0246 1.9617+-0.0199 Int16Array-to-Int32Array-set 68.5887+-0.0703 ! 69.1246+-0.3598 ! definitely 1.0078x slower Int32Array-alloc-large 23.3470+-0.3762 ? 23.4303+-0.3749 ? Int32Array-alloc-long-lived 66.0114+-0.6230 65.2233+-0.6977 might be 1.0121x faster Int32Array-alloc 3.4170+-0.0703 ? 3.4827+-0.3743 ? might be 1.0192x slower Int32Array-Int8Array-view-alloc 8.3517+-0.0467 ? 8.3605+-0.0253 ? int52-spill 6.7677+-0.0811 6.7405+-0.0624 Int8Array-alloc-long-lived 53.1388+-0.7743 52.1472+-0.5969 might be 1.0190x faster Int8Array-load-with-byteLength 4.3444+-0.0335 ? 4.4068+-0.1735 ? might be 1.0144x slower Int8Array-load 4.3530+-0.0273 ? 4.3627+-0.0158 ? integer-divide 14.3213+-0.1036 ? 14.3812+-0.1493 ? integer-modulo 2.7508+-0.0920 2.6565+-0.0855 might be 1.0355x faster is-boolean-fold-tricky 5.8466+-0.2136 5.7972+-0.0332 is-boolean-fold 3.6215+-0.0193 ? 3.6837+-0.0443 ? might be 1.0172x slower is-function-fold-tricky-internal-function 15.6170+-0.0276 ^ 15.1833+-0.0372 ^ definitely 1.0286x faster is-function-fold-tricky 5.8931+-0.0186 ? 5.9482+-0.0801 ? is-function-fold 3.6844+-0.0415 3.6705+-0.0526 is-number-fold-tricky 5.7832+-0.0276 ? 5.8123+-0.0931 ? is-number-fold 3.6545+-0.0687 ? 3.6620+-0.0565 ? is-object-or-null-fold-functions 3.7469+-0.0328 3.7423+-0.0661 is-object-or-null-fold-less-tricky 5.8537+-0.0142 ? 5.9615+-0.0971 ? might be 1.0184x slower is-object-or-null-fold-tricky 8.4486+-0.0213 8.4420+-0.0218 is-object-or-null-fold 3.7019+-0.0630 3.6944+-0.0230 is-object-or-null-trickier-function 6.0220+-0.0225 ? 6.0699+-0.1157 ? is-object-or-null-trickier-internal-function 16.2985+-0.0641 ! 16.6989+-0.2520 ! definitely 1.0246x slower is-object-or-null-tricky-function 5.9465+-0.0283 ? 5.9914+-0.0311 ? is-object-or-null-tricky-internal-function 12.0720+-0.0267 ^ 11.8963+-0.0287 ^ definitely 1.0148x faster is-string-fold-tricky 5.7970+-0.0255 ? 5.8106+-0.0131 ? is-string-fold 3.6236+-0.0544 ? 3.7114+-0.1770 ? might be 1.0242x slower is-undefined-fold-tricky 4.8417+-0.0654 4.8016+-0.0423 is-undefined-fold 3.6639+-0.0662 3.6401+-0.0283 large-int-captured 5.4955+-0.0993 5.4434+-0.0883 large-int-neg 21.3974+-0.0881 ^ 21.1322+-0.1651 ^ definitely 1.0126x faster large-int 19.8873+-0.2852 19.5206+-0.1725 might be 1.0188x faster load-varargs-elimination 31.3516+-0.2604 ? 31.6255+-0.0860 ? logical-not-weird-types 4.3513+-0.0473 4.2990+-0.0642 might be 1.0122x faster logical-not 5.9675+-0.0661 ! 6.1282+-0.0930 ! definitely 1.0269x slower lots-of-fields 14.9067+-0.0930 ? 14.9414+-0.1004 ? make-indexed-storage 3.9790+-0.2916 3.9529+-0.2975 make-rope-cse 4.8083+-0.0619 4.7662+-0.0603 marsaglia-larger-ints 52.2453+-0.1612 52.1742+-0.2116 marsaglia-osr-entry 29.2806+-0.1460 ? 29.4050+-0.2476 ? math-with-out-of-bounds-array-values 32.5067+-1.9226 32.1429+-1.0026 might be 1.0113x faster max-boolean 3.2168+-0.0476 3.1592+-0.0164 might be 1.0182x faster method-on-number 22.8708+-0.2147 ? 23.2787+-0.2161 ? might be 1.0178x slower min-boolean 3.2193+-0.0474 3.1983+-0.0414 minus-boolean-double 4.1091+-0.0316 ? 4.1172+-0.0339 ? minus-boolean 3.0298+-0.0628 2.9913+-0.0153 might be 1.0129x faster misc-strict-eq 48.3538+-1.0811 47.9309+-0.6977 mod-boolean-double 14.1358+-0.0184 14.1352+-0.0523 mod-boolean 10.0667+-0.0475 10.0608+-0.0470 mul-boolean-double 4.8247+-0.0166 4.7988+-0.0186 mul-boolean 3.7300+-0.0173 ? 3.7378+-0.0571 ? neg-boolean 4.1357+-0.0490 4.1104+-0.0252 negative-zero-divide 0.5373+-0.0241 0.5323+-0.0321 negative-zero-modulo 0.5457+-0.0147 0.5212+-0.0303 might be 1.0470x faster negative-zero-negate 0.5039+-0.0314 0.4987+-0.0272 might be 1.0104x faster nested-function-parsing 50.4342+-0.4603 50.3311+-0.3377 new-array-buffer-dead 124.9716+-0.4599 ? 125.3321+-1.4148 ? new-array-buffer-push 8.0832+-0.3174 7.8784+-0.1356 might be 1.0260x faster new-array-dead 22.4814+-0.7806 ? 22.9073+-0.7556 ? might be 1.0189x slower new-array-push 4.6827+-0.0810 ? 4.7508+-0.1801 ? might be 1.0145x slower no-inline-constructor 46.6945+-0.1829 46.6540+-0.3923 number-test 3.9960+-0.1413 ? 4.0682+-0.2109 ? might be 1.0181x slower object-closure-call 7.2012+-0.0641 ? 7.2381+-0.0501 ? object-test 3.7124+-0.0596 ^ 3.6113+-0.0364 ^ definitely 1.0280x faster obvious-sink-pathology-taken 151.7870+-1.1083 151.6200+-1.6764 obvious-sink-pathology 142.5675+-0.8539 142.3259+-1.0376 obviously-elidable-new-object 41.2596+-0.2919 41.2030+-0.2047 plus-boolean-arith 3.2520+-0.0190 ? 3.2595+-0.0262 ? plus-boolean-double 4.1027+-0.0295 ? 4.1306+-0.0473 ? plus-boolean 3.1228+-0.0454 3.1160+-0.0177 poly-chain-access-different-prototypes-simple 4.2731+-0.0211 ? 4.2766+-0.0183 ? poly-chain-access-different-prototypes 3.3501+-0.0398 ? 3.3523+-0.0285 ? poly-chain-access-simpler 4.2382+-0.0424 ? 4.2453+-0.0337 ? poly-chain-access 3.3725+-0.0345 3.3615+-0.0158 poly-stricteq 83.3443+-0.3664 ! 84.1060+-0.1634 ! definitely 1.0091x slower polymorphic-array-call 1.8799+-0.1427 1.8236+-0.0660 might be 1.0309x faster polymorphic-get-by-id 4.0509+-0.0786 ? 4.0605+-0.2026 ? polymorphic-put-by-id 39.2329+-1.4733 ? 40.8713+-1.8717 ? might be 1.0418x slower polymorphic-structure 19.5623+-0.0641 ? 19.5924+-0.2310 ? polyvariant-monomorphic-get-by-id 10.9385+-0.0181 10.9276+-0.0298 proto-getter-access 11.7424+-0.1295 ? 11.7708+-0.2814 ? put-by-id-replace-and-transition 11.6860+-0.0568 ? 11.6990+-0.1435 ? put-by-id-slightly-polymorphic 3.7568+-0.1086 3.6465+-0.0145 might be 1.0302x faster put-by-id 14.6830+-0.3868 14.4934+-0.0747 might be 1.0131x faster put-by-val-direct 0.5404+-0.0182 0.5387+-0.0075 put-by-val-large-index-blank-indexing-type 6.9388+-0.2142 6.8062+-0.1478 might be 1.0195x faster put-by-val-machine-int 3.2948+-0.0924 3.2623+-0.0409 rare-osr-exit-on-local 19.7411+-0.2237 ^ 19.0790+-0.1641 ^ definitely 1.0347x faster register-pressure-from-osr 28.1209+-0.0970 ^ 27.7845+-0.0265 ^ definitely 1.0121x faster repeat-multi-get-by-offset 32.1580+-0.0559 ^ 31.4649+-0.0682 ^ definitely 1.0220x faster setter-prototype 13.1719+-0.0638 ? 13.6416+-0.6023 ? might be 1.0357x slower setter 6.8587+-0.0148 ! 7.0769+-0.0356 ! definitely 1.0318x slower simple-activation-demo 32.9895+-0.1577 ? 32.9927+-0.0450 ? simple-getter-access 15.4791+-0.3484 15.2904+-0.3360 might be 1.0123x faster simple-poly-call-nested 10.2493+-0.1542 10.1699+-0.0467 simple-poly-call 1.7946+-0.0303 1.7848+-0.0324 sin-boolean 24.3118+-0.3637 ? 24.3903+-0.4249 ? singleton-scope 83.1614+-0.1904 83.1191+-0.0863 sink-function 13.6433+-0.4021 13.2854+-0.6508 might be 1.0269x faster sink-huge-activation 22.6903+-0.6360 ? 22.9220+-0.5473 ? might be 1.0102x slower sinkable-new-object-dag 84.9805+-0.7027 84.3514+-0.6247 sinkable-new-object-taken 65.6322+-3.1689 ? 65.8191+-3.0931 ? sinkable-new-object 45.7503+-0.5675 ? 46.0223+-0.3013 ? slow-array-profile-convergence 3.7451+-0.1139 ? 3.8437+-0.0714 ? might be 1.0263x slower slow-convergence 3.6045+-0.0368 3.5973+-0.0449 slow-ternaries 24.2060+-0.2163 24.0245+-0.2353 sorting-benchmark 24.6932+-0.5514 24.6858+-0.4376 sparse-conditional 1.5698+-0.0340 1.5675+-0.0301 splice-to-remove 19.8423+-0.3218 ? 19.9764+-0.5908 ? string-char-code-at 20.9876+-0.2843 ? 21.1620+-0.1656 ? string-concat-object 2.7364+-0.0655 ? 2.7422+-0.0315 ? string-concat-pair-object 2.6460+-0.0506 ? 2.6642+-0.0514 ? string-concat-pair-simple 13.5157+-0.2640 ? 13.7063+-0.1159 ? might be 1.0141x slower string-concat-simple 14.0951+-0.2387 ? 14.2005+-0.1988 ? string-cons-repeat 9.2513+-0.0515 ? 9.4098+-0.1888 ? might be 1.0171x slower string-cons-tower 9.6667+-0.2086 9.5395+-0.0810 might be 1.0133x faster string-equality 23.6063+-0.2168 23.5155+-0.0265 string-get-by-val-big-char 9.0806+-0.0862 ? 9.1562+-0.0958 ? string-get-by-val-out-of-bounds-insane 4.8190+-0.0441 ? 5.0474+-0.6344 ? might be 1.0474x slower string-get-by-val-out-of-bounds 6.8684+-0.0265 ^ 6.6848+-0.0538 ^ definitely 1.0275x faster string-get-by-val 4.3996+-0.0316 ^ 4.2893+-0.0293 ^ definitely 1.0257x faster string-hash 2.6992+-0.0704 ? 2.7437+-0.1147 ? might be 1.0165x slower string-long-ident-equality 19.6039+-0.2716 19.4805+-0.1779 string-out-of-bounds 19.0359+-0.1593 ? 19.0513+-0.0943 ? string-repeat-arith 43.4468+-0.5989 42.8693+-0.7905 might be 1.0135x faster string-sub 82.3200+-0.2182 ^ 81.1168+-0.1957 ^ definitely 1.0148x faster string-test 3.7943+-0.0348 3.7915+-0.0380 string-var-equality 46.2826+-0.3475 ? 46.5564+-0.1709 ? structure-hoist-over-transitions 3.2639+-0.0683 3.2330+-0.0567 substring-concat-weird 53.2482+-0.6092 52.7653+-0.1292 substring-concat 57.7355+-1.1844 ? 60.3466+-7.2989 ? might be 1.0452x slower substring 63.4055+-0.9276 62.6812+-0.2170 might be 1.0116x faster switch-char-constant 3.4739+-0.0413 ? 3.4799+-0.0438 ? switch-char 7.8057+-0.0242 7.7732+-0.2004 switch-constant 11.2731+-0.6442 10.7506+-0.8877 might be 1.0486x faster switch-string-basic-big-var 24.4424+-0.4139 ? 24.5066+-0.4056 ? switch-string-basic-big 23.5321+-0.2996 22.9768+-0.3396 might be 1.0242x faster switch-string-basic-var 19.7283+-0.0995 ? 19.8987+-0.0945 ? switch-string-basic 19.3378+-0.2378 18.8169+-0.3269 might be 1.0277x faster switch-string-big-length-tower-var 26.5957+-0.0297 26.5598+-0.0874 switch-string-length-tower-var 20.1005+-0.1995 20.0606+-0.1977 switch-string-length-tower 17.3988+-0.1986 17.2304+-0.0791 switch-string-short 17.1941+-0.0667 ? 17.2528+-0.1996 ? switch 15.3530+-0.2367 ^ 14.0450+-0.1074 ^ definitely 1.0931x faster tear-off-arguments-simple 4.1361+-0.0805 4.0854+-0.0461 might be 1.0124x faster tear-off-arguments 5.4071+-0.0441 ? 5.4895+-0.1201 ? might be 1.0152x slower temporal-structure 15.8851+-0.0627 15.8675+-0.0728 to-int32-boolean 18.9233+-0.1154 18.6267+-0.1996 might be 1.0159x faster try-catch-get-by-val-cloned-arguments 18.1443+-0.3468 17.8828+-0.3005 might be 1.0146x faster try-catch-get-by-val-direct-arguments 7.7983+-0.0713 7.6645+-0.0682 might be 1.0175x faster try-catch-get-by-val-scoped-arguments 8.9816+-0.0585 8.9486+-0.0641 typed-array-get-set-by-val-profiling 39.8994+-0.6285 ? 40.2024+-0.5922 ? undefined-property-access 458.2072+-0.7950 457.8249+-0.5490 undefined-test 3.9502+-0.0373 3.9157+-0.0399 unprofiled-licm 28.9218+-0.0516 28.8149+-0.2147 varargs-call 19.7487+-0.1390 ^ 19.4434+-0.1203 ^ definitely 1.0157x faster varargs-construct-inline 33.9153+-0.1252 33.7347+-0.2229 varargs-construct 28.9379+-0.0709 28.9348+-0.0644 varargs-inline 11.9621+-0.0572 ? 11.9979+-0.0646 ? varargs-strict-mode 13.0958+-0.2104 ? 13.1982+-0.0330 ? varargs 13.1533+-0.2389 ? 13.1689+-0.1161 ? weird-inlining-const-prop 2.8992+-0.0306 ? 2.9430+-0.0948 ? might be 1.0151x slower <geometric> 11.1467+-0.0095 11.1272+-0.0175 might be 1.0018x faster Baseline Cleanup AsmBench: bigfib.cpp 662.2800+-1.9151 ? 664.0327+-2.9713 ? cray.c 582.6438+-1.7950 ? 585.1523+-0.9829 ? dry.c 665.7187+-16.7209 ? 669.6738+-13.0361 ? FloatMM.c 981.7186+-0.8931 ? 982.5483+-0.9883 ? gcc-loops.cpp 5398.6945+-19.9279 5386.8262+-20.6273 n-body.c 1338.3314+-1.5712 1337.5039+-1.1509 Quicksort.c 571.0984+-7.3592 569.8118+-2.2348 stepanov_container.cpp 5053.1910+-17.3673 5047.7298+-8.0727 Towers.c 341.1200+-3.4657 340.9508+-2.2335 <geometric> 1067.0364+-2.8968 ? 1067.8936+-2.6431 ? might be 1.0008x slower Baseline Cleanup CompressionBench: huffman 77.5303+-2.4317 76.5352+-1.7042 might be 1.0130x faster arithmetic-simple 451.1222+-0.6117 450.9536+-1.2013 arithmetic-precise 366.6309+-1.7393 ? 367.1316+-0.7801 ? arithmetic-complex-precise 364.5636+-3.0375 ? 366.0035+-3.4183 ? arithmetic-precise-order-0 464.0109+-0.5699 ? 465.7971+-1.9316 ? arithmetic-precise-order-1 436.7401+-2.2413 ? 438.2528+-1.2560 ? arithmetic-precise-order-2 501.5858+-3.3546 ? 503.6953+-2.3826 ? arithmetic-simple-order-1 531.2106+-1.8268 ? 533.1872+-0.9793 ? arithmetic-simple-order-2 598.7681+-2.4969 ? 602.1770+-2.9760 ? lz-string 400.7597+-2.9111 ? 409.3882+-7.3152 ? might be 1.0215x slower <geometric> 378.6246+-1.2321 ? 379.9261+-1.4980 ? might be 1.0034x slower Baseline Cleanup Geomean of preferred means: <scaled-result> 76.6604+-0.1408 76.6034+-0.1108 might be 1.0007x faster
Basile Clement
Comment 5
2015-07-13 13:54:52 PDT
Created
attachment 256720
[details]
Patch
WebKit Commit Bot
Comment 6
2015-07-13 13:58:00 PDT
Attachment 256720
[details]
did not pass style-queue: ERROR: Source/JavaScriptCore/jit/GPRInfo.h:429: One space before end of line comments [whitespace/comments] [5] Total errors found: 1 in 21 files If any of these errors are false positives, please file a bug against check-webkit-style.
Basile Clement
Comment 7
2015-07-13 13:58:58 PDT
(In reply to
comment #6
)
>
Attachment 256720
[details]
did not pass style-queue: > > > ERROR: Source/JavaScriptCore/jit/GPRInfo.h:429: One space before end of > line comments [whitespace/comments] [5] > Total errors found: 1 in 21 files > > > If any of these errors are false positives, please file a bug against > check-webkit-style.
Fixed locally.
Michael Saboff
Comment 8
2015-07-13 15:43:09 PDT
Comment on
attachment 256720
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=256720&action=review
r=me with a couple of changes.
> Source/JavaScriptCore/dfg/DFGJITCompiler.cpp:408 > + if (GPRInfo::returnValueGPR != GPRInfo::argumentGPR0)
A register to register move() in the macro assembler already does a src != dest check so this is redundant.
> Source/JavaScriptCore/jit/FPRInfo.h:280 > + static const FPRReg fpRegT5 = MIPSRegisters::f10; > static const FPRReg fpRegT5 = MIPSRegisters::f18;
You have fpRegT5 listed twice. I think one of these should be fpRegT6.
> Source/JavaScriptCore/jit/GPRInfo.h:406 > + static const GPRReg regC0 = X86Registers::ebx; > + static const GPRReg regC1 = X86Registers::r12; > + static const GPRReg regC2 = X86Registers::r13;
What about changing the names to regCS<n? or even regCalleeSave<n>?
> Source/JavaScriptCore/jit/JIT.cpp:594 > + if (returnValueGPR != GPRInfo::argumentGPR0)
Like above, this not needed.
> Source/JavaScriptCore/llint/LowLevelInterpreter.asm:33 > +# Currently this is just 32-bit so "i" and "p" are interchangeable
Change this line to 'For 32-bit, "i" and "p" are interchangeable'
> Source/JavaScriptCore/llint/LowLevelInterpreter.asm:132 > +
Delete this blank line
> Source/JavaScriptCore/llint/LowLevelInterpreter.asm:867 > + const address = a1 > + const zeroValue = a2
Let's add "const vm = a0" for readability.
> Source/JavaScriptCore/llint/LowLevelInterpreter.asm:934 > if X86_64 > - leap (label - _relativePCBase)[t1], t0 > - move index, t2 > - storep t0, [t4, t2, 8] > + leap (label - _relativePCBase)[t1], t3 > + move index, t4 > + storep t3, [a0, t4, 8] > elsif X86_64_WIN > - leap (label - _relativePCBase)[t1], t0 > + leap (label - _relativePCBase)[t1], t3 > move index, t4 > - storep t0, [t2, t4, 8] > + storep t3, [a0, t4, 8]
These two cases are now the same and can be merged together.
Basile Clement
Comment 9
2015-07-13 15:58:09 PDT
(In reply to
comment #8
)
> Comment on
attachment 256720
[details]
> Patch > > View in context: >
https://bugs.webkit.org/attachment.cgi?id=256720&action=review
> > r=me with a couple of changes.
Thanks!
> > > Source/JavaScriptCore/dfg/DFGJITCompiler.cpp:408 > > + if (GPRInfo::returnValueGPR != GPRInfo::argumentGPR0) > > A register to register move() in the macro assembler already does a src != > dest check so this is redundant.
Removed.
> > > Source/JavaScriptCore/jit/FPRInfo.h:280 > > + static const FPRReg fpRegT5 = MIPSRegisters::f10; > > static const FPRReg fpRegT5 = MIPSRegisters::f18; > > You have fpRegT5 listed twice. I think one of these should be fpRegT6.
Indeed, good catch.
> > > Source/JavaScriptCore/jit/GPRInfo.h:406 > > + static const GPRReg regC0 = X86Registers::ebx; > > + static const GPRReg regC1 = X86Registers::r12; > > + static const GPRReg regC2 = X86Registers::r13; > > What about changing the names to regCS<n? or even regCalleeSave<n>?
Changed those to regCS<n>.
> > > Source/JavaScriptCore/jit/JIT.cpp:594 > > + if (returnValueGPR != GPRInfo::argumentGPR0) > > Like above, this not needed.
Removed.
> > > Source/JavaScriptCore/llint/LowLevelInterpreter.asm:33 > > +# Currently this is just 32-bit so "i" and "p" are interchangeable > > Change this line to 'For 32-bit, "i" and "p" are interchangeable'
Done.
> > > Source/JavaScriptCore/llint/LowLevelInterpreter.asm:132 > > + > > Delete this blank line
Done.
> > > Source/JavaScriptCore/llint/LowLevelInterpreter.asm:867 > > + const address = a1 > > + const zeroValue = a2 > > Let's add "const vm = a0" for readability.
Ditto.
> > > Source/JavaScriptCore/llint/LowLevelInterpreter.asm:934 > > if X86_64 > > - leap (label - _relativePCBase)[t1], t0 > > - move index, t2 > > - storep t0, [t4, t2, 8] > > + leap (label - _relativePCBase)[t1], t3 > > + move index, t4 > > + storep t3, [a0, t4, 8] > > elsif X86_64_WIN > > - leap (label - _relativePCBase)[t1], t0 > > + leap (label - _relativePCBase)[t1], t3 > > move index, t4 > > - storep t0, [t2, t4, 8] > > + storep t3, [a0, t4, 8] > > These two cases are now the same and can be merged together.
Indeed, merged.
Basile Clement
Comment 10
2015-07-13 16:02:36 PDT
Committed
r186792
<
https://trac.webkit.org/changeset/186792
>.
Csaba Osztrogonác
Comment 11
2015-09-14 10:56:42 PDT
Comment on
attachment 256720
[details]
Patch Cleared review? from
attachment 256720
[details]
so that this bug does not appear in
http://webkit.org/pending-review
. If you would like this patch reviewed, please attach it to a new bug (or re-open this bug before marking it for review again).
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug