RESOLVED FIXED 72311
Inline caches that refer to otherwise dead objects should be cleared
https://bugs.webkit.org/show_bug.cgi?id=72311
Summary Inline caches that refer to otherwise dead objects should be cleared
Filip Pizlo
Reported 2011-11-14 14:26:40 PST
Currently if we perform inline cache optimization, this creates strong references from the CodeBlock to whatever objects the inline cache tests (structures, functions, prototypes, etc). This means that even if those objects are otherwise dead but the CodeBlock is alive, the objects are kept alive, possibly much longer than they otherwise would be. For now, this is an umbrella bug, since this will require a fair bit of work.
Attachments
the patch (41.96 KB, patch)
2011-11-17 20:01 PST, Filip Pizlo
webkit-ews: commit-queue-
page.js (1.11 KB, text/plain)
2011-11-17 21:22 PST, Filip Pizlo
no flags
page.html (222 bytes, text/plain)
2011-11-17 21:23 PST, Filip Pizlo
no flags
the patch (47.23 KB, patch)
2011-11-17 23:17 PST, Filip Pizlo
no flags
the patch (46.74 KB, patch)
2011-11-17 23:37 PST, Filip Pizlo
no flags
the patch (47.04 KB, patch)
2011-11-17 23:40 PST, Filip Pizlo
no flags
the patch (48.74 KB, patch)
2011-11-18 01:14 PST, Filip Pizlo
ggaren: review+
the patch (48.81 KB, patch)
2011-11-20 19:20 PST, Filip Pizlo
no flags
build fix (2.00 KB, patch)
2011-11-21 00:26 PST, Filip Pizlo
no flags
Andy Wingo
Comment 1 2011-11-15 02:15:34 PST
The simple thing to do would be to clear inline caches on a full GC. Removing collected entries from IC entries would be better of course, but more complicated.
Filip Pizlo
Comment 2 2011-11-15 02:24:39 PST
(In reply to comment #1) > The simple thing to do would be to clear inline caches on a full GC. Removing collected entries from IC entries would be better of course, but more complicated. That would be the simple thing, but see https://bugs.webkit.org/show_bug.cgi?id=72312. The DFG will "inline" inline caches. That is, if the old JIT had built up an IC for a monomorphic heap read, then the DFG will simplify the code to: CheckStructure(OpInfo(the structure), base) GetByOffset(OpInfo(some offset), base) This leads to a number of profitable optimizations: 1) The slow case of the IC is omitted, leading to code size reduction. This is by itself a large win. 2) Multiple CheckStructure's on the same base with no interleaved side-effecting ops can be CSE'd, so that only the first one remains. 3) Information gleaned from a CheckStructure can be forward-propagated by the CFA, which can eliminate some type checks (say that a bit later the DFG emitted code that required that 'base' is a JSFinalObject, and the structure corresponds to a strict subset of JSFinalObjects - then the JSFinalObject check can be elided). 4) The GetByOffset is now known to be a pure operation, so can be subject to CSE, and will not interfere with CSE of other operations. But this also means that we can't just take the approach of blowing away inline caches on full GC, since this is no longer an inline cache, in the traditional sense - it's an intrinsic part of the code. So we have to have a way of triggering OSR points on those "inlined" inline caches that are no longer valid if the structure in question is dead. That's what I'm working on now.
Andy Wingo
Comment 3 2011-11-15 02:51:30 PST
I see what you mean; I didn't understand what you had meant by "inline cache optimization". Thanks for the explanation!
Filip Pizlo
Comment 4 2011-11-17 20:01:08 PST
Created attachment 115728 [details] the patch This combines the patch on https://bugs.webkit.org/show_bug.cgi?id=72312 with full inline cache clearing support. So far it looks like it works, and performance looks mostly fine, except something strange is happening in V8-regexp. [pizlo@nitroflex bencher] ./bencher TipOfTree:/Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc WeakCaches:/Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc --remote oldmac,bigmac Packaging VM builds for remote hosts... Sending VM builds to oldmac... Running on oldmac... 376/376 Generating benchmark report at TipOfTree_WeakCaches_SunSpiderV8Kraken_20111117_1949_benchReport.txt Benchmark report for SunSpider, V8, and Kraken on oldmac.local (MacPro4,1). VMs tested: "TipOfTree" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc (r100674) "WeakCaches" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r100674) 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 WeakCaches SunSpider: 3d-cube 9.0475+-0.0387 8.9664+-0.0477 3d-morph 10.4450+-0.1721 ^ 10.1015+-0.0355 ^ definitely 1.0340x faster 3d-raytrace 9.2003+-0.0617 ? 9.2515+-0.0654 ? access-binary-trees 1.9097+-0.0069 ? 1.9349+-0.0326 ? might be 1.0132x slower access-fannkuch 9.1217+-0.0200 ^ 9.0871+-0.0084 ^ definitely 1.0038x faster access-nbody 5.0345+-0.0044 ? 5.0679+-0.0381 ? access-nsieve 3.7133+-0.0101 3.7111+-0.0060 bitops-3bit-bits-in-byte 1.4966+-0.0164 1.4959+-0.0184 bitops-bits-in-byte 5.9275+-0.0180 ? 5.9298+-0.0159 ? bitops-bitwise-and 3.9731+-0.0059 ? 3.9737+-0.0080 ? bitops-nsieve-bits 6.7840+-0.0316 ? 6.8390+-0.0420 ? controlflow-recursive 2.7644+-0.0177 ? 2.7921+-0.0369 ? might be 1.0100x slower crypto-aes 8.8837+-0.3084 8.6743+-0.0546 might be 1.0241x faster crypto-md5 3.0347+-0.0590 2.9922+-0.0132 might be 1.0142x faster crypto-sha1 2.6152+-0.0334 ? 2.6323+-0.0314 ? date-format-tofte 12.9762+-0.1771 ? 13.1488+-0.0922 ? might be 1.0133x slower date-format-xparb 13.8699+-0.1296 ! 14.2420+-0.1412 ! definitely 1.0268x slower math-cordic 8.6768+-0.0372 ^ 8.6144+-0.0209 ^ definitely 1.0073x faster math-partial-sums 12.6416+-0.0401 12.6347+-0.0488 math-spectral-norm 3.1685+-0.0557 3.1329+-0.0089 might be 1.0114x faster regexp-dna 15.6974+-0.0541 ? 15.7449+-0.0606 ? string-base64 4.7532+-0.0370 ? 4.7739+-0.0392 ? string-fasta 8.9202+-0.0318 ? 9.0204+-0.0890 ? might be 1.0112x slower string-tagcloud 15.9672+-0.1008 15.7997+-0.1061 might be 1.0106x faster string-unpack-code 27.4349+-0.1522 ? 27.4398+-0.0469 ? string-validate-input 6.9217+-0.1974 6.7428+-0.0794 might be 1.0265x faster <arithmetic> * 8.2684+-0.0264 8.2594+-0.0244 might be 1.0011x faster <geometric> 6.5486+-0.0233 6.5411+-0.0212 might be 1.0011x faster <harmonic> 5.0696+-0.0217 ? 5.0700+-0.0222 ? might be 1.0001x slower TipOfTree WeakCaches V8: crypto 93.3679+-0.3252 ? 93.7752+-0.3924 ? deltablue 205.0419+-0.7970 ! 207.4518+-1.3348 ! definitely 1.0118x slower earley-boyer 127.6397+-1.6513 125.9481+-1.5823 might be 1.0134x faster raytrace 75.9334+-0.2453 ? 76.5853+-0.5557 ? regexp 147.4395+-0.4611 ! 148.2696+-0.2811 ! definitely 1.0056x slower richards 166.2447+-0.2814 166.0438+-0.3616 splay 107.5413+-1.4244 106.9378+-0.7132 <arithmetic> 131.8869+-0.4721 ? 132.1445+-0.3777 ? might be 1.0020x slower <geometric> * 125.4485+-0.5032 ? 125.6287+-0.3867 ? might be 1.0014x slower <harmonic> 119.2648+-0.5089 ? 119.4452+-0.4084 ? might be 1.0015x slower TipOfTree WeakCaches Kraken: ai-astar 895.4246+-0.9915 895.1654+-0.4022 audio-beat-detection 248.5174+-0.3483 ! 250.5549+-0.8042 ! definitely 1.0082x slower audio-dft 314.1673+-2.4462 ? 314.1825+-2.4322 ? audio-fft 162.3186+-0.8125 ? 162.3518+-0.7823 ? audio-oscillator 355.8777+-3.1971 ^ 344.9823+-4.3299 ^ definitely 1.0316x faster imaging-darkroom 404.1052+-5.4632 ? 405.4850+-6.1308 ? imaging-desaturate 291.2879+-0.1209 291.1845+-0.0613 imaging-gaussian-blur 750.8557+-0.3035 ? 752.8046+-3.3790 ? json-parse-financial 89.8248+-0.6193 89.5875+-0.1899 json-stringify-tinderbox 104.5581+-0.2745 ? 105.1705+-0.5748 ? stanford-crypto-aes 143.2029+-1.6641 143.0827+-0.7456 stanford-crypto-ccm 137.4856+-0.5693 ! 140.4658+-1.0226 ! definitely 1.0217x slower stanford-crypto-pbkdf2 280.5099+-1.9514 ? 283.5715+-2.2643 ? might be 1.0109x slower stanford-crypto-sha256-iterative 112.9657+-0.2543 112.9229+-0.2411 <arithmetic> * 306.5072+-0.4968 ? 306.5366+-0.6874 ? might be 1.0001x slower <geometric> 239.8899+-0.4148 ? 240.1797+-0.5115 ? might be 1.0012x slower <harmonic> 194.6864+-0.3307 ? 195.1378+-0.3639 ? might be 1.0023x slower TipOfTree WeakCaches All benchmarks: <arithmetic> 115.5168+-0.1711 ? 115.5589+-0.2314 ? might be 1.0004x slower <geometric> 29.7140+-0.0748 29.7123+-0.0711 might be 1.0001x faster <harmonic> 8.9367+-0.0377 ? 8.9378+-0.0384 ? might be 1.0001x slower TipOfTree WeakCaches Geomean of preferred means: <scaled-result> 68.2507+-0.1561 ? 68.2608+-0.1430 ? might be 1.0001x slower Sending VM builds to bigmac... Running on bigmac... 376/376 Generating benchmark report at TipOfTree_WeakCaches_SunSpiderV8Kraken_20111117_1951_benchReport.txt Benchmark report for SunSpider, V8, and Kraken on bigmac.local (MacPro5,1). VMs tested: "TipOfTree" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc (r100674) "WeakCaches" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r100674) 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 WeakCaches SunSpider: 3d-cube 7.5728+-0.1215 7.4300+-0.0254 might be 1.0192x faster 3d-morph 8.4423+-0.0879 ? 8.4828+-0.1291 ? 3d-raytrace 7.6856+-0.0513 ? 7.7025+-0.0624 ? access-binary-trees 1.5943+-0.0069 ? 1.5977+-0.0082 ? access-fannkuch 7.5383+-0.0104 ^ 7.5180+-0.0082 ^ definitely 1.0027x faster access-nbody 4.1663+-0.0092 ! 4.1817+-0.0061 ! definitely 1.0037x slower access-nsieve 3.1429+-0.0427 3.1428+-0.0375 bitops-3bit-bits-in-byte 1.2399+-0.0138 1.2390+-0.0095 bitops-bits-in-byte 4.9107+-0.0055 4.8973+-0.0198 bitops-bitwise-and 3.2831+-0.0045 ? 3.2890+-0.0055 ? bitops-nsieve-bits 5.6333+-0.0338 ? 5.6556+-0.0387 ? controlflow-recursive 2.2875+-0.0123 ? 2.2913+-0.0126 ? crypto-aes 7.1496+-0.0385 ? 7.3631+-0.2183 ? might be 1.0299x slower crypto-md5 2.4973+-0.0094 2.4956+-0.0086 crypto-sha1 2.1853+-0.0329 2.1757+-0.0174 date-format-tofte 10.6273+-0.0559 ! 10.7725+-0.0539 ! definitely 1.0137x slower date-format-xparb 11.4395+-0.2274 ? 11.4434+-0.0890 ? math-cordic 7.1588+-0.0780 ? 7.1610+-0.0499 ? math-partial-sums 10.4612+-0.0344 ? 10.4707+-0.0383 ? math-spectral-norm 2.6258+-0.0326 2.6008+-0.0081 regexp-dna 12.9697+-0.0534 ? 13.0062+-0.0585 ? string-base64 3.9142+-0.0170 ? 3.9304+-0.0123 ? string-fasta 7.3654+-0.0195 ! 7.4126+-0.0144 ! definitely 1.0064x slower string-tagcloud 13.0923+-0.0652 ^ 12.9657+-0.0327 ^ definitely 1.0098x faster string-unpack-code 22.2100+-0.1262 22.1619+-0.0837 string-validate-input 5.5449+-0.0392 ? 5.6332+-0.0621 ? might be 1.0159x slower <arithmetic> * 6.7976+-0.0218 ? 6.8085+-0.0208 ? might be 1.0016x slower <geometric> 5.4030+-0.0185 ? 5.4117+-0.0177 ? might be 1.0016x slower <harmonic> 4.1972+-0.0165 ? 4.2005+-0.0144 ? might be 1.0008x slower TipOfTree WeakCaches V8: crypto 77.3068+-0.2470 ? 78.5472+-1.0606 ? might be 1.0160x slower deltablue 169.1565+-0.5722 ? 169.9061+-0.7509 ? earley-boyer 105.8436+-1.2681 ? 106.1506+-1.8865 ? raytrace 62.5844+-0.6697 ? 63.4609+-0.5217 ? might be 1.0140x slower regexp 123.0489+-0.4275 ! 124.9241+-0.9108 ! definitely 1.0152x slower richards 138.1625+-0.3256 ? 138.3885+-0.7911 ? splay 90.0783+-0.9855 ? 90.5373+-1.2191 ? <arithmetic> 109.4544+-0.2879 ! 110.2735+-0.4132 ! definitely 1.0075x slower <geometric> * 104.1137+-0.3218 ! 104.9882+-0.4307 ! definitely 1.0084x slower <harmonic> 98.9421+-0.3618 ! 99.8732+-0.4189 ! definitely 1.0094x slower TipOfTree WeakCaches Kraken: ai-astar 817.2374+-11.1240 ? 827.1865+-0.5183 ? might be 1.0122x slower audio-beat-detection 203.9402+-0.3269 ! 206.1474+-0.6714 ! definitely 1.0108x slower audio-dft 261.1492+-2.3054 259.6474+-2.6116 audio-fft 132.7391+-0.0777 ? 132.8311+-0.1997 ? audio-oscillator 294.2755+-1.5612 ^ 283.3337+-4.9055 ^ definitely 1.0386x faster imaging-darkroom 333.9641+-4.6759 ? 334.3031+-4.9627 ? imaging-desaturate 240.7603+-0.1246 ? 240.8660+-0.3476 ? imaging-gaussian-blur 620.6148+-0.1868 ? 621.9812+-2.4208 ? json-parse-financial 73.2566+-0.4176 ! 74.1150+-0.3143 ! definitely 1.0117x slower json-stringify-tinderbox 86.3845+-0.2568 ? 86.7771+-0.2189 ? stanford-crypto-aes 117.3842+-0.6165 ? 118.7492+-0.7655 ? might be 1.0116x slower stanford-crypto-ccm 116.1933+-0.9027 ? 117.1747+-0.7135 ? stanford-crypto-pbkdf2 233.0368+-1.4568 232.9577+-0.2467 stanford-crypto-sha256-iterative 93.1566+-0.2464 93.0921+-0.3027 <arithmetic> * 258.8638+-1.0708 ? 259.2259+-0.4904 ? might be 1.0014x slower <geometric> 199.5603+-0.5626 ? 199.8244+-0.4281 ? might be 1.0013x slower <harmonic> 160.8641+-0.4246 ? 161.4155+-0.3345 ? might be 1.0034x slower TipOfTree WeakCaches All benchmarks: <arithmetic> 97.1705+-0.3044 ? 97.4063+-0.1669 ? might be 1.0024x slower <geometric> 24.5976+-0.0601 ? 24.6601+-0.0603 ? might be 1.0025x slower <harmonic> 7.3988+-0.0285 ? 7.4055+-0.0250 ? might be 1.0009x slower TipOfTree WeakCaches Geomean of preferred means: <scaled-result> 56.7948+-0.1173 ? 57.0104+-0.1230 ? might be 1.0038x slower [pizlo@nitroflex bencher]
Filip Pizlo
Comment 5 2011-11-17 20:01:49 PST
Comment on attachment 115728 [details] the patch Clearing r? because I didn't meant to set it yet. I have some more investigating to do.
WebKit Review Bot
Comment 6 2011-11-17 20:04:14 PST
Attachment 115728 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/JavaScriptCore/ChangeLog', u'Source..." exit_code: 1 Source/JavaScriptCore/bytecode/CodeBlock.h:175: The parameter name "repatchBuffer" adds no information, so it should be removed. [readability/parameter_name] [5] Total errors found: 1 in 15 files If any of these errors are false positives, please file a bug against check-webkit-style.
Early Warning System Bot
Comment 7 2011-11-17 21:07:33 PST
Filip Pizlo
Comment 8 2011-11-17 21:22:39 PST
Filip Pizlo
Comment 9 2011-11-17 21:23:39 PST
Created attachment 115734 [details] page.html
Filip Pizlo
Comment 10 2011-11-17 21:24:57 PST
I just posted a nifty test case that demos the effects of this patch. Run the demo with DumpRenderTree, from your checkout (since the page.html code looks for LayoutTests/fast/js/resources/somethingorother.js). Works best if you disable recompiling all JS functions on GCs. Without the patch, the heap just keeps growing in size. With the patch, the heap stays the same size.
Filip Pizlo
Comment 11 2011-11-17 22:24:48 PST
Well, I can't get the 0.8% V8 slow-down to repro on any of my three machines. I'm going to say that this is perf-neutral. [pizlo@nitroflex bencher] ./bencher TipOfTree:/Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc WeakCaches:/Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc --remote oldmac,bigmac --local Packaging VM builds for remote hosts... Sending VM builds to oldmac... Running on oldmac... 376/376 Generating benchmark report at TipOfTree_WeakCaches_SunSpiderV8Kraken_20111117_2215_benchReport.txt Benchmark report for SunSpider, V8, and Kraken on oldmac.local (MacPro4,1). VMs tested: "TipOfTree" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc (r100674) "WeakCaches" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r100674) 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 WeakCaches SunSpider: 3d-cube 8.8947+-0.0400 ? 8.9120+-0.0378 ? 3d-morph 10.1878+-0.0429 10.1173+-0.0649 3d-raytrace 9.1729+-0.0690 ? 9.2488+-0.0730 ? access-binary-trees 1.9086+-0.0098 ? 1.9167+-0.0063 ? access-fannkuch 9.0967+-0.0116 ? 9.1367+-0.0876 ? access-nbody 5.0368+-0.0056 ? 5.0442+-0.0069 ? access-nsieve 3.7415+-0.0431 3.7128+-0.0060 bitops-3bit-bits-in-byte 1.4913+-0.0132 ? 1.5021+-0.0167 ? bitops-bits-in-byte 5.9335+-0.0079 5.9224+-0.0140 bitops-bitwise-and 3.9795+-0.0087 3.9756+-0.0143 bitops-nsieve-bits 6.8585+-0.0446 6.8020+-0.0472 controlflow-recursive 2.7623+-0.0183 ? 2.7647+-0.0136 ? crypto-aes 8.6855+-0.0931 8.6660+-0.0754 crypto-md5 2.9867+-0.0080 ? 2.9877+-0.0124 ? crypto-sha1 2.6099+-0.0191 ? 2.6214+-0.0294 ? date-format-tofte 12.8921+-0.1053 ? 13.0743+-0.1502 ? might be 1.0141x slower date-format-xparb 14.6301+-0.1444 14.4959+-0.1759 math-cordic 8.6518+-0.0400 8.6261+-0.0172 math-partial-sums 12.6500+-0.0440 12.6309+-0.0280 math-spectral-norm 3.1304+-0.0155 3.1296+-0.0072 regexp-dna 15.7034+-0.0536 ? 15.7611+-0.0604 ? string-base64 4.7400+-0.0370 ? 4.7764+-0.0342 ? string-fasta 8.9695+-0.0621 ? 8.9759+-0.0260 ? string-tagcloud 15.8240+-0.0888 15.7925+-0.1060 string-unpack-code 27.5915+-0.1673 27.5327+-0.0761 string-validate-input 6.7825+-0.0632 ? 6.8006+-0.0838 ? <arithmetic> * 8.2658+-0.0266 ? 8.2664+-0.0292 ? might be 1.0001x slower <geometric> 6.5344+-0.0204 ? 6.5383+-0.0242 ? might be 1.0006x slower <harmonic> 5.0544+-0.0154 ? 5.0626+-0.0211 ? might be 1.0016x slower TipOfTree WeakCaches V8: crypto 93.2477+-0.3185 ? 93.7770+-0.4298 ? deltablue 204.1601+-1.0130 ! 206.3418+-0.8906 ! definitely 1.0107x slower earley-boyer 124.6204+-0.2962 ? 126.0559+-1.2859 ? might be 1.0115x slower raytrace 77.2042+-0.9266 76.3591+-0.3855 might be 1.0111x faster regexp 148.3235+-0.2242 ? 148.4812+-0.3107 ? richards 166.8579+-1.5676 ? 167.0018+-0.8833 ? splay 106.7798+-1.2362 106.2237+-0.8954 <arithmetic> 131.5991+-0.3795 ? 132.0343+-0.3261 ? might be 1.0033x slower <geometric> * 125.2613+-0.3946 ? 125.5044+-0.3336 ? might be 1.0019x slower <harmonic> 119.2370+-0.4347 ? 119.2910+-0.3460 ? might be 1.0005x slower TipOfTree WeakCaches Kraken: ai-astar 895.2102+-0.5776 ? 895.3543+-0.8576 ? audio-beat-detection 248.4783+-0.5454 ! 251.2638+-1.9747 ! definitely 1.0112x slower audio-dft 314.4556+-2.8743 313.9113+-2.8510 audio-fft 161.9779+-0.2354 ? 162.3217+-0.8390 ? audio-oscillator 355.3719+-2.8833 347.5008+-5.6341 might be 1.0227x faster imaging-darkroom 407.3586+-6.4591 406.5261+-6.6644 imaging-desaturate 291.1644+-0.0432 ? 291.1873+-0.0935 ? imaging-gaussian-blur 751.0524+-0.2825 750.7334+-0.1394 json-parse-financial 88.8708+-0.4604 ? 89.3269+-0.3017 ? json-stringify-tinderbox 104.3903+-0.2122 104.2862+-0.3965 stanford-crypto-aes 139.9116+-0.7371 ! 145.5284+-3.5541 ! definitely 1.0401x slower stanford-crypto-ccm 137.4390+-0.5954 ! 140.8775+-1.1446 ! definitely 1.0250x slower stanford-crypto-pbkdf2 281.6578+-2.1680 ? 284.5136+-2.4063 ? might be 1.0101x slower stanford-crypto-sha256-iterative 113.8772+-0.7313 ^ 112.6475+-0.3416 ^ definitely 1.0109x faster <arithmetic> * 306.5154+-0.6597 ? 306.8556+-0.6732 ? might be 1.0011x slower <geometric> 239.5670+-0.4735 ? 240.4821+-0.5706 ? might be 1.0038x slower <harmonic> 194.1157+-0.2640 ! 195.2375+-0.4884 ! definitely 1.0058x slower TipOfTree WeakCaches All benchmarks: <arithmetic> 115.4749+-0.1876 ? 115.6414+-0.2313 ? might be 1.0014x slower <geometric> 29.6598+-0.0535 ? 29.7120+-0.0822 ? might be 1.0018x slower <harmonic> 8.9102+-0.0264 ? 8.9250+-0.0367 ? might be 1.0017x slower TipOfTree WeakCaches Geomean of preferred means: <scaled-result> 68.2101+-0.1005 ? 68.2813+-0.1651 ? might be 1.0010x slower Sending VM builds to bigmac... Running on bigmac... 376/376 Generating benchmark report at TipOfTree_WeakCaches_SunSpiderV8Kraken_20111117_2217_benchReport.txt Benchmark report for SunSpider, V8, and Kraken on bigmac.local (MacPro5,1). VMs tested: "TipOfTree" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc (r100674) "WeakCaches" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r100674) 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 WeakCaches SunSpider: 3d-cube 7.4087+-0.0348 ? 7.4240+-0.0413 ? 3d-morph 8.4219+-0.0381 8.3901+-0.0348 3d-raytrace 7.6843+-0.0588 ? 7.7228+-0.0446 ? access-binary-trees 1.5952+-0.0034 ? 1.6041+-0.0109 ? access-fannkuch 7.5366+-0.0133 7.5282+-0.0137 access-nbody 4.1748+-0.0094 ? 4.1847+-0.0062 ? access-nsieve 3.1552+-0.0510 ? 3.1602+-0.0537 ? bitops-3bit-bits-in-byte 1.2371+-0.0114 ! 1.2710+-0.0135 ! definitely 1.0274x slower bitops-bits-in-byte 4.9017+-0.0150 ? 4.9113+-0.0445 ? bitops-bitwise-and 3.3292+-0.0417 3.2868+-0.0042 might be 1.0129x faster bitops-nsieve-bits 5.6784+-0.0604 5.6720+-0.0439 controlflow-recursive 2.3014+-0.0217 2.3001+-0.0263 crypto-aes 7.2437+-0.1201 7.1714+-0.0298 might be 1.0101x faster crypto-md5 2.5080+-0.0209 ? 2.5095+-0.0196 ? crypto-sha1 2.1831+-0.0268 2.1817+-0.0189 date-format-tofte 10.6713+-0.0589 10.6563+-0.0450 date-format-xparb 11.6481+-0.1539 11.5045+-0.0940 might be 1.0125x faster math-cordic 7.1305+-0.0232 ? 7.1495+-0.0339 ? math-partial-sums 10.4843+-0.0197 10.4432+-0.0333 math-spectral-norm 2.5910+-0.0039 ! 2.5997+-0.0048 ! definitely 1.0033x slower regexp-dna 12.9868+-0.0526 ? 13.0635+-0.0692 ? string-base64 3.9365+-0.0268 ? 3.9666+-0.0297 ? string-fasta 7.4048+-0.0224 ? 7.4262+-0.0165 ? string-tagcloud 13.0262+-0.0455 13.0190+-0.0588 string-unpack-code 22.2219+-0.0879 ? 22.3529+-0.0763 ? string-validate-input 5.5902+-0.0317 ? 5.6688+-0.1341 ? might be 1.0141x slower <arithmetic> * 6.8096+-0.0205 ? 6.8142+-0.0190 ? might be 1.0007x slower <geometric> 5.4124+-0.0170 ? 5.4207+-0.0192 ? might be 1.0015x slower <harmonic> 4.2025+-0.0160 ? 4.2207+-0.0199 ? might be 1.0043x slower TipOfTree WeakCaches V8: crypto 77.4580+-0.2994 77.2495+-0.2422 deltablue 170.5089+-1.6666 ? 171.7374+-1.6703 ? earley-boyer 103.7700+-0.3527 ? 105.3101+-1.2086 ? might be 1.0148x slower raytrace 64.5108+-0.5795 63.6362+-0.6552 might be 1.0137x faster regexp 124.3676+-0.2792 ? 124.6022+-0.4107 ? richards 138.5908+-1.5768 137.8858+-0.2496 splay 90.4342+-1.0799 89.7729+-0.7036 <arithmetic> 109.9486+-0.3112 ? 110.0277+-0.4246 ? might be 1.0007x slower <geometric> * 104.6810+-0.2393 104.6085+-0.3968 might be 1.0007x faster <harmonic> 99.6635+-0.2604 99.4283+-0.3943 might be 1.0024x faster TipOfTree WeakCaches Kraken: ai-astar 827.0655+-0.1641 ^ 808.7910+-12.4758 ^ definitely 1.0226x faster audio-beat-detection 204.6192+-0.9188 ? 205.8697+-0.5044 ? audio-dft 261.1092+-2.7787 ? 261.6707+-2.5628 ? audio-fft 132.9265+-0.1194 ? 133.3967+-0.7447 ? audio-oscillator 294.3907+-1.3264 ^ 283.8631+-4.8283 ^ definitely 1.0371x faster imaging-darkroom 334.8023+-4.7179 ? 337.4471+-5.7008 ? imaging-desaturate 240.9506+-0.2240 ? 240.9684+-0.1227 ? imaging-gaussian-blur 620.7693+-0.2246 ? 621.6854+-2.1459 ? json-parse-financial 73.2406+-0.2254 ? 73.3942+-0.1276 ? json-stringify-tinderbox 86.7271+-0.3576 ? 87.4358+-0.7803 ? stanford-crypto-aes 116.6774+-0.8003 ! 119.6183+-1.5563 ! definitely 1.0252x slower stanford-crypto-ccm 114.4313+-0.6022 ! 117.6416+-0.8032 ! definitely 1.0281x slower stanford-crypto-pbkdf2 232.5902+-0.9980 ? 233.7615+-0.2435 ? stanford-crypto-sha256-iterative 93.1953+-0.4072 92.8300+-0.2839 <arithmetic> * 259.5354+-0.3681 258.4553+-1.1468 might be 1.0042x faster <geometric> 199.5816+-0.2810 ? 199.9460+-0.5338 ? might be 1.0018x slower <harmonic> 160.6941+-0.2299 ! 161.5873+-0.4243 ! definitely 1.0056x slower TipOfTree WeakCaches All benchmarks: <arithmetic> 97.4508+-0.1245 97.1433+-0.3842 might be 1.0032x faster <geometric> 24.6421+-0.0479 ? 24.6739+-0.0627 ? might be 1.0013x slower <harmonic> 7.4085+-0.0276 ? 7.4400+-0.0343 ? might be 1.0043x slower TipOfTree WeakCaches Geomean of preferred means: <scaled-result> 56.9807+-0.0741 56.9008+-0.1544 might be 1.0014x faster Running locally... 376/376 Generating benchmark report at TipOfTree_WeakCaches_SunSpiderV8Kraken_20111117_2220_benchReport.txt Benchmark report for SunSpider, V8, and Kraken on nitroflex.local (MacBookPro8,2). VMs tested: "TipOfTree" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc (r100674) "WeakCaches" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r100674) 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 WeakCaches SunSpider: 3d-cube 6.8386+-0.1369 ? 6.8670+-0.1591 ? 3d-morph 7.6310+-0.1445 ? 7.6571+-0.1262 ? 3d-raytrace 7.1236+-0.2343 ? 7.1748+-0.2134 ? access-binary-trees 1.5442+-0.0588 ? 1.5591+-0.0798 ? access-fannkuch 6.0392+-0.0580 ? 6.0908+-0.0779 ? access-nbody 3.4093+-0.0749 ? 3.4874+-0.0651 ? might be 1.0229x slower access-nsieve 2.4843+-0.0658 ? 2.5331+-0.0456 ? might be 1.0196x slower bitops-3bit-bits-in-byte 1.2400+-0.0208 ? 1.2768+-0.0424 ? might be 1.0297x slower bitops-bits-in-byte 2.3495+-0.0581 ? 2.3848+-0.0675 ? might be 1.0150x slower bitops-bitwise-and 3.3964+-0.0650 ? 3.4162+-0.0689 ? bitops-nsieve-bits 5.2170+-0.0571 5.2053+-0.0867 controlflow-recursive 2.0306+-0.0478 ? 2.0796+-0.0331 ? might be 1.0242x slower crypto-aes 6.8778+-0.1170 ? 7.0300+-0.2004 ? might be 1.0221x slower crypto-md5 2.3851+-0.0759 ? 2.4297+-0.0920 ? might be 1.0187x slower crypto-sha1 2.0545+-0.0494 ? 2.0873+-0.0506 ? might be 1.0159x slower date-format-tofte 9.9825+-0.1603 ? 10.0566+-0.2186 ? date-format-xparb 10.9696+-0.2362 10.8717+-0.1573 math-cordic 6.2295+-0.1010 ? 6.4359+-0.1099 ? might be 1.0331x slower math-partial-sums 7.4259+-0.2035 7.3829+-0.1104 math-spectral-norm 2.3528+-0.0510 ? 2.3738+-0.0618 ? regexp-dna 10.7878+-0.1746 ? 11.0114+-0.1540 ? might be 1.0207x slower string-base64 3.9457+-0.1976 3.8035+-0.0783 might be 1.0374x faster string-fasta 6.5032+-0.1164 ? 6.5834+-0.0730 ? might be 1.0123x slower string-tagcloud 11.6524+-0.3080 11.5740+-0.3664 string-unpack-code 19.9997+-0.4005 19.9907+-0.3590 string-validate-input 5.1990+-0.0807 ? 5.3495+-0.1241 ? might be 1.0290x slower <arithmetic> * 5.9873+-0.0255 ? 6.0274+-0.0266 ? might be 1.0067x slower <geometric> 4.7571+-0.0258 ? 4.8038+-0.0274 ? might be 1.0098x slower <harmonic> 3.7479+-0.0331 ? 3.7974+-0.0372 ? might be 1.0132x slower TipOfTree WeakCaches V8: crypto 69.7311+-0.5761 69.5905+-0.3407 deltablue 149.6033+-1.6382 ? 149.9671+-0.7672 ? earley-boyer 84.8068+-0.3751 ? 85.0753+-0.9961 ? raytrace 56.2134+-1.2250 ? 56.3687+-0.4111 ? regexp 102.2150+-0.5761 ? 102.4564+-0.4019 ? richards 116.4703+-0.5039 116.3584+-0.3244 splay 71.1878+-0.5781 ? 71.5626+-1.1676 ? <arithmetic> 92.8897+-0.3338 ? 93.0542+-0.2930 ? might be 1.0018x slower <geometric> * 88.3791+-0.3757 ? 88.5463+-0.3139 ? might be 1.0019x slower <harmonic> 84.2935+-0.4672 ? 84.4659+-0.3292 ? might be 1.0020x slower TipOfTree WeakCaches Kraken: ai-astar 481.0555+-1.9411 ? 485.7408+-2.9128 ? audio-beat-detection 188.1320+-1.5393 187.1138+-0.5824 audio-dft 261.1059+-1.8659 ? 261.7865+-3.1228 ? audio-fft 122.5034+-0.6345 122.3092+-0.8059 audio-oscillator 248.3586+-0.9176 245.8170+-1.7807 might be 1.0103x faster imaging-darkroom 297.2359+-4.1428 296.1308+-3.6880 imaging-desaturate 222.0842+-2.6411 ? 223.2395+-1.2428 ? imaging-gaussian-blur 543.6976+-2.9637 ? 543.7442+-1.7596 ? json-parse-financial 57.2787+-0.3301 57.1892+-0.1696 json-stringify-tinderbox 73.8504+-0.9164 72.7696+-0.3363 might be 1.0149x faster stanford-crypto-aes 96.0850+-1.2172 95.0746+-0.6106 might be 1.0106x faster stanford-crypto-ccm 98.6912+-0.5641 ? 99.9238+-0.7357 ? might be 1.0125x slower stanford-crypto-pbkdf2 188.1711+-1.7414 187.2750+-3.1966 stanford-crypto-sha256-iterative 79.4168+-0.3274 79.3875+-0.9256 <arithmetic> * 211.2619+-0.3660 211.2501+-0.5707 might be 1.0001x faster <geometric> 168.9592+-0.3150 168.6816+-0.4400 might be 1.0016x faster <harmonic> 136.4769+-0.2737 136.1003+-0.3651 might be 1.0028x faster TipOfTree WeakCaches All benchmarks: <arithmetic> 80.0758+-0.1373 ? 80.1190+-0.1897 ? might be 1.0005x slower <geometric> 21.2897+-0.0651 ? 21.4006+-0.0718 ? might be 1.0052x slower <harmonic> 6.5985+-0.0569 ? 6.6832+-0.0637 ? might be 1.0128x slower TipOfTree WeakCaches Geomean of preferred means: <scaled-result> 48.1720+-0.0816 ? 48.3091+-0.1069 ? might be 1.0028x slower [pizlo@nitroflex bencher]
Filip Pizlo
Comment 12 2011-11-17 23:17:40 PST
Created attachment 115745 [details] the patch Fixed 32-bit support. Still need to add the ARMv7 equivalent to the Assembler hooks I needed for un-patching method call caches.
WebKit Review Bot
Comment 13 2011-11-17 23:19:54 PST
Attachment 115745 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/JavaScriptCore/ChangeLog', u'Source..." exit_code: 1 Source/JavaScriptCore/bytecode/CodeBlock.h:175: The parameter name "repatchBuffer" adds no information, so it should be removed. [readability/parameter_name] [5] Total errors found: 1 in 18 files If any of these errors are false positives, please file a bug against check-webkit-style.
Filip Pizlo
Comment 14 2011-11-17 23:37:42 PST
Created attachment 115746 [details] the patch Fixed style, removed a spurious change to AbstractMacroAssembler.
Filip Pizlo
Comment 15 2011-11-17 23:40:58 PST
Created attachment 115747 [details] the patch Improved the change log.
Filip Pizlo
Comment 16 2011-11-18 01:14:32 PST
Created attachment 115764 [details] the patch Added ARMv7 support. Fixed some comments as per Geoff's comments on https://bugs.webkit.org/show_bug.cgi?id=72312.
Filip Pizlo
Comment 17 2011-11-18 15:15:09 PST
The effect of this patch on SunSpider, when recompiling all JS functions is disabled. Note that ToT (with recompiling all JS functions) achieves a score of ~180ms, so this is telling us that with this patch we don't need to always recompile all JS functions. TEST COMPARISON FROM TO DETAILS ============================================================================= ** TOTAL **: 1.049x as fast 188.2ms +/- 1.4% 179.4ms +/- 1.2% significant ============================================================================= 3d: 1.051x as fast 24.7ms +/- 2.4% 23.5ms +/- 2.6% significant cube: 1.079x as fast 8.2ms +/- 3.7% 7.6ms +/- 4.9% significant morph: - 8.3ms +/- 4.2% 8.1ms +/- 2.8% raytrace: 1.051x as fast 8.2ms +/- 3.7% 7.8ms +/- 3.9% significant access: 1.055x as fast 17.4ms +/- 4.0% 16.5ms +/- 3.7% significant binary-trees: 1.24x as fast 2.1ms +/- 10.8% 1.7ms +/- 20.3% significant fannkuch: - 7.8ms +/- 3.9% 7.4ms +/- 5.0% nbody: - 4.2ms +/- 7.2% 4.2ms +/- 7.2% nsieve: - 3.3ms +/- 10.5% 3.2ms +/- 9.4% bitops: - 15.5ms +/- 3.9% 15.2ms +/- 4.3% 3bit-bits-in-byte: - 1.2ms +/- 25.1% 1.2ms +/- 25.1% bits-in-byte: - 5.1ms +/- 4.4% 5.1ms +/- 4.4% bitwise-and: - 3.5ms +/- 10.8% 3.2ms +/- 9.4% nsieve-bits: - 5.7ms +/- 6.1% 5.7ms +/- 6.1% controlflow: - 2.2ms +/- 13.7% 2.1ms +/- 10.8% recursive: - 2.2ms +/- 13.7% 2.1ms +/- 10.8% crypto: - 12.3ms +/- 4.8% 11.7ms +/- 4.1% aes: - 7.9ms +/- 2.9% 7.5ms +/- 5.0% md5: - 2.2ms +/- 13.7% 2.1ms +/- 10.8% sha1: - 2.2ms +/- 13.7% 2.1ms +/- 10.8% date: - 26.2ms +/- 5.3% 24.9ms +/- 4.4% format-tofte: - 13.1ms +/- 4.8% 12.5ms +/- 3.0% format-xparb: - 13.1ms +/- 6.0% 12.4ms +/- 6.8% math: - 20.3ms +/- 2.4% 20.0ms +/- 2.4% cordic: 1.057x as fast 7.4ms +/- 5.0% 7.0ms +/- 0.0% significant partial-sums: - 10.5ms +/- 3.6% 10.3ms +/- 3.4% spectral-norm: ?? 2.4ms +/- 15.4% 2.7ms +/- 12.8% not conclusive: might be *1.125x as slow* regexp: 1.048x as fast 13.0ms +/- 2.6% 12.4ms +/- 3.0% significant dna: 1.048x as fast 13.0ms +/- 2.6% 12.4ms +/- 3.0% significant string: 1.066x as fast 56.6ms +/- 2.7% 53.1ms +/- 1.5% significant base64: 1.163x as fast 5.0ms +/- 9.5% 4.3ms +/- 8.0% significant fasta: - 7.9ms +/- 2.9% 7.7ms +/- 4.5% tagcloud: 1.063x as fast 13.4ms +/- 2.8% 12.6ms +/- 2.9% significant unpack-code: 1.044x as fast 23.7ms +/- 2.9% 22.7ms +/- 2.1% significant validate-input: 1.138x as fast 6.6ms +/- 5.6% 5.8ms +/- 5.2% significant
Filip Pizlo
Comment 18 2011-11-18 15:26:30 PST
In-browser V8 scores are neutral. ToT: Score: 6851 Richards: 8787 DeltaBlue: 6427 Crypto: 14447 RayTrace: 8362 EarleyBoyer: 8076 RegExp: 1933 Splay: 6650 Not recompiling all JS functions: Score: 6947 Richards: 9020 DeltaBlue: 6341 Crypto: 14435 RayTrace: 8524 EarleyBoyer: 8257 RegExp: 1970 Splay: 6821 This patch, and not recompiling all JS functions: Score: 6873 Richards: 9203 DeltaBlue: 6420 Crypto: 14353 RayTrace: 7724 EarleyBoyer: 8355 RegExp: 1960 Splay: 6756
Geoffrey Garen
Comment 19 2011-11-18 15:31:24 PST
*** Bug 72312 has been marked as a duplicate of this bug. ***
Filip Pizlo
Comment 20 2011-11-18 15:32:27 PST
For Kraken, we see a similar effect to SunSpider: Not recompiling all JS functions is a regression, but then throwing this patch in brings us back to sanity. Here's this patch, and not recompiling, against ToT; TEST COMPARISON FROM TO DETAILS ==================================================================================== ** TOTAL **: ?? 3694.7ms +/- 0.5% 3733.9ms +/- 1.7% might be *1.011x as slow* ==================================================================================== ai: ?? 830.9ms +/- 1.5% 839.7ms +/- 0.3% might be *1.011x as slow* astar: ?? 830.9ms +/- 1.5% 839.7ms +/- 0.3% might be *1.011x as slow* audio: ?? 908.1ms +/- 0.4% 939.9ms +/- 7.0% might be *1.035x as slow* beat-detection: - 218.0ms +/- 0.5% 215.9ms +/- 1.2% dft: ?? 261.9ms +/- 0.4% 262.8ms +/- 0.7% might be *1.003x as slow* fft: ?? 136.9ms +/- 1.0% 138.5ms +/- 1.7% might be *1.012x as slow* oscillator: ?? 291.3ms +/- 0.7% 322.7ms +/- 20.8% might be *1.108x as slow* imaging: 1.004x as fast 1187.6ms +/- 0.3% 1183.1ms +/- 0.2% significant gaussian-blur: - 613.6ms +/- 0.7% 609.4ms +/- 0.2% darkroom: - 333.8ms +/- 0.3% 332.3ms +/- 0.6% desaturate: ?? 240.2ms +/- 0.4% 241.4ms +/- 0.5% might be *1.005x as slow* json: 1.010x as fast 174.3ms +/- 0.4% 172.5ms +/- 0.3% significant parse-financial: 1.012x as fast 85.3ms +/- 0.6% 84.3ms +/- 0.7% significant stringify-tinderbox: 1.009x as fast 89.0ms +/- 0.7% 88.2ms +/- 0.3% significant stanford: ?? 593.8ms +/- 0.5% 598.7ms +/- 0.8% might be *1.008x as slow* crypto-aes: ?? 127.5ms +/- 1.5% 128.1ms +/- 1.7% might be *1.005x as slow* crypto-ccm: ?? 130.3ms +/- 1.4% 131.0ms +/- 1.3% might be *1.005x as slow* crypto-pbkdf2: ?? 237.8ms +/- 0.8% 241.0ms +/- 1.3% might be *1.013x as slow* crypto-sha256-iterative: ?? 98.2ms +/- 0.5% 98.6ms +/- 1.4% might be *1.004x as slow* And here's just not recompiling all JS functions versus ToT: TEST COMPARISON FROM TO DETAILS ==================================================================================== ** TOTAL **: *1.036x as slow* 3694.7ms +/- 0.5% 3826.6ms +/- 1.1% significant ==================================================================================== ai: - 830.9ms +/- 1.5% 823.5ms +/- 1.9% astar: - 830.9ms +/- 1.5% 823.5ms +/- 1.9% audio: *1.088x as slow* 908.1ms +/- 0.4% 988.0ms +/- 1.9% significant beat-detection: *1.082x as slow* 218.0ms +/- 0.5% 235.8ms +/- 2.3% significant dft: *1.050x as slow* 261.9ms +/- 0.4% 275.1ms +/- 1.4% significant fft: *1.150x as slow* 136.9ms +/- 1.0% 157.4ms +/- 3.3% significant oscillator: *1.097x as slow* 291.3ms +/- 0.7% 319.7ms +/- 2.0% significant imaging: ?? 1187.6ms +/- 0.3% 1189.5ms +/- 0.4% might be *1.002x as slow* gaussian-blur: - 613.6ms +/- 0.7% 609.6ms +/- 0.2% darkroom: ?? 333.8ms +/- 0.3% 335.2ms +/- 1.0% might be *1.004x as slow* desaturate: *1.019x as slow* 240.2ms +/- 0.4% 244.7ms +/- 0.9% significant json: *1.111x as slow* 174.3ms +/- 0.4% 193.7ms +/- 4.6% significant parse-financial: *1.138x as slow* 85.3ms +/- 0.6% 97.1ms +/- 5.9% significant stringify-tinderbox: *1.085x as slow* 89.0ms +/- 0.7% 96.6ms +/- 3.9% significant stanford: *1.064x as slow* 593.8ms +/- 0.5% 631.9ms +/- 1.9% significant crypto-aes: *1.075x as slow* 127.5ms +/- 1.5% 137.1ms +/- 2.8% significant crypto-ccm: *1.085x as slow* 130.3ms +/- 1.4% 141.4ms +/- 4.2% significant crypto-pbkdf2: *1.068x as slow* 237.8ms +/- 0.8% 254.0ms +/- 2.4% significant crypto-sha256-iterative: ?? 98.2ms +/- 0.5% 99.4ms +/- 1.7% might be *1.012x as slow*
Geoffrey Garen
Comment 21 2011-11-18 16:33:47 PST
Comment on attachment 115764 [details] the patch View in context: https://bugs.webkit.org/attachment.cgi?id=115764&action=review r=me > Source/JavaScriptCore/bytecode/CodeBlock.cpp:1597 > + visitor.addUnconditionalFinalizer(this); Neat improvement over your prior patch.
Filip Pizlo
Comment 22 2011-11-18 16:40:28 PST
(In reply to comment #21) > (From update of attachment 115764 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=115764&action=review > > r=me > > > Source/JavaScriptCore/bytecode/CodeBlock.cpp:1597 > > + visitor.addUnconditionalFinalizer(this); > > Neat improvement over your prior patch. Thanks, I'll let this patch simmer for a short bit while I test it some more, and probably land in the next couple of days.
Filip Pizlo
Comment 23 2011-11-20 19:20:40 PST
Created attachment 116022 [details] the patch Trying to fix windows build.
Filip Pizlo
Comment 24 2011-11-20 20:45:58 PST
Filip Pizlo
Comment 25 2011-11-20 20:46:45 PST
Csaba Osztrogonác
Comment 26 2011-11-20 23:48:29 PST
(In reply to comment #24) > Landed in http://trac.webkit.org/changeset/100880 It broke Qt-ARM, Qt-Windows, Qt-MIPS and Qt-SH4 build: In file included from ../../../../Source/JavaScriptCore/dfg/DFGRepatch.cpp:27: ../../../../Source/JavaScriptCore/dfg/DFGRepatch.h:53: error: variable or field 'dfgResetGetByID' declared void ../../../../Source/JavaScriptCore/dfg/DFGRepatch.h:53: error: 'RepatchBuffer' was not declared in this scope ../../../../Source/JavaScriptCore/dfg/DFGRepatch.h:53: error: expected primary-expression before ',' token ../../../../Source/JavaScriptCore/dfg/DFGRepatch.h:53: error: 'StructureStubInfo' was not declared in this scope ../../../../Source/JavaScriptCore/dfg/DFGRepatch.h:53: error: expected primary-expression before ')' token ../../../../Source/JavaScriptCore/dfg/DFGRepatch.h:54: error: variable or field 'dfgResetPutByID' declared void ../../../../Source/JavaScriptCore/dfg/DFGRepatch.h:54: error: 'RepatchBuffer' was not declared in this scope ../../../../Source/JavaScriptCore/dfg/DFGRepatch.h:54: error: expected primary-expression before ',' token ../../../../Source/JavaScriptCore/dfg/DFGRepatch.h:54: error: 'StructureStubInfo' was not declared in this scope ../../../../Source/JavaScriptCore/dfg/DFGRepatch.h:54: error: expected primary-expression before ')' token
Filip Pizlo
Comment 27 2011-11-21 00:26:37 PST
Created attachment 116043 [details] build fix
Gabor Loki
Comment 28 2011-11-21 01:04:47 PST
> Created an attachment (id=116043) [details] Build fix landed in http://trac.webkit.org/changeset/100888
Note You need to log in before you can comment on or make changes to this bug.