RESOLVED FIXED 154997
[JSC] Add support for MADD, MSUB and MNEG to Air
https://bugs.webkit.org/show_bug.cgi?id=154997
Summary [JSC] Add support for MADD, MSUB and MNEG to Air
Benjamin Poulain
Reported 2016-03-03 17:18:17 PST
[JSC] Add support for MADD, MSUB and MNEG to Air
Attachments
Patch (25.56 KB, patch)
2016-03-03 17:24 PST, Benjamin Poulain
no flags
Patch (19.55 KB, patch)
2016-03-03 18:36 PST, Benjamin Poulain
no flags
Benjamin Poulain
Comment 1 2016-03-03 17:24:19 PST
Benjamin Poulain
Comment 2 2016-03-03 18:36:30 PST
WebKit Commit Bot
Comment 3 2016-03-03 18:37:48 PST
Attachment 272814 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/b3/testb3.cpp:884: One line control clauses should not use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/b3/testb3.cpp:908: One line control clauses should not use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/b3/testb3.cpp:935: One line control clauses should not use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/b3/testb3.cpp:962: One line control clauses should not use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/b3/testb3.cpp:986: One line control clauses should not use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/b3/testb3.cpp:1010: One line control clauses should not use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/b3/testb3.cpp:1037: One line control clauses should not use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/b3/testb3.cpp:1064: One line control clauses should not use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/b3/testb3.cpp:1087: One line control clauses should not use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/b3/testb3.cpp:1111: One line control clauses should not use braces. [whitespace/braces] [4] Total errors found: 10 in 5 files If any of these errors are false positives, please file a bug against check-webkit-style.
Benjamin Poulain
Comment 4 2016-03-03 18:55:19 PST
Not super reliable numbers due to the current state of the builds. This improves ASM and Octane. A tiny bit Kraken too but nothing crazy. SunSpider: 3d-cube 10.4408+-0.0946 10.4405+-0.0949 3d-morph 8.3481+-0.0461 8.3068+-0.0546 3d-raytrace 9.4128+-0.2644 ? 9.6564+-0.3088 ? might be 1.0259x slower access-binary-trees 4.2118+-0.1346 ? 4.3175+-0.0511 ? might be 1.0251x slower access-fannkuch 11.3340+-0.5558 11.3126+-0.4163 access-nbody 4.7576+-0.0200 4.7323+-0.0133 access-nsieve 3.3850+-0.0479 ? 3.3925+-0.0565 ? bitops-3bit-bits-in-byte 1.7078+-0.0510 ? 1.7245+-0.0479 ? bitops-bits-in-byte 4.1624+-0.0280 4.1605+-0.0153 bitops-bitwise-and 3.2124+-0.0311 ? 3.2224+-0.0154 ? bitops-nsieve-bits 5.9200+-0.0642 5.9000+-0.0222 controlflow-recursive 3.6354+-0.1994 3.6121+-0.1798 crypto-aes 6.4368+-0.0379 ? 6.4512+-0.0385 ? crypto-md5 4.1322+-0.1312 ? 4.1443+-0.1267 ? crypto-sha1 3.7396+-0.0262 ? 3.7901+-0.0701 ? might be 1.0135x slower date-format-tofte 11.2921+-0.0848 11.2268+-0.0731 date-format-xparb 7.3162+-0.0413 ^ 7.2285+-0.0207 ^ definitely 1.0121x faster math-cordic 5.3747+-0.0472 ? 5.4332+-0.0771 ? might be 1.0109x slower math-partial-sums 11.7586+-0.1534 11.6844+-0.0496 math-spectral-norm 3.3130+-0.2035 3.2706+-0.1688 might be 1.0130x faster regexp-dna 9.6994+-0.0305 9.6943+-0.0306 string-base64 6.5375+-0.0662 6.5275+-0.0373 string-fasta 9.7480+-0.1079 9.6107+-0.2192 might be 1.0143x faster string-tagcloud 10.8157+-0.0287 ? 10.8560+-0.0339 ? string-unpack-code 23.4357+-0.0547 ? 23.4746+-0.1199 ? string-validate-input 6.4891+-0.1197 ? 6.5610+-0.1032 ? might be 1.0111x slower <arithmetic> 7.3314+-0.0298 ? 7.3358+-0.0266 ? might be 1.0006x slower Conf#1 Conf#2 Octane: encrypt 0.19641+-0.00069 ^ 0.19254+-0.00067 ^ definitely 1.0201x faster decrypt 3.71076+-0.00462 ^ 3.66854+-0.01057 ^ definitely 1.0115x faster deltablue x2 0.17559+-0.00532 ? 0.17764+-0.00509 ? might be 1.0117x slower earley 0.50439+-0.04828 0.44576+-0.01730 might be 1.1315x faster boyer 7.95720+-0.48300 ? 8.32487+-0.47189 ? might be 1.0462x slower navier-stokes x2 7.16412+-0.00381 ? 7.17401+-0.00893 ? raytrace x2 1.27977+-0.00521 ? 1.29354+-0.01551 ? might be 1.0108x slower richards x2 0.11517+-0.00041 0.11413+-0.00130 splay x2 0.75938+-0.02023 0.74177+-0.01966 might be 1.0237x faster regexp x2 34.84198+-0.61834 ? 34.93315+-0.38528 ? pdfjs x2 57.51264+-0.59815 ? 57.83148+-0.63925 ? mandreel x2 69.63957+-0.51244 ? 69.93655+-0.65592 ? gbemu x2 49.46766+-4.72174 45.33480+-2.40918 might be 1.0912x faster closure 0.64175+-0.00156 ? 0.64588+-0.00291 ? jquery 9.54791+-0.05901 ? 9.54962+-0.01808 ? box2d x2 15.92587+-0.06765 15.85957+-0.06363 zlib x2 664.98595+-31.67819 ? 684.82749+-18.07520 ? might be 1.0298x slower typescript x2 1159.21570+-15.50378 1146.40352+-10.46264 might be 1.0112x faster <geometric> 8.17497+-0.04696 8.12081+-0.03764 might be 1.0067x faster Conf#1 Conf#2 Kraken: ai-astar 155.686+-1.458 154.430+-1.007 audio-beat-detection 76.497+-4.232 74.985+-4.459 might be 1.0202x faster audio-dft 136.728+-2.857 ? 137.644+-3.065 ? audio-fft 41.716+-0.025 ? 41.815+-0.143 ? audio-oscillator 54.017+-0.111 ^ 52.422+-0.486 ^ definitely 1.0304x faster imaging-darkroom 69.001+-0.045 ? 69.005+-0.035 ? imaging-desaturate 77.963+-0.236 ? 78.093+-0.414 ? imaging-gaussian-blur 97.881+-0.896 ? 97.981+-1.507 ? json-parse-financial 47.426+-0.294 ^ 47.051+-0.050 ^ definitely 1.0080x faster json-stringify-tinderbox 27.198+-0.095 26.989+-0.119 stanford-crypto-aes 58.740+-0.295 ? 58.876+-0.243 ? stanford-crypto-ccm 46.608+-0.680 ? 46.750+-0.807 ? stanford-crypto-pbkdf2 140.569+-0.342 ! 141.566+-0.562 ! definitely 1.0071x slower stanford-crypto-sha256-iterative 51.079+-0.098 ? 51.235+-0.075 ? <arithmetic> 77.222+-0.334 77.060+-0.474 might be 1.0021x faster Conf#1 Conf#2 AsmBench: bigfib.cpp 706.2462+-26.0387 ? 715.0826+-21.9142 ? might be 1.0125x slower cray.c 556.7903+-2.3568 ? 558.9798+-3.5637 ? dry.c 472.0462+-1.6893 471.3899+-2.2699 FloatMM.c 798.1385+-5.4036 797.6154+-5.2207 gcc-loops.cpp 4652.0685+-2.7353 ? 4652.9970+-3.1680 ? n-body.c 1757.7715+-1.2894 ? 1758.2687+-3.8823 ? Quicksort.c 558.4019+-1.7840 557.6919+-2.7885 stepanov_container.cpp 5574.7046+-11.6736 ? 5592.5347+-11.9302 ? Towers.c 276.7117+-0.5157 ? 277.0325+-0.7472 ? <geometric> 1004.4341+-4.7129 ? 1006.5074+-3.8598 ? might be 1.0021x slower Conf#1 Conf#2 Geomean of preferred means: <scaled-result> 46.4322+-0.1183 46.3615+-0.0945 might be 1.0015x faster
Filip Pizlo
Comment 5 2016-03-03 19:04:15 PST
Comment on attachment 272814 [details] Patch Do the mul-add operations correctly round the intermediate result? We cannot land optimizations that result in a change in behavior when you tier up into the FTL. We cannot do this even if we mistakenly had such behavior in llvm.
Filip Pizlo
Comment 6 2016-03-03 19:05:50 PST
Oh never mind, these are int operations. I'm fine with this since I don't think the rounding issue arises for ints.
WebKit Commit Bot
Comment 7 2016-03-03 20:40:08 PST
Comment on attachment 272814 [details] Patch Clearing flags on attachment: 272814 Committed r197546: <http://trac.webkit.org/changeset/197546>
WebKit Commit Bot
Comment 8 2016-03-03 20:40:12 PST
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.