Things.
Created attachment 284422 [details] it begins!
I've audited JSObject.h and JSObjectInlines.h.
Created attachment 284428 [details] I think that JSObject.cpp handles butterflies correctly now
Created attachment 284455 [details] audited JSObject.cpp again and audited JSArray.cpp
Created attachment 284506 [details] started working on ButterflyInlines.h
Created attachment 284540 [details] audited PolymorphicAccess.cpp and DFGSpeculativeJIT64.cpp
Created attachment 284543 [details] started working on DFGSpeculativeJIT.cpp
(In reply to comment #6) > Created attachment 284540 [details] > audited PolymorphicAccess.cpp and DFGSpeculativeJIT64.cpp It's probably worth checking out InlineAccess.cpp though it should be OK
Created attachment 284550 [details] audited DFGSpeculativeJIT.cpp, 64.cpp, and 32_64.cpp.
Created attachment 284621 [details] possibly done
Created attachment 284635 [details] crashes for any interesting program But at least it compiles!
Created attachment 284642 [details] it ran some interesting programs
Created attachment 284705 [details] passing so many tests
Created attachment 284709 [details] passing more tests than ever
Created attachment 284728 [details] starting to get quite solid
Created attachment 284788 [details] so awesome I think that it's basically right. I don't know what the perf is yet, since I'm still playing in debug mode.
Created attachment 284814 [details] passing even more tests
Here's what's failing now in debug tests. I haven't run internal tests or any benchmarks. ** The following JSC stress test failures have been introduced: jsc-layout-tests.yaml/js/script-tests/array-functions-non-arrays.js.layout jsc-layout-tests.yaml/js/script-tests/array-functions-non-arrays.js.layout-dfg-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/array-functions-non-arrays.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/array-functions-non-arrays.js.layout-ftl-no-cjit jsc-layout-tests.yaml/js/script-tests/array-functions-non-arrays.js.layout-no-cjit jsc-layout-tests.yaml/js/script-tests/array-functions-non-arrays.js.layout-no-ftl jsc-layout-tests.yaml/js/script-tests/array-functions-non-arrays.js.layout-no-llint mozilla-tests.yaml/js1_2/Array/general2.js.mozilla mozilla-tests.yaml/js1_2/Array/general2.js.mozilla-baseline mozilla-tests.yaml/js1_2/Array/general2.js.mozilla-dfg-eager-no-cjit-validate-phases mozilla-tests.yaml/js1_2/Array/general2.js.mozilla-ftl-eager-no-cjit-validate-phases mozilla-tests.yaml/js1_2/Array/general2.js.mozilla-llint mozilla-tests.yaml/js1_2/Array/general2.js.mozilla-no-ftl regress/script-tests/emscripten-cube2hash.js.always-trigger-copy-phase regress/script-tests/emscripten-cube2hash.js.default regress/script-tests/emscripten-cube2hash.js.dfg-eager regress/script-tests/emscripten-cube2hash.js.dfg-eager-no-cjit-validate regress/script-tests/emscripten-cube2hash.js.dfg-maximal-flush-validate-no-cjit regress/script-tests/emscripten-cube2hash.js.ftl-eager regress/script-tests/emscripten-cube2hash.js.ftl-eager-no-cjit regress/script-tests/emscripten-cube2hash.js.ftl-no-cjit-no-inline-validate regress/script-tests/emscripten-cube2hash.js.ftl-no-cjit-no-put-stack-validate regress/script-tests/emscripten-cube2hash.js.ftl-no-cjit-small-pool regress/script-tests/emscripten-cube2hash.js.ftl-no-cjit-validate-sampling-profiler regress/script-tests/emscripten-cube2hash.js.no-cjit-validate-phases regress/script-tests/emscripten-cube2hash.js.no-ftl regress/script-tests/emscripten-cube2hash.js.no-llint Results for JSC stress tests: 27 failures found.
Created attachment 284889 [details] passes all open source debug JSC tests Hooray!
Created attachment 284898 [details] fixed release build
Created attachment 284899 [details] rebased patch with changelog There are still a handful of internal fuzz test failures.
Created attachment 284920 [details] fixing internal fuzz test failures
Attachment 284920 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] Total errors found: 2 in 71 files If any of these errors are false positives, please file a bug against check-webkit-style.
(In reply to comment #23) > Attachment 284920 [details] did not pass style-queue: > > > ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( > in while( [whitespace/parens] [5] > ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before > ( in while( [whitespace/parens] [5] > Total errors found: 2 in 71 files > > > If any of these errors are false positives, please file a bug against > check-webkit-style. It passes all internal release tests!!!!!
(In reply to comment #24) > (In reply to comment #23) > > Attachment 284920 [details] did not pass style-queue: > > > > > > ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( > > in while( [whitespace/parens] [5] > > ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before > > ( in while( [whitespace/parens] [5] > > Total errors found: 2 in 71 files > > > > > > If any of these errors are false positives, please file a bug against > > check-webkit-style. > > It passes all internal release tests!!!!! And as a bonus, it looks like it'll get a perfect score on EWS!
Looks like Octane/deltablue crashes with this patch. Internal tests didn't catch it probably because you have to run long enough to cause the bad GC thing to happen. Also, this looks like a 1% SunSpider regression. I'll investigate the deltablue crash first.
It appears that deltablue requires an FTL fast path allocation for the bug to happen. It looks as though the GC swept over a butterfly that some object was still referring to. At the time the GC tries to visit the butterfly, it's clear that the start of the butterfly has a freelist next pointer and the rest of it has been overwritten by my new poisoning pass, where sweeping overwrites the things it sweeps with dummy values. Disabling either the FTL or forcing slow path allocations fixes it. Also, the poisoning is catching tons of bugs in normal tests. We probably want to run tests in a mode that does this poisoning. So, I've got a lot of problems to work through: - 1% SunSpider regression - deltablue crash due to FTL fast path allocation bug - crashes when poison-sweeping is enabled, indicating a failure to clear butterflies in some places
It looks like disabling generational GC also causes deltablue to run correctly. So, this may be a missing barrier!
Oh man. It looks like we're GCing in operationNewArrayWithSize, after allocating the butterfly but before allocating the object. That GC works fine, but the *next* GC goes mad while trying to scan that object. Between the two GCs, we sweep the block, and we find the butterfly's cell on the free list. It's a bit strange that we then crash in GC rather than crashing on access to the butterfly. Maybe it's because deltablue has this perverse pattern of allocating a ton of arrays using "new Array()" syntax, which happens to trigger this bug. Once I realized that this is the scenario, I was puzzled why it didn't show up in other tests. Turns out this is oddly difficult to trigger, because you need to do enough array allocations that you trigger slow path on average twice (because you have a 50% chance of doing GC in the butterfly allocation, which would be fine). On top of that, you can't let those array allocations die immediately, because if they do, then it's OK that a subsequent sweep reuses their space. Probably none of our other tests managed to make this happen. Hopefully I can fix that. Anyway, this implies that the bug is either in the conservative scan or it's some block management goof that I overlooked. I'll investigate!
Created attachment 284951 [details] fixed the deltablue bug
Attachment 284951 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:77: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/heap/ConservativeRoots.cpp:78: Place brace on its own line for function definitions. [whitespace/braces] [4] Total errors found: 10 in 73 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 284959 [details] fixed a lot of bugs
Attachment 284959 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:77: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/RegExpMatchesArray.h:73: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/heap/ConservativeRoots.cpp:78: Place brace on its own line for function definitions. [whitespace/braces] [4] Total errors found: 11 in 80 files If any of these errors are false positives, please file a bug against check-webkit-style.
Well the initial performance does not look good at all: Benchmark report for Octane on murderface (MacBookPro11,5). VMs tested: "TipOfTree" at /Volumes/Data/secondary/OpenSource/WebKitBuild/Release/jsc (r203920) "AuxButterflies" at /Volumes/Data/primary/OpenSource/WebKitBuild/Release/jsc (r203920) Collected 6 samples per benchmark/VM, with 6 VM invocations per benchmark. Emitted a call to gc() between sample measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to get microsecond-level timing. Reporting benchmark execution times with 95% confidence intervals in milliseconds. TipOfTree AuxButterflies encrypt 0.14851+-0.00109 ? 0.14944+-0.00207 ? decrypt 2.50351+-0.00858 ! 2.66173+-0.06498 ! definitely 1.0632x slower deltablue x2 0.12423+-0.00291 ? 0.12831+-0.00150 ? might be 1.0329x slower earley 0.27189+-0.00125 0.27142+-0.00140 boyer 4.61240+-0.18630 ? 4.66443+-0.20767 ? might be 1.0113x slower navier-stokes x2 4.58228+-0.02339 ? 4.59065+-0.02027 ? raytrace x2 0.75334+-0.00821 0.74898+-0.00417 richards x2 0.07725+-0.00122 0.07651+-0.00131 splay x2 0.32439+-0.00806 ! 0.35273+-0.00842 ! definitely 1.0873x slower regexp x2 15.27902+-0.44799 ? 15.98953+-0.76619 ? might be 1.0465x slower pdfjs x2 39.28188+-0.36968 ! 41.32144+-0.65972 ! definitely 1.0519x slower mandreel x2 39.42430+-0.22918 ? 39.52220+-0.19200 ? gbemu x2 28.13394+-0.46532 28.07904+-0.08672 closure 0.45813+-0.00249 ? 0.45892+-0.00280 ? jquery 6.15395+-0.03520 ? 6.20382+-0.08116 ? box2d x2 8.63123+-0.06943 ? 8.65312+-0.05706 ? zlib x2 353.45955+-14.53490 346.99087+-14.45479 might be 1.0186x faster typescript x2 584.76957+-13.03125 ! 609.30717+-4.58142 ! definitely 1.0420x slower <geometric> 4.76032+-0.04368 ! 4.84578+-0.01081 ! definitely 1.0180x slower I will investigate!
I bet that the problem is how we round up array lengths. I think it causes the butterfly to usually waste once slot at the end of it.
Wow, crazy! It looks like the collector's heap size accounting is messed up.
I fixed the accounting. Now I have a splay speed-up but lots of other things are regressed. I think it's because we have internal fragmentation, and I'm working on fixing that. Benchmark report for Octane on murderface (MacBookPro11,5). VMs tested: "TipOfTree" at /Volumes/Data/secondary/OpenSource/WebKitBuild/Release/jsc (r203920) "AuxButterflies" at /Volumes/Data/primary/OpenSource/WebKitBuild/Release/jsc (r203920) Collected 6 samples per benchmark/VM, with 6 VM invocations per benchmark. Emitted a call to gc() between sample measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to get microsecond-level timing. Reporting benchmark execution times with 95% confidence intervals in milliseconds. TipOfTree AuxButterflies encrypt 0.15060+-0.00148 0.14979+-0.00289 decrypt 2.53416+-0.03734 ! 2.66511+-0.03232 ! definitely 1.0517x slower deltablue x2 0.12180+-0.00081 ! 0.12857+-0.00149 ! definitely 1.0555x slower earley 0.26910+-0.00091 ? 0.27207+-0.00299 ? might be 1.0110x slower boyer 4.59272+-0.17746 ? 4.70175+-0.14550 ? might be 1.0237x slower navier-stokes x2 4.59859+-0.01503 ? 4.59885+-0.02636 ? raytrace x2 0.75150+-0.00519 ? 0.75435+-0.00537 ? richards x2 0.07768+-0.00149 0.07601+-0.00081 might be 1.0220x faster splay x2 0.32326+-0.00215 ^ 0.30997+-0.00255 ^ definitely 1.0429x faster regexp x2 15.37102+-0.36116 ! 16.52510+-0.25615 ! definitely 1.0751x slower pdfjs x2 39.57326+-0.42080 ! 40.84356+-0.41645 ! definitely 1.0321x slower mandreel x2 39.63574+-0.28791 ? 39.68141+-0.29761 ? gbemu x2 27.98538+-0.26435 ? 28.11299+-0.07135 ? closure 0.45926+-0.00399 ? 0.46099+-0.00324 ? jquery 6.15764+-0.04981 ? 6.18408+-0.03466 ? box2d x2 8.67327+-0.13701 ? 8.72572+-0.08408 ? zlib x2 356.59756+-2.72695 352.08651+-12.80692 might be 1.0128x faster typescript x2 579.68669+-7.88175 ! 607.01038+-4.03266 ! definitely 1.0471x slower <geometric> 4.76350+-0.01556 ! 4.82319+-0.01421 ! definitely 1.0125x slower
Created attachment 284976 [details] work in progress Adding the magic to reduce internal fragmentation.
Created attachment 284977 [details] oh man this might actually work
Attachment 284977 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:77: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2764: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2765: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/RegExpMatchesArray.h:73: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/heap/ConservativeRoots.cpp:78: Place brace on its own line for function definitions. [whitespace/braces] [4] Total errors found: 13 in 85 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 285168 [details] performance
Created attachment 285169 [details] latest patch It probably needs to be rebased.
What I'm consistently finding is that the benchmarks that have regressions are also now using less memory. That makes this feel like a win rather than a loss. I'm going to see what happens when I run things in the full browser.
Created attachment 285170 [details] latest patch
Attachment 285170 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:77: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2765: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2766: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/RegExpMatchesArray.h:73: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/heap/ConservativeRoots.cpp:78: Place brace on its own line for function definitions. [whitespace/braces] [4] Total errors found: 13 in 85 files If any of these errors are false positives, please file a bug against check-webkit-style.
It looks like there are two things causing MarkedSpace to be a regression: - MarkedBlocks are small, while CopiedBlocks are large. The large size of CopiedBlocks makes a huge difference for certain common allocation sizes, like arrays of length 1024. The allocation size for a contiguous butterfly would be 8200 bytes, which is more than half of a 16KB MarkedBlock. So, we waste 16384-8200=8184 bytes for every 1024 array allocation, unless we make MarkedBlocks larger. But if we make MarkedBlocks larger, we suffer fragmentation because of the very simplistic arrangement of size classes. We should probably use exponential size classes rather than linear ones. - Free-list creation is expensive. In CopiedSpace we are optimized for the case that lots of objects all die at once, which happens to be how the web works. Usually, you don't have to do any work to deal with the fragmentation in a CopiedBlock. You just bump-allocate in a freshly allocated one, or one that has just been zeroed and nothing else. But in MarkedSpace we have to create free-lists. I think we should explore adding something different than free-lists in MarkedSpace. I'm even thinking about making the allocation fast path be a bump/free-list hybrid, and modifying the sweep to quickly identify completely free MarkedBlocks. If a MarkedBlock is completely free then we can tell the allocation fast paths to use bump. Bump can be the default. We could even make it the only inline fast path in some cases. Anyway, here are the current perf results, after I made the MarkedBlock size 64KB: Benchmark report for Octane and Kraken on murderface (MacBookPro11,5). VMs tested: "TipOfTree" at /Volumes/Data/secondary/OpenSource/WebKitBuild/Release/jsc (r204055) "AuxButterflies" at /Volumes/Data/primary/OpenSource/WebKitBuild/Release/jsc (r204055) Collected 6 samples per benchmark/VM, with 6 VM invocations per benchmark. Emitted a call to gc() between sample measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to get microsecond-level timing. Reporting benchmark execution times with 95% confidence intervals in milliseconds. TipOfTree AuxButterflies Octane: encrypt 0.14292+-0.00108 ! 0.14731+-0.00229 ! definitely 1.0308x slower decrypt 2.61144+-0.07626 ? 2.61413+-0.01196 ? deltablue x2 0.12511+-0.00246 ? 0.12594+-0.00327 ? earley 0.26931+-0.00154 0.26653+-0.00134 might be 1.0104x faster boyer 4.54482+-0.14269 4.40210+-0.11607 might be 1.0324x faster navier-stokes x2 4.61712+-0.02800 ? 4.64155+-0.04537 ? raytrace x2 0.75079+-0.00358 ^ 0.73628+-0.00672 ^ definitely 1.0197x faster richards x2 0.07606+-0.00121 ? 0.07630+-0.00071 ? splay x2 0.32302+-0.00165 ^ 0.29880+-0.00354 ^ definitely 1.0811x faster regexp x2 15.18275+-0.29877 ! 16.14390+-0.22540 ! definitely 1.0633x slower pdfjs x2 39.65732+-0.54782 ! 41.18570+-0.49433 ! definitely 1.0385x slower mandreel x2 39.84480+-0.37770 39.68316+-0.32085 gbemu x2 27.64703+-0.17189 ! 30.02397+-0.29912 ! definitely 1.0860x slower closure 0.45987+-0.00338 ? 0.46161+-0.00211 ? jquery 6.20639+-0.07152 6.18832+-0.01875 box2d x2 8.62061+-0.07246 ? 8.69544+-0.09890 ? zlib x2 356.85201+-12.85325 ? 363.19929+-5.87951 ? might be 1.0178x slower typescript x2 589.75472+-13.20071 588.84249+-11.13164 <geometric> 4.76057+-0.01421 ! 4.79734+-0.01661 ! definitely 1.0077x slower TipOfTree AuxButterflies Kraken: ai-astar 81.943+-1.153 ? 84.326+-3.194 ? might be 1.0291x slower audio-beat-detection 36.129+-0.694 36.030+-0.273 audio-dft 95.417+-2.099 94.261+-1.822 might be 1.0123x faster audio-fft 27.771+-0.062 ! 28.017+-0.081 ! definitely 1.0089x slower audio-oscillator 44.660+-0.242 ! 47.534+-0.297 ! definitely 1.0643x slower imaging-darkroom 56.812+-0.415 ? 57.180+-1.283 ? imaging-desaturate 42.957+-2.272 41.078+-0.194 might be 1.0457x faster imaging-gaussian-blur 59.911+-4.382 58.325+-3.676 might be 1.0272x faster json-parse-financial 32.442+-2.261 31.679+-0.211 might be 1.0241x faster json-stringify-tinderbox 21.662+-0.654 ? 22.498+-1.237 ? might be 1.0386x slower stanford-crypto-aes 35.099+-0.779 ! 38.181+-1.694 ! definitely 1.0878x slower stanford-crypto-ccm 32.910+-1.183 ? 34.935+-1.775 ? might be 1.0616x slower stanford-crypto-pbkdf2 87.896+-0.528 ! 92.195+-2.434 ! definitely 1.0489x slower stanford-crypto-sha256-iterative 29.388+-0.900 ? 30.566+-1.666 ? might be 1.0401x slower <arithmetic> 48.928+-0.436 ! 49.772+-0.405 ! definitely 1.0172x slower TipOfTree AuxButterflies Geomean of preferred means: <scaled-result> 15.2617+-0.0536 ! 15.4522+-0.0730 ! definitely 1.0125x slower
Created attachment 285254 [details] latest
Attachment 285254 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:77: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2765: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2766: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/RegExpMatchesArray.h:73: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/heap/ConservativeRoots.cpp:78: Place brace on its own line for function definitions. [whitespace/braces] [4] Total errors found: 13 in 90 files If any of these errors are false positives, please file a bug against check-webkit-style.
Comment on attachment 285254 [details] latest Attachment 285254 [details] did not pass mac-debug-ews (mac): Output: http://webkit-queues.webkit.org/results/1805789 Number of test failures exceeded the failure limit.
Created attachment 285260 [details] Archive of layout-test-results from ews114 for mac-yosemite The attached test failures were seen while running run-webkit-tests on the mac-debug-ews. Bot: ews114 Port: mac-yosemite Platform: Mac OS X 10.10.5
Created attachment 285349 [details] new approach to size classes This has a totally new approach to MarkedSpace size classes. I'm hoping that this makes it easier to use larger marked blocks.
Created attachment 285396 [details] last version before large allocation apocalypse
Created attachment 285399 [details] large allocation apocalypse has begun
Created attachment 285401 [details] large allocation rewrite compiles!
Created attachment 285444 [details] large allocation rewrite is passing tests
Created attachment 285450 [details] I just realized that I need to fix all of those MarkedBlock::blockFor() things Hope crap this is ballooning.
Here's a good illustration of the trade-offs that I'm trying to resolve by rewriting how we do large allocations. If I just allocate butterflies in marked space, things go bad because many butterflies are just larger than sizeof(MarkedBlock) and so they hit our disastrous large allocation path. The AuxButterflies16KB version makes things a bit better by at least cleaning up the size classes, but this isn't enough to avoid slow-downs on Octane and Kraken. Increasing the block size to 64KB does reduce the slow-downs in Octane and Kraken but it creates a slow-down in SunSpider, probably because we now allocate more memory right out of the gate. So, I think we want a hybrid of AuxButterflies16KB and AuxButterflies64KB, where we allocate small marked blocks but don't waste memory for large butterflies. To do that we need a new large allocation path! Benchmark report for SunSpider, Octane, and Kraken on murderface (MacBookPro11,5). VMs tested: "TipOfTree" at /Volumes/Data/secondary/OpenSource/WebKitBuild/Release/jsc (r204128) "SimpleAuxButterflies" at /Volumes/Data/quartary/OpenSource/WebKitBuild/Release/jsc (r204128) "AuxButterflies16KB" at /Volumes/Data/quinary/OpenSource/WebKitBuild/Release/jsc (r204128) "AuxButterflies64KB" at /Volumes/Data/primary/OpenSource/WebKitBuild/Release/jsc (r204128) Collected 10 samples per benchmark/VM, with 10 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 SimpleAuxButterflies AuxButterflies16KB AuxButterflies64KB AuxButterflies64KB v. TipOfTree SunSpider: 3d-cube 4.4844+-0.0647 ! 5.0431+-0.0498 ? 5.0754+-0.1433 ? 5.2062+-0.0668 ! definitely 1.1609x slower 3d-morph 4.8011+-0.1857 4.7892+-0.2552 4.7074+-0.0399 ? 4.7546+-0.1605 3d-raytrace 4.6572+-0.0589 ? 4.8237+-0.1817 4.6222+-0.0670 ! 4.7955+-0.0985 ? might be 1.0297x slower access-binary-trees 1.8976+-0.0330 1.8917+-0.0773 ? 1.9192+-0.0439 ? 1.9330+-0.0546 ? might be 1.0186x slower access-fannkuch 5.2757+-0.2463 ? 5.3504+-0.0674 ^ 5.1893+-0.0893 ? 5.2857+-0.0785 ? access-nbody 2.3810+-0.1931 2.2882+-0.1280 2.2782+-0.0484 ! 2.4673+-0.1080 ? might be 1.0362x slower access-nsieve 2.8488+-0.0334 2.8037+-0.0389 ? 2.8376+-0.1148 2.8294+-0.0223 bitops-3bit-bits-in-byte 1.0832+-0.1192 1.0556+-0.0465 1.0365+-0.0296 ? 1.2336+-0.3704 ? might be 1.1389x slower bitops-bits-in-byte 2.5031+-0.0860 2.4543+-0.0313 2.4366+-0.0324 ? 2.5662+-0.2114 ? might be 1.0252x slower bitops-bitwise-and 1.9174+-0.1362 1.8626+-0.0378 ? 1.8883+-0.0760 ? 1.9614+-0.0710 ? might be 1.0229x slower bitops-nsieve-bits 2.9576+-0.1271 ? 2.9968+-0.1063 2.9110+-0.0290 ? 3.0239+-0.1058 ? might be 1.0224x slower controlflow-recursive 2.1719+-0.0127 ? 2.2257+-0.0506 2.2011+-0.0429 ? 2.2100+-0.0313 ? might be 1.0176x slower crypto-aes 4.1922+-0.0939 ! 4.4516+-0.1445 4.2357+-0.0788 ? 4.3728+-0.1270 ? might be 1.0431x slower crypto-md5 2.5801+-0.0564 ? 2.6380+-0.1585 2.5790+-0.0428 ? 2.6941+-0.1326 ? might be 1.0442x slower crypto-sha1 2.5943+-0.0386 ? 2.6258+-0.0389 ? 2.6397+-0.0285 ? 2.6621+-0.0599 ? might be 1.0262x slower date-format-tofte 6.4005+-0.2395 ? 6.5240+-0.2378 ? 6.5627+-0.2380 ? 6.8419+-0.2697 ? might be 1.0690x slower date-format-xparb 4.4459+-0.0317 ? 4.5613+-0.2296 4.4573+-0.1501 ? 4.5766+-0.0532 ! definitely 1.0294x slower math-cordic 2.6047+-0.1115 2.5863+-0.0423 ? 2.5985+-0.0227 ? 2.7637+-0.1679 ? might be 1.0611x slower math-partial-sums 3.7212+-0.0493 ? 3.8688+-0.2066 3.7585+-0.0705 ? 4.0084+-0.2710 ? might be 1.0772x slower math-spectral-norm 1.9491+-0.0278 ? 1.9608+-0.0450 1.9526+-0.0613 ? 1.9940+-0.0589 ? might be 1.0230x slower regexp-dna 6.2235+-0.4707 6.1266+-0.1453 6.1064+-0.1101 6.0533+-0.1326 might be 1.0281x faster string-base64 4.4976+-0.2075 4.4254+-0.1358 4.3271+-0.0448 ! 4.4467+-0.0708 might be 1.0115x faster string-fasta 5.2094+-0.1420 ? 5.2497+-0.0913 5.1925+-0.0464 ? 5.3633+-0.1489 ? might be 1.0295x slower string-tagcloud 8.2615+-0.3758 8.0670+-0.2049 8.0214+-0.1713 ? 8.3930+-0.2691 ? might be 1.0159x slower string-unpack-code 17.4966+-0.3606 17.3569+-0.2993 ? 18.2648+-0.6339 ? 18.2784+-0.3744 ! definitely 1.0447x slower string-validate-input 4.1611+-0.0964 ? 4.2257+-0.0682 ? 4.3071+-0.2034 4.2407+-0.0565 ? might be 1.0191x slower <arithmetic> 4.2814+-0.0216 ? 4.3174+-0.0384 4.3118+-0.0289 ! 4.4214+-0.0354 ! definitely 1.0327x slower TipOfTree SimpleAuxButterflies AuxButterflies16KB AuxButterflies64KB AuxButterflies64KB v. TipOfTree Octane: encrypt 0.14559+-0.00225 ! 0.15000+-0.00205 0.14845+-0.00332 ? 0.14895+-0.00297 ? might be 1.0231x slower decrypt 2.57292+-0.03250 ! 2.62363+-0.00868 2.61100+-0.00489 ? 2.62455+-0.01301 ! definitely 1.0201x slower deltablue x2 0.12439+-0.00132 ! 0.12865+-0.00202 0.12669+-0.00208 0.12606+-0.00188 ? might be 1.0134x slower earley 0.26990+-0.00160 ? 0.27189+-0.00120 0.27084+-0.00156 ^ 0.26454+-0.00105 ^ definitely 1.0203x faster boyer 4.57432+-0.11169 ? 4.60830+-0.10973 ? 4.61912+-0.11172 4.48958+-0.10283 might be 1.0189x faster navier-stokes x2 4.60487+-0.01864 ? 4.60681+-0.01197 ? 4.61745+-0.02900 4.61106+-0.01406 ? raytrace x2 0.74891+-0.00386 ? 0.75037+-0.00492 0.74907+-0.00335 ^ 0.73189+-0.00440 ^ definitely 1.0232x faster richards x2 0.07629+-0.00069 ? 0.07679+-0.00112 ? 0.07759+-0.00096 0.07701+-0.00137 ? splay x2 0.32571+-0.00295 ^ 0.31420+-0.00187 ! 0.32565+-0.00486 ^ 0.31286+-0.00616 ^ definitely 1.0411x faster regexp x2 15.50033+-0.66766 ! 16.49235+-0.23073 16.19040+-0.19243 ^ 15.66231+-0.21639 ? might be 1.0104x slower pdfjs x2 39.39239+-0.35663 ! 41.78375+-0.29215 ^ 40.49726+-0.54108 ? 40.89425+-0.23561 ! definitely 1.0381x slower mandreel x2 39.71818+-0.26691 ? 39.80092+-0.23399 39.70865+-0.14213 ? 39.77723+-0.19827 ? gbemu x2 27.62646+-0.17355 ! 29.28948+-0.19248 ^ 27.80526+-0.22206 ! 29.72521+-0.27890 ! definitely 1.0760x slower closure 0.45988+-0.00216 ? 0.46313+-0.00264 ? 0.46380+-0.00238 ? 0.46502+-0.00327 ? might be 1.0112x slower jquery 6.21443+-0.03311 6.20131+-0.05835 ! 6.37222+-0.03338 ^ 6.27906+-0.03439 ? might be 1.0104x slower box2d x2 8.62782+-0.05768 ? 8.71136+-0.03586 ? 8.75362+-0.03841 8.67463+-0.04658 ? zlib x2 343.02766+-10.56765 ? 356.89487+-4.55687 344.37725+-9.78342 ? 348.80072+-9.91226 ? might be 1.0168x slower typescript x2 582.11401+-8.04523 ! 595.62290+-4.71067 ? 597.37607+-3.04969 592.25625+-5.55931 ? might be 1.0174x slower <geometric> 4.74911+-0.01914 ! 4.84402+-0.01169 4.81331+-0.02062 4.79250+-0.01935 ! definitely 1.0091x slower TipOfTree SimpleAuxButterflies AuxButterflies16KB AuxButterflies64KB AuxButterflies64KB v. TipOfTree Kraken: ai-astar 81.944+-1.232 ? 83.676+-1.940 83.073+-0.718 82.230+-0.534 ? audio-beat-detection 35.724+-0.132 ! 39.441+-0.101 39.313+-0.106 ^ 35.817+-0.274 ? audio-dft 96.028+-1.792 95.003+-2.349 ? 95.447+-1.846 94.994+-1.422 might be 1.0109x faster audio-fft 28.078+-0.756 ! 31.442+-0.216 ? 31.594+-0.177 ^ 27.925+-0.161 audio-oscillator 45.268+-0.954 ? 45.509+-0.435 ? 45.637+-0.449 45.397+-0.317 ? imaging-darkroom 56.784+-0.177 ? 56.908+-0.244 ? 57.116+-0.411 56.947+-0.219 ? imaging-desaturate 41.677+-1.319 40.919+-0.253 ? 42.322+-2.175 41.292+-0.197 imaging-gaussian-blur 55.877+-1.287 55.555+-1.137 ? 56.577+-1.358 55.324+-1.321 json-parse-financial 32.082+-1.499 ? 33.303+-1.392 ? 34.549+-1.559 33.409+-1.604 ? might be 1.0414x slower json-stringify-tinderbox 23.207+-1.646 22.068+-1.049 20.898+-0.763 ? 22.741+-1.320 might be 1.0205x faster stanford-crypto-aes 34.618+-0.176 ! 38.038+-1.070 ^ 35.995+-0.298 35.610+-0.461 ! definitely 1.0287x slower stanford-crypto-ccm 32.027+-1.133 ! 34.666+-1.189 33.743+-1.961 ? 34.924+-1.371 ! definitely 1.0904x slower stanford-crypto-pbkdf2 87.904+-0.819 ! 92.863+-1.454 92.479+-1.049 91.927+-0.941 ! definitely 1.0458x slower stanford-crypto-sha256-iterative 29.220+-1.031 ? 30.359+-1.234 29.398+-0.283 ? 29.893+-0.645 ? might be 1.0230x slower <arithmetic> 48.603+-0.321 ! 49.982+-0.234 49.867+-0.467 49.173+-0.249 ! definitely 1.0117x slower TipOfTree SimpleAuxButterflies AuxButterflies16KB AuxButterflies64KB AuxButterflies64KB v. TipOfTree Geomean of preferred means: <scaled-result> 9.9605+-0.0308 ! 10.1486+-0.0337 10.1149+-0.0459 ? 10.1377+-0.0286 ! definitely 1.0178x slower
Things are getting better. But I undid the splay speed-up. I'll investigate what happened there. Benchmark report for SunSpider, Octane, and Kraken on murderface (MacBookPro11,5). VMs tested: "TipOfTree" at /Volumes/Data/secondary/OpenSource/WebKitBuild/Release/jsc (r204128) "SimpleAuxButterflies" at /Volumes/Data/quartary/OpenSource/WebKitBuild/Release/jsc (r204128) "AuxButterflies64KB" at /Volumes/Data/primary/OpenSource/WebKitBuild/Release/jsc (r204128) "AuxButterfliesLargeAlloc" at /Volumes/Data/quinary/OpenSource/WebKitBuild/Release/jsc (r204128) Collected 10 samples per benchmark/VM, with 10 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 SimpleAuxButterflies AuxButterflies64KB AuxButterfliesLargeAlloc AuxButterfliesLargeAlloc v. TipOfTree SunSpider: 3d-cube 4.5578+-0.1559 ! 5.0198+-0.1410 ? 5.1283+-0.0992 5.1174+-0.1121 ! definitely 1.1228x slower 3d-morph 4.7218+-0.0819 4.6649+-0.0384 ? 4.8637+-0.2404 4.7671+-0.1557 ? 3d-raytrace 4.7702+-0.1780 4.5675+-0.0695 ! 4.9135+-0.1192 ^ 4.6527+-0.1056 might be 1.0253x faster access-binary-trees 1.8450+-0.0610 ? 1.8662+-0.0448 ? 1.9291+-0.0521 1.9273+-0.0516 ? might be 1.0446x slower access-fannkuch 5.2317+-0.1742 ? 5.4488+-0.2939 5.1774+-0.1788 5.1562+-0.1787 might be 1.0146x faster access-nbody 2.2598+-0.0258 ? 2.4434+-0.2870 2.4369+-0.0709 2.3413+-0.1447 ? might be 1.0361x slower access-nsieve 2.8322+-0.0350 2.7698+-0.0318 ? 2.8240+-0.0238 ? 2.8501+-0.1076 ? bitops-3bit-bits-in-byte 1.0201+-0.0115 ! 1.0897+-0.0581 ? 1.1380+-0.1369 1.0445+-0.0400 ? might be 1.0239x slower bitops-bits-in-byte 2.4361+-0.0394 ? 2.5891+-0.1934 2.5735+-0.1568 2.4573+-0.0502 ? bitops-bitwise-and 1.9754+-0.2558 1.8642+-0.0256 ? 1.9120+-0.0601 1.8836+-0.0545 might be 1.0487x faster bitops-nsieve-bits 2.9440+-0.0916 2.9146+-0.0372 ? 3.0260+-0.1386 2.8997+-0.0223 might be 1.0153x faster controlflow-recursive 2.3048+-0.1584 2.2134+-0.1479 ? 2.2980+-0.1058 2.2444+-0.0762 might be 1.0269x faster crypto-aes 4.2529+-0.1690 ? 4.4554+-0.1997 4.3481+-0.2286 4.2243+-0.0773 crypto-md5 2.5201+-0.0354 ? 2.5578+-0.0504 ? 2.7454+-0.3581 2.6090+-0.1143 ? might be 1.0353x slower crypto-sha1 2.6248+-0.0538 ? 2.6739+-0.0661 2.6583+-0.0410 2.6188+-0.0321 date-format-tofte 6.3851+-0.2480 ? 6.3956+-0.2316 ? 6.8543+-0.2600 6.7328+-0.3984 ? might be 1.0545x slower date-format-xparb 4.6708+-0.2768 4.3976+-0.0740 ! 4.6877+-0.2152 4.4762+-0.0971 might be 1.0435x faster math-cordic 2.6074+-0.0604 ? 2.7512+-0.2773 2.6849+-0.0866 2.6664+-0.1267 ? might be 1.0226x slower math-partial-sums 3.8396+-0.1665 3.7813+-0.0954 ? 3.8433+-0.1129 ? 3.9779+-0.3178 ? might be 1.0360x slower math-spectral-norm 1.9565+-0.0581 1.9480+-0.0406 ? 1.9707+-0.0256 ? 1.9931+-0.0774 ? might be 1.0187x slower regexp-dna 6.1790+-0.2704 6.0703+-0.2340 ? 6.2838+-0.2493 6.0842+-0.2282 might be 1.0156x faster string-base64 4.2741+-0.0292 ? 4.3163+-0.0462 ! 4.5058+-0.1200 ^ 4.3292+-0.0421 ? might be 1.0129x slower string-fasta 5.2731+-0.1846 5.1514+-0.0398 ! 5.6360+-0.3093 5.3571+-0.1397 ? might be 1.0159x slower string-tagcloud 7.9739+-0.2367 ? 8.1055+-0.4643 8.0471+-0.0470 8.0419+-0.1938 ? string-unpack-code 18.0191+-0.9203 17.6282+-0.4758 ? 17.6685+-0.3062 ? 17.9680+-0.6064 string-validate-input 4.1739+-0.0550 4.1443+-0.0605 ! 4.3240+-0.0926 4.3200+-0.1175 ? might be 1.0350x slower <arithmetic> 4.2942+-0.0477 ? 4.3011+-0.0442 ! 4.4030+-0.0412 ^ 4.3362+-0.0253 ? might be 1.0098x slower TipOfTree SimpleAuxButterflies AuxButterflies64KB AuxButterfliesLargeAlloc AuxButterfliesLargeAlloc v. TipOfTree Octane: encrypt 0.14533+-0.00222 ! 0.15108+-0.00301 0.15034+-0.00318 0.14689+-0.00193 ? might be 1.0107x slower decrypt 2.61876+-0.04621 ? 2.62099+-0.00966 2.61268+-0.01044 2.61173+-0.00981 deltablue x2 0.12177+-0.00130 ! 0.12743+-0.00235 0.12631+-0.00231 ? 0.12889+-0.00970 ? might be 1.0585x slower earley 0.27001+-0.00185 ? 0.27377+-0.00325 ^ 0.26454+-0.00055 ! 0.27204+-0.00190 ? boyer 4.58360+-0.11484 ? 4.61276+-0.10187 4.47922+-0.10752 ? 4.67403+-0.09395 ? might be 1.0197x slower navier-stokes x2 4.61178+-0.01672 4.59953+-0.01391 ? 4.60831+-0.03052 4.60680+-0.01671 raytrace x2 0.74943+-0.00424 0.74786+-0.00507 ^ 0.73181+-0.00439 ! 0.74839+-0.00358 richards x2 0.07658+-0.00081 0.07633+-0.00033 ? 0.07657+-0.00088 ? 0.07683+-0.00084 ? splay x2 0.32292+-0.00174 ^ 0.31468+-0.00217 ^ 0.30964+-0.00276 ! 0.32906+-0.00146 ! definitely 1.0190x slower regexp x2 15.40845+-0.33175 ! 16.44271+-0.31377 ^ 15.55046+-0.21314 ? 15.87594+-0.25650 ? might be 1.0303x slower pdfjs x2 39.40315+-0.28901 ! 41.78232+-0.17371 ^ 40.92843+-0.34968 ^ 39.73745+-0.21895 ? mandreel x2 39.76420+-0.20860 ? 40.04070+-0.37404 39.70689+-0.15163 39.67501+-0.22849 gbemu x2 27.48214+-0.09655 ! 29.20368+-0.19523 ? 29.60994+-0.22860 ^ 28.95805+-0.07978 ! definitely 1.0537x slower closure 0.45977+-0.00195 0.45742+-0.00230 ? 0.46260+-0.00396 0.46150+-0.00125 ? jquery 6.16387+-0.04029 ? 6.19293+-0.02350 ! 6.26991+-0.02460 ? 6.32008+-0.03038 ! definitely 1.0253x slower box2d x2 8.57640+-0.05250 ! 8.70619+-0.04156 8.65640+-0.02894 ? 8.69710+-0.04477 ! definitely 1.0141x slower zlib x2 346.27353+-9.51686 ? 350.26088+-11.41218 346.60460+-13.27221 ? 349.91839+-7.44690 ? might be 1.0105x slower typescript x2 578.99900+-5.96293 ! 601.29929+-9.41440 593.42517+-6.74871 ! 611.23459+-4.99278 ! definitely 1.0557x slower <geometric> 4.73984+-0.01428 ! 4.83449+-0.02249 ^ 4.78119+-0.02763 ? 4.82662+-0.02474 ! definitely 1.0183x slower TipOfTree SimpleAuxButterflies AuxButterflies64KB AuxButterfliesLargeAlloc AuxButterfliesLargeAlloc v. TipOfTree Kraken: ai-astar 84.832+-2.243 84.517+-2.439 83.084+-1.402 82.637+-0.636 might be 1.0266x faster audio-beat-detection 35.769+-0.161 ! 39.823+-0.802 ^ 35.775+-0.103 ! 36.238+-0.229 ! definitely 1.0131x slower audio-dft 95.137+-1.304 ? 95.324+-1.607 94.662+-1.678 94.257+-2.111 audio-fft 27.747+-0.039 ! 31.589+-0.182 ^ 28.222+-0.694 ? 28.301+-0.288 ! definitely 1.0200x slower audio-oscillator 46.220+-1.275 45.568+-0.252 ? 45.921+-0.906 45.890+-1.417 imaging-darkroom 56.786+-0.152 ? 57.158+-0.439 ? 57.245+-0.493 57.155+-1.013 ? imaging-desaturate 42.108+-1.553 41.327+-0.908 40.871+-0.227 ? 41.819+-0.981 imaging-gaussian-blur 56.755+-0.920 ? 56.818+-1.191 56.646+-1.381 ? 58.442+-2.822 ? might be 1.0297x slower json-parse-financial 32.402+-1.580 31.919+-0.888 ? 33.297+-1.361 32.034+-1.195 might be 1.0115x faster json-stringify-tinderbox 21.794+-0.898 21.729+-1.012 ? 22.078+-1.430 21.260+-1.063 might be 1.0251x faster stanford-crypto-aes 34.456+-0.177 ! 37.794+-0.996 ^ 35.915+-0.818 35.718+-0.166 ! definitely 1.0366x slower stanford-crypto-ccm 32.319+-0.271 ? 34.418+-2.566 ? 34.672+-1.910 33.376+-1.641 ? might be 1.0327x slower stanford-crypto-pbkdf2 87.982+-0.875 ! 92.421+-1.269 ? 92.911+-1.910 91.968+-0.703 ! definitely 1.0453x slower stanford-crypto-sha256-iterative 29.130+-0.628 ? 29.284+-0.367 ! 31.145+-1.422 29.470+-0.369 ? might be 1.0117x slower <arithmetic> 48.817+-0.279 ! 49.978+-0.396 49.460+-0.395 49.183+-0.458 ? might be 1.0075x slower TipOfTree SimpleAuxButterflies AuxButterflies64KB AuxButterfliesLargeAlloc AuxButterfliesLargeAlloc v. TipOfTree Geomean of preferred means: <scaled-result> 9.9784+-0.0543 ! 10.1286+-0.0441 ? 10.1352+-0.0435 10.0966+-0.0355 ! definitely 1.0118x slower
Created attachment 285467 [details] latest I managed to slow down splay in the process. I'll investigate.
I wanted to know where the remaining performance deficit came from. I was wondering if maybe the choice of size classes played a role. It seems that Octane *really loves* the old size classes, but everything else prefers the new ones. ExpSizeClasses = whats in the patch DirectOldClasses = the patch but with old size classes IndirectOldClasses = like DirectOldClasses but with the size classes tweaked to optimize block packing VMs tested: "TipOfTree" at /Volumes/Data/secondary/OpenSource/WebKitBuild/Release/jsc (r204128) "ExpSizeClasses" at /Volumes/Data/quinary/OpenSource/ExpSizeClasses/WebKitBuild/Release/jsc "DirectOldClasses" at /Volumes/Data/quinary/OpenSource/DirectOldClasses/WebKitBuild/Release/jsc "IndirectOldClasses" at /Volumes/Data/quinary/OpenSource/IndirectOldClasses/WebKitBuild/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. TipOfTree ExpSizeClasses DirectOldClasses IndirectOldClasses IndirectOldClasses v. TipOfTree SunSpider: 3d-cube 4.5713+-0.1336 ! 5.0494+-0.0895 ? 5.1134+-0.1517 4.9361+-0.1613 ! definitely 1.0798x slower 3d-morph 4.7587+-0.1678 4.7172+-0.1335 ? 4.9244+-0.4627 4.6917+-0.0823 might be 1.0143x faster 3d-raytrace 4.6127+-0.0936 ? 4.6283+-0.1122 ? 4.7605+-0.3481 ? 4.7839+-0.1956 ? might be 1.0371x slower access-binary-trees 1.8947+-0.0329 ? 1.9413+-0.0441 1.9032+-0.0428 ? 1.9670+-0.1587 ? might be 1.0382x slower access-fannkuch 5.4318+-0.2776 5.3228+-0.2452 5.1283+-0.2630 ? 5.1472+-0.3419 might be 1.0553x faster access-nbody 2.3580+-0.1475 2.3185+-0.2706 2.2800+-0.0654 2.2188+-0.0317 might be 1.0628x faster access-nsieve 2.9406+-0.2026 2.7893+-0.0160 ? 2.7992+-0.0267 2.7901+-0.0368 might be 1.0539x faster bitops-3bit-bits-in-byte 1.0318+-0.0333 ? 1.0687+-0.0858 1.0610+-0.0866 1.0485+-0.0690 ? might be 1.0161x slower bitops-bits-in-byte 2.4114+-0.0641 ? 2.6401+-0.2822 2.4675+-0.0285 ? 2.4968+-0.0978 ? might be 1.0354x slower bitops-bitwise-and 1.9052+-0.0929 1.8793+-0.0695 ? 1.9561+-0.1351 1.8972+-0.1016 bitops-nsieve-bits 2.9928+-0.1339 2.8914+-0.0361 ? 2.9301+-0.0478 2.8868+-0.0523 might be 1.0367x faster controlflow-recursive 2.2178+-0.0957 2.2164+-0.1160 ? 2.2295+-0.1044 ? 2.4235+-0.3840 ? might be 1.0927x slower crypto-aes 4.2458+-0.0500 ? 4.3111+-0.3310 4.1906+-0.0357 ? 4.3183+-0.1692 ? might be 1.0171x slower crypto-md5 2.6381+-0.1321 2.5339+-0.0505 ? 2.5637+-0.0878 2.5403+-0.0333 might be 1.0385x faster crypto-sha1 2.5945+-0.0867 ? 2.6085+-0.0961 ? 2.7609+-0.2194 2.7193+-0.1899 ? might be 1.0481x slower date-format-tofte 6.3042+-0.2751 ? 6.5833+-0.1479 ? 6.7733+-0.2939 6.5526+-0.2845 ? might be 1.0394x slower date-format-xparb 4.4419+-0.0402 ? 4.6832+-0.3377 4.5682+-0.1467 4.5032+-0.1912 ? might be 1.0138x slower math-cordic 2.5768+-0.0357 ? 2.7225+-0.2591 2.5730+-0.0332 ? 2.7295+-0.3784 ? might be 1.0592x slower math-partial-sums 4.0279+-0.6042 3.7950+-0.1552 3.7302+-0.0889 ? 3.7598+-0.0648 might be 1.0713x faster math-spectral-norm 1.9377+-0.0416 ? 1.9602+-0.1397 ? 2.0427+-0.1656 1.9125+-0.0622 might be 1.0132x faster regexp-dna 6.3999+-1.0044 6.0369+-0.1126 ? 6.1108+-0.3615 ? 6.1691+-0.2085 might be 1.0374x faster string-base64 4.3101+-0.0718 ? 4.3868+-0.1615 4.3417+-0.1152 ? 4.5407+-0.5264 ? might be 1.0535x slower string-fasta 5.3610+-0.2860 ? 5.4854+-0.6229 5.2203+-0.0912 ? 5.3229+-0.1980 string-tagcloud 8.0385+-0.4025 7.9395+-0.1997 7.9065+-0.0420 ? 7.9573+-0.1214 might be 1.0102x faster string-unpack-code 17.6949+-1.2300 ? 18.1212+-0.7715 ? 18.1484+-0.5639 ? 18.1807+-1.5347 ? might be 1.0275x slower string-validate-input 4.1226+-0.0741 ? 4.1957+-0.0678 ? 4.2442+-0.0706 4.1733+-0.0484 ? might be 1.0123x slower <arithmetic> 4.3008+-0.0376 ? 4.3394+-0.0677 4.3357+-0.0559 4.3333+-0.0851 ? might be 1.0076x slower TipOfTree ExpSizeClasses DirectOldClasses IndirectOldClasses IndirectOldClasses v. TipOfTree Octane: encrypt 0.14540+-0.00374 ? 0.14796+-0.00397 0.14768+-0.00342 0.14755+-0.00302 ? might be 1.0148x slower decrypt 2.61147+-0.07250 ? 2.62061+-0.01689 ? 2.62201+-0.00775 ? 2.62537+-0.01012 ? deltablue x2 0.12297+-0.00258 ? 0.12660+-0.00287 ? 0.12811+-0.00391 0.12780+-0.00144 ! definitely 1.0393x slower earley 0.26887+-0.00113 ? 0.27137+-0.00249 ? 0.27357+-0.00492 0.27184+-0.00132 ! definitely 1.0111x slower boyer 4.61803+-0.18233 4.57228+-0.18381 ? 4.61550+-0.17271 4.60799+-0.16707 navier-stokes x2 4.59828+-0.03302 ? 4.60812+-0.02303 4.58978+-0.01544 ? 4.60754+-0.00971 ? raytrace x2 0.75081+-0.00875 0.74838+-0.00504 0.74761+-0.00500 ? 0.74823+-0.00658 richards x2 0.07631+-0.00227 0.07553+-0.00085 ? 0.07733+-0.00138 0.07680+-0.00093 ? splay x2 0.32254+-0.00181 ! 0.32819+-0.00279 ^ 0.31650+-0.00326 ? 0.31692+-0.00479 might be 1.0177x faster regexp x2 15.56761+-0.34274 ? 16.18753+-0.59306 ? 16.40115+-0.66024 ? 16.48602+-0.50356 ! definitely 1.0590x slower pdfjs x2 39.57508+-0.40768 ? 39.66896+-0.32532 39.43343+-0.49412 ? 40.15574+-0.48806 ? might be 1.0147x slower mandreel x2 39.69488+-0.46114 ? 39.86782+-0.37096 39.74301+-0.47906 ? 39.97507+-0.30770 ? gbemu x2 27.68700+-0.24353 ! 28.96460+-0.06953 ? 28.97904+-0.29675 ? 29.14228+-0.20618 ! definitely 1.0526x slower closure 0.45700+-0.00256 ? 0.46171+-0.00318 ? 0.46317+-0.00360 ? 0.46343+-0.00406 ? might be 1.0141x slower jquery 6.21000+-0.03053 ! 6.28359+-0.01969 ^ 6.22171+-0.03593 ? 6.24991+-0.06855 ? box2d x2 8.60905+-0.04744 ? 8.72229+-0.08093 ? 8.76527+-0.06503 8.73209+-0.07573 ? might be 1.0143x slower zlib x2 346.02143+-20.97996 ? 354.07517+-18.93867 ? 354.76976+-2.95834 344.07296+-16.38411 typescript x2 582.43848+-7.14311 ! 612.81498+-10.57648 595.84648+-6.68457 ? 600.65658+-4.14792 ! definitely 1.0313x slower <geometric> 4.75048+-0.02721 ! 4.82525+-0.01967 4.81979+-0.02503 ? 4.82098+-0.02027 ! definitely 1.0148x slower TipOfTree ExpSizeClasses DirectOldClasses IndirectOldClasses IndirectOldClasses v. TipOfTree Kraken: ai-astar 81.137+-0.550 ? 83.009+-3.126 82.492+-1.842 ? 82.988+-2.403 ? might be 1.0228x slower audio-beat-detection 36.287+-1.097 36.284+-0.227 ? 36.472+-0.527 36.026+-0.156 audio-dft 95.328+-2.642 95.294+-2.300 94.772+-2.513 94.685+-2.771 audio-fft 27.846+-0.152 ! 28.398+-0.245 ? 28.812+-1.496 28.360+-0.183 ! definitely 1.0185x slower audio-oscillator 45.312+-0.587 ? 45.377+-0.535 45.348+-1.938 ? 45.478+-1.709 ? imaging-darkroom 56.738+-0.148 ? 58.412+-2.030 56.628+-0.071 ? 56.746+-0.184 ? imaging-desaturate 41.020+-0.654 40.869+-0.325 ? 41.089+-0.370 ? 41.833+-2.558 ? might be 1.0198x slower imaging-gaussian-blur 56.816+-1.760 55.732+-2.005 ? 56.809+-1.715 56.146+-2.071 might be 1.0119x faster json-parse-financial 31.936+-1.092 ? 32.005+-0.914 ? 33.350+-1.700 31.656+-0.682 json-stringify-tinderbox 22.596+-2.495 20.895+-0.791 ? 21.714+-1.674 20.750+-1.329 might be 1.0889x faster stanford-crypto-aes 34.636+-0.556 ? 35.995+-1.244 ! 38.019+-0.398 ? 38.773+-2.096 ! definitely 1.1194x slower stanford-crypto-ccm 33.176+-1.515 ? 33.667+-2.683 ? 35.546+-2.020 ? 36.222+-3.999 ? might be 1.0918x slower stanford-crypto-pbkdf2 87.796+-1.531 ! 92.402+-1.060 92.372+-1.642 92.105+-1.090 ! definitely 1.0491x slower stanford-crypto-sha256-iterative 28.856+-0.766 ? 29.751+-0.757 29.508+-0.343 ? 30.146+-0.654 ? might be 1.0447x slower <arithmetic> 48.534+-0.394 ! 49.149+-0.216 ? 49.495+-0.404 49.422+-0.879 ? might be 1.0183x slower TipOfTree ExpSizeClasses DirectOldClasses IndirectOldClasses IndirectOldClasses v. TipOfTree Geomean of preferred means: <scaled-result> 9.9717+-0.0289 ! 10.0959+-0.0403 ? 10.1128+-0.0567 10.1066+-0.0993 ! definitely 1.0135x slower
I still need to measure the in-browser performance effect of this change. I still need to measure perf on ES6 benchmarks. Here are some things that I can try to improve the perf: - Find users of heapCell->heap()/vm() that can be changed to heapCell->markedBlock().heap()/vm(). - Make totally empty blocks available for reuse by any size class. - Enable some kind of allocator that doesn't sweep.
Created attachment 285481 [details] latest
Created attachment 285575 [details] started working on concurrent sweeper I think that if I can get the GC to sweep concurrently then this will resolve the perf problems.
I think that in addition to concurrent sweeping we want to add a bump allocator as well. The concurrent sweeper matches the incremental sweeper's algorithm, in the sense that it will free blocks that are completely empty. But that means that later, we will have to produce a new free list for the block. So, we probably want to move to a world where a freshly allocated block does not need to be swept. That means enabling a bump allocator. Weird.
Created attachment 285600 [details] concurrent sweeper compiles
Created attachment 285601 [details] latest before concurrent sweeper
Created attachment 285623 [details] concurrent sweeper just swept some things
Holy cow, the concurrent sweeper looks super promising! Speed-ups on raytrace and deltablue. But that's with block freeing totally disabled. Enabling it seems like a bad idea for perf, unless we add a bump allocator. Also, it looks like I need to make sure that the concurrent sweeper only uses one thread. There are still some bugs. I'll fix the bugs and then get back to: - Cap the number of threads that the concurrent sweeper uses. - Implement the bump allocator.
Created attachment 285625 [details] concurrent sweeper is becoming reliable Fixed a bunch of bugs from running JSC tests. I don't know yet if it passes all of them.
Looks like concurrent sweeping is having a decisively positive effect in Octane, but it still slows down some things. This is with the sweeper hacked to run only one thread and to avoid freeing blocks. We can turn freeing blocks on when if add a bump allocator, or if we make the sweeper free blocks only after they have sat around for a while. I'm hopeful that this will remove any slow-downs, because I think that the slow-downs are caused by the sweeper having to do work that potentially interferes with the mutator, in terms of both memory traffic and lock contention. Now I need to try the following things: - Play a bit more with some data gathering to see what is going on in regressed tests. For example, maybe it's just a matter of tuning how we deal with lock contention. - Implement a bump allocator that we will use when a block is completely empty. Optimize the sweeper for detecting completely free blocks.
Created attachment 285630 [details] concurrent sweeper is starting to look like a net win
Created attachment 285665 [details] started rewriting the allocator to use bump'n'pop Bump'n'pop better be awesome because the name is awesome.
Created attachment 285673 [details] bump'n'pop is written
Created attachment 285678 [details] bump'n'pop compiles!
Created attachment 285706 [details] bump'n'pop is starting to work!
Created attachment 285746 [details] bump'n'pop passes all tests Still need to measure perf.
Created attachment 285804 [details] bump'n'pop without concurrent sweep This looks like it's now neutral on Octane!! Yay! TipOfTree = unmodified r204218 Old = last version before concurrent sweeper BumpNPop, BumpNPop2 = this patch, in two different directories Note that I'm hitting the old pathology where regexp, jquery, and closure get different perf depending on the directory in which the VM was built. BumpNPop2 uses the same directory as TipOfTree to make sure that this effect is removed. Benchmark report for SunSpider, Octane, and Kraken on murderface (MacBookPro11,5). VMs tested: "TipOfTree" at /Volumes/Data/secondary/OpenSource/Baseline/WebKitBuild/Release/jsc "Old" at /Volumes/Data/quinary/OpenSource/WebKitBuild/Release/jsc (r204218) "BumpNPop" at /Volumes/Data/octonary/OpenSource/WebKitBuild/Release/jsc (r204218) "BumpNPop2" at /Volumes/Data/secondary/OpenSource/WebKitBuild/Release/jsc (r204218) Collected 6 samples per benchmark/VM, with 6 VM invocations per benchmark. Emitted a call to gc() between sample measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to get microsecond-level timing. Reporting benchmark execution times with 95% confidence intervals in milliseconds. TipOfTree Old BumpNPop BumpNPop2 BumpNPop2 v. TipOfTree SunSpider: 3d-cube 4.5102+-0.1487 ! 5.1216+-0.1353 ^ 4.5409+-0.2681 ? 4.8132+-0.3383 ? might be 1.0672x slower 3d-morph 4.6531+-0.0405 ? 4.6580+-0.1169 ? 4.7105+-0.1462 4.6780+-0.0363 ? 3d-raytrace 4.8856+-0.4038 4.8013+-0.3129 ? 4.8672+-0.2349 4.6500+-0.0510 might be 1.0507x faster access-binary-trees 1.9019+-0.0859 1.8678+-0.0294 ? 2.0153+-0.1667 1.9141+-0.0993 ? access-fannkuch 5.1544+-0.0678 ? 5.2241+-0.1810 ? 5.3591+-0.0703 5.3282+-0.3330 ? might be 1.0337x slower access-nbody 2.3298+-0.1685 2.3030+-0.0973 ? 2.4967+-0.1924 2.4193+-0.1989 ? might be 1.0384x slower access-nsieve 2.8919+-0.3141 2.8433+-0.1954 2.8297+-0.0276 ? 2.8945+-0.1341 ? bitops-3bit-bits-in-byte 1.0195+-0.0565 1.0182+-0.0473 ! 1.0917+-0.0133 1.0854+-0.0607 ? might be 1.0647x slower bitops-bits-in-byte 2.4639+-0.0438 2.4118+-0.0413 ? 2.5142+-0.0837 ? 2.6663+-0.2180 ? might be 1.0822x slower bitops-bitwise-and 1.8719+-0.0961 ? 1.8723+-0.0483 ? 1.9989+-0.2695 1.8975+-0.0175 ? might be 1.0137x slower bitops-nsieve-bits 2.9019+-0.0425 ? 2.9190+-0.0730 ? 2.9907+-0.0538 2.9573+-0.0126 ! definitely 1.0191x slower controlflow-recursive 2.1722+-0.0217 ? 2.1856+-0.0493 ? 2.2593+-0.0950 2.2550+-0.0831 ? might be 1.0381x slower crypto-aes 4.2222+-0.1356 4.1497+-0.0547 ? 4.2011+-0.0708 4.1461+-0.0305 might be 1.0184x faster crypto-md5 2.5133+-0.0402 ? 2.5187+-0.0173 ! 2.5992+-0.0468 2.5776+-0.0381 ? might be 1.0256x slower crypto-sha1 2.6084+-0.0417 ? 2.7385+-0.1625 2.6805+-0.0518 2.6449+-0.0745 ? might be 1.0140x slower date-format-tofte 6.1847+-0.4142 ? 6.4399+-0.1236 ? 6.7136+-0.1750 6.6706+-0.4083 ? might be 1.0786x slower date-format-xparb 4.6070+-0.2506 4.4371+-0.1492 4.4120+-0.0738 ? 4.4294+-0.1453 might be 1.0401x faster math-cordic 2.5641+-0.0689 ? 2.5730+-0.0916 ? 2.6283+-0.0221 ? 2.6530+-0.0511 ? might be 1.0347x slower math-partial-sums 3.7917+-0.1702 ? 3.8841+-0.2335 3.8498+-0.0766 ? 4.1337+-0.6499 ? might be 1.0902x slower math-spectral-norm 1.8965+-0.0226 ? 1.9354+-0.0990 ? 2.0190+-0.0574 1.9655+-0.0694 ? might be 1.0364x slower regexp-dna 6.0745+-0.1356 6.0070+-0.1102 ? 6.0284+-0.1866 ? 6.2696+-0.1622 ? might be 1.0321x slower string-base64 4.4771+-0.5307 4.2825+-0.0575 ? 4.5188+-0.2182 4.3438+-0.1063 might be 1.0307x faster string-fasta 5.1517+-0.1502 ? 5.2061+-0.0697 ? 5.3914+-0.1214 5.2718+-0.0423 ? might be 1.0233x slower string-tagcloud 7.8049+-0.0987 ? 7.9655+-0.1094 ? 8.3491+-0.4816 7.9033+-0.1583 ? might be 1.0126x slower string-unpack-code 17.8951+-1.3847 17.4709+-0.7121 ? 18.0605+-0.4680 17.9611+-0.7172 ? string-validate-input 4.1502+-0.1498 ? 4.1524+-0.0445 ? 4.2147+-0.1484 4.0361+-0.0911 might be 1.0283x faster <arithmetic> 4.2576+-0.0366 ? 4.2687+-0.0278 ! 4.3593+-0.0369 4.3294+-0.0566 ? might be 1.0169x slower TipOfTree Old BumpNPop BumpNPop2 BumpNPop2 v. TipOfTree Octane: encrypt 0.14476+-0.00328 ? 0.14661+-0.00274 ? 0.14866+-0.00384 ? 0.14970+-0.00429 ? might be 1.0341x slower decrypt 2.57430+-0.03647 ? 2.61699+-0.01619 2.60539+-0.02770 ? 2.60710+-0.01603 ? might be 1.0127x slower deltablue x2 0.12266+-0.00192 ? 0.12526+-0.00207 ^ 0.11981+-0.00228 0.11826+-0.00222 ^ definitely 1.0372x faster earley 0.26796+-0.00184 ? 0.27096+-0.00144 ^ 0.24341+-0.00150 ? 0.24515+-0.00246 ^ definitely 1.0930x faster boyer 4.60767+-0.13332 ? 4.62969+-0.17402 ^ 4.24718+-0.03132 ? 4.29252+-0.04687 ^ definitely 1.0734x faster navier-stokes x2 4.63936+-0.04316 4.60898+-0.02129 4.59540+-0.01736 4.59052+-0.01767 might be 1.0106x faster raytrace x2 0.75328+-0.00945 0.74596+-0.00391 ^ 0.68460+-0.00952 0.68253+-0.00399 ^ definitely 1.1037x faster richards x2 0.07667+-0.00097 ? 0.07772+-0.00111 ? 0.07792+-0.00181 0.07734+-0.00169 ? splay x2 0.32063+-0.00271 ! 0.32675+-0.00236 ? 0.32861+-0.00350 0.32777+-0.00377 ! definitely 1.0223x slower regexp x2 15.07482+-0.34836 ? 15.73560+-0.46811 ? 16.56263+-0.38962 15.64944+-0.82349 ? might be 1.0381x slower pdfjs x2 38.43163+-0.27050 ! 39.27510+-0.34859 ? 39.41035+-0.17664 39.29058+-0.44678 ! definitely 1.0223x slower mandreel x2 39.58686+-0.34236 39.57227+-0.37747 ? 39.63965+-0.52755 ? 39.80746+-0.36685 ? gbemu x2 27.45948+-0.12615 ! 28.79096+-0.08305 28.46024+-0.58094 27.92600+-0.20944 ! definitely 1.0170x slower closure 0.45384+-0.00254 ? 0.45704+-0.00190 ! 0.47016+-0.00170 ^ 0.45942+-0.00303 ! definitely 1.0123x slower jquery 6.13444+-0.04507 ! 6.24461+-0.04501 ! 6.40197+-0.03764 ^ 6.28301+-0.03553 ! definitely 1.0242x slower box2d x2 8.62802+-0.10037 ? 8.68864+-0.04338 8.68134+-0.04807 ^ 8.56835+-0.05126 zlib x2 345.31786+-10.89157 ? 346.37151+-4.46046 ? 353.48161+-4.17705 344.34608+-12.25836 typescript x2 574.15755+-8.85817 ! 595.70988+-8.14278 ? 609.29163+-6.17972 602.61056+-9.12053 ! definitely 1.0496x slower <geometric> 4.71940+-0.02306 ! 4.79255+-0.01553 ^ 4.75954+-0.01145 ^ 4.70871+-0.03242 might be 1.0023x faster TipOfTree Old BumpNPop BumpNPop2 BumpNPop2 v. TipOfTree Kraken: ai-astar 82.688+-2.239 81.205+-1.463 ! 91.049+-3.348 ? 92.126+-2.656 ! definitely 1.1141x slower audio-beat-detection 35.630+-0.101 ! 36.232+-0.257 ? 36.642+-1.233 36.340+-0.277 ! definitely 1.0199x slower audio-dft 96.561+-3.455 93.347+-2.870 ? 94.519+-4.170 92.440+-0.359 ^ definitely 1.0446x faster audio-fft 27.801+-0.252 ? 28.344+-0.666 28.194+-0.192 ? 28.910+-1.506 ? might be 1.0399x slower audio-oscillator 44.757+-0.505 ? 45.813+-2.004 45.081+-0.432 ? 45.304+-0.492 ? might be 1.0122x slower imaging-darkroom 56.623+-0.146 56.565+-0.190 56.531+-0.152 ? 57.403+-1.987 ? might be 1.0138x slower imaging-desaturate 40.912+-0.272 ? 42.097+-2.699 40.808+-0.549 40.582+-0.223 imaging-gaussian-blur 56.055+-3.222 ? 57.025+-0.132 55.727+-2.242 ? 56.284+-3.545 ? json-parse-financial 31.786+-1.434 31.654+-0.261 ? 31.848+-0.728 30.983+-0.576 might be 1.0259x faster json-stringify-tinderbox 20.884+-1.205 ? 22.496+-1.417 21.276+-1.426 ? 21.498+-2.061 ? might be 1.0294x slower stanford-crypto-aes 34.299+-0.295 ! 35.543+-0.256 ^ 34.797+-0.384 ? 35.664+-1.610 ? might be 1.0398x slower stanford-crypto-ccm 32.432+-0.341 ? 33.271+-1.802 33.055+-0.724 31.355+-2.422 might be 1.0343x faster stanford-crypto-pbkdf2 87.356+-0.796 ! 92.518+-2.405 ^ 89.131+-0.219 ? 89.162+-0.797 ! definitely 1.0207x slower stanford-crypto-sha256-iterative 28.321+-0.205 ! 29.007+-0.249 28.808+-0.142 ? 29.689+-1.990 ? might be 1.0483x slower <arithmetic> 48.293+-0.481 ? 48.937+-0.323 ? 49.105+-0.507 ? 49.124+-0.678 ? might be 1.0172x slower TipOfTree Old BumpNPop BumpNPop2 BumpNPop2 v. TipOfTree Geomean of preferred means: <scaled-result> 9.9002+-0.0668 ? 10.0038+-0.0400 ? 10.0622+-0.0436 10.0045+-0.0650 ? might be 1.0105x slower
Next steps: - Figure out the 10% ai-astar slow-down. This seems like something I could easily fix. It seems to be specific to bump'n'pop. It's probably FTL-related, since the slow-down goes away with FTL disabled. - Determine WTF is happening in SunSpider, and if it even matters when we run in browser. Probably 2d-cube regression is real but that's not enough to explain everything. - Run more benchmarks, like PLT, Speedometer, and ES6SampleBench. - Tighten up the FTL allocation paths. I think that we want the FTL allocation path to be a patchpoint. - Explore sweeping totally empty blocks eagerly, and having a fast block reuse path. - Maybe just finish eradicating copied space in this patch, since there's a chance that when we remove copying entirely, we'll get a bigger speed-up. - Look at larger marked blocks again. - Measure time spent in allocation slow paths in SunSpider. It would be great to know if the allocation time went up! Also measure the allocation time when we don't bottom out in the GC.
Created attachment 285893 [details] bump'n'pop neutral on Kraken
Created attachment 285935 [details] getting all of WK to build
Created attachment 285950 [details] da patch I'm hoping for a perfect score on EWS.
This patch modifies the JS builtins code generator. Please ensure that you have rebaselined any generator test results (i.e., by running `Tools/Scripts/run-builtins-generator-tests --reset-results`)
Attachment 285950 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:101: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8404: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8424: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:248: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:326: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/API/ObjCCallbackFunction.mm:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/ftl/FTLOutput.cpp:637: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2765: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2766: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/RegExpMatchesArray.h:73: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/FreeList.h:35: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/runtime/JSFunction.h:196: The parameter name "propertyName" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12910: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12925: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:45: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:346: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:480: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:494: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/PropertyTable.cpp:29: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/heap/ConservativeRoots.cpp:77: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:30: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 29 in 195 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 286010 [details] the patch Fix some build issues.
Created attachment 286011 [details] the patch More fixes.
I'm working with some rebase hell right now. Looks like stress/rest-parameter-many-arguments is failing.
(In reply to comment #86) > I'm working with some rebase hell right now. Looks like > stress/rest-parameter-many-arguments is failing. I think I fixed it. It was a genuine bug, not a rebase artifact.
Created attachment 286012 [details] the patch Rebased and fixed a problem with having a bad time that was revealed by debug testing.
Attachment 286012 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:101: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8435: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8455: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5411: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5426: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5429: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:247: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:325: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/API/ObjCCallbackFunction.mm:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/ftl/FTLOutput.cpp:637: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2761: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2762: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/RegExpMatchesArray.h:73: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5480: Multi line control clauses should use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5495: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5500: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5512: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/heap/FreeList.h:35: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/runtime/JSFunction.h:196: The parameter name "propertyName" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12910: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12925: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/CMakeLists.txt:449: Alphabetical sorting problem. "heap/FreeList.cpp" should be before "heap/FullGCActivityCallback.cpp". [list/order] [5] ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:45: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:349: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:483: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:497: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/PropertyTable.cpp:29: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/heap/ConservativeRoots.cpp:77: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:30: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 37 in 196 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 286013 [details] the patch More fixes.
Attachment 286013 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:101: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8435: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8455: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5411: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5426: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5429: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:247: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:325: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/API/ObjCCallbackFunction.mm:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/ftl/FTLOutput.cpp:637: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2761: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2762: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/RegExpMatchesArray.h:73: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5480: Multi line control clauses should use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5495: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5500: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5512: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/heap/FreeList.h:35: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/runtime/JSFunction.h:196: The parameter name "propertyName" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12910: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12925: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/CMakeLists.txt:449: Alphabetical sorting problem. "heap/FreeList.cpp" should be before "heap/FullGCActivityCallback.cpp". [list/order] [5] ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:45: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:349: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:483: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:497: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/PropertyTable.cpp:29: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/heap/ConservativeRoots.cpp:77: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:30: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 37 in 202 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 286014 [details] the patch More fixes.
Attachment 286014 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:101: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8435: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8455: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5411: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5426: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5429: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:247: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:325: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/API/ObjCCallbackFunction.mm:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/ftl/FTLOutput.cpp:637: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2761: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2762: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/RegExpMatchesArray.h:73: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5480: Multi line control clauses should use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5495: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5500: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5512: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/heap/FreeList.h:35: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/runtime/JSFunction.h:196: The parameter name "propertyName" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12910: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12925: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/CMakeLists.txt:449: Alphabetical sorting problem. "heap/FreeList.cpp" should be before "heap/FullGCActivityCallback.cpp". [list/order] [5] ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:45: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:349: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:483: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:497: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/PropertyTable.cpp:29: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/heap/ConservativeRoots.cpp:77: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:30: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 37 in 202 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 286015 [details] the patch More fixes.
Attachment 286015 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:101: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8435: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8455: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5411: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5426: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5429: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:247: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:325: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/API/ObjCCallbackFunction.mm:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/ftl/FTLOutput.cpp:637: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2761: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2762: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/RegExpMatchesArray.h:73: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5480: Multi line control clauses should use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5495: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5500: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5512: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/heap/FreeList.h:35: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/runtime/JSFunction.h:196: The parameter name "propertyName" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12910: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12925: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/CMakeLists.txt:449: Alphabetical sorting problem. "heap/FreeList.cpp" should be before "heap/FullGCActivityCallback.cpp". [list/order] [5] ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:45: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:349: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:483: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:497: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/PropertyTable.cpp:29: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/heap/ConservativeRoots.cpp:77: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:30: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 37 in 202 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 286016 [details] the patch More fixes!
Attachment 286016 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:101: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8435: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8455: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5411: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5426: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5429: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:247: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:325: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/API/ObjCCallbackFunction.mm:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/ftl/FTLOutput.cpp:637: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2761: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2762: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/RegExpMatchesArray.h:73: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5480: Multi line control clauses should use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5495: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5500: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5512: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/heap/FreeList.h:35: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/runtime/JSFunction.h:196: The parameter name "propertyName" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12910: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12925: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/CMakeLists.txt:449: Alphabetical sorting problem. "heap/FreeList.cpp" should be before "heap/FullGCActivityCallback.cpp". [list/order] [5] ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:45: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:349: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:483: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:497: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/PropertyTable.cpp:29: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/heap/ConservativeRoots.cpp:77: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:30: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 37 in 202 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 286017 [details] the patch More fixes!
Attachment 286017 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:101: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8435: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8455: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5411: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5426: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5429: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:247: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:325: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/API/ObjCCallbackFunction.mm:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/ftl/FTLOutput.cpp:637: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2761: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2762: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/RegExpMatchesArray.h:73: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5480: Multi line control clauses should use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5495: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5500: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5512: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/heap/FreeList.h:35: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/runtime/JSFunction.h:196: The parameter name "propertyName" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12910: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12925: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/CMakeLists.txt:449: Alphabetical sorting problem. "heap/FreeList.cpp" should be before "heap/FullGCActivityCallback.cpp". [list/order] [5] ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:45: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:349: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:483: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:497: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/PropertyTable.cpp:29: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/heap/ConservativeRoots.cpp:77: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:30: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 37 in 203 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 286033 [details] the patch More things.
Attachment 286033 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:101: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8435: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8455: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5411: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5426: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5429: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:247: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:325: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/API/ObjCCallbackFunction.mm:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5480: Multi line control clauses should use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5495: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5500: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5512: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/ftl/FTLOutput.cpp:637: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2761: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2762: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/bytecode/Opcode.h:58: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/RegExpMatchesArray.h:73: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/jit/JIT.h:52: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/parser/Nodes.h:43: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/heap/FreeList.h:35: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/runtime/JSFunction.h:196: The parameter name "propertyName" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12910: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12925: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/CallLinkInfo.h:48: The parameter name "opcodeID" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/CMakeLists.txt:449: Alphabetical sorting problem. "heap/FreeList.cpp" should be before "heap/FullGCActivityCallback.cpp". [list/order] [5] ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:45: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:349: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:483: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:497: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/PropertyTable.cpp:29: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/heap/ConservativeRoots.cpp:77: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:30: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 41 in 231 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 286034 [details] the patch
Attachment 286034 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:101: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8435: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8455: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5411: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5426: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5429: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:247: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:325: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/API/ObjCCallbackFunction.mm:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5480: Multi line control clauses should use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5495: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5500: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5512: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/ftl/FTLOutput.cpp:637: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2761: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2762: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/bytecode/Opcode.h:58: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/RegExpMatchesArray.h:73: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/jit/JIT.h:52: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/parser/Nodes.h:43: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/heap/FreeList.h:35: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/runtime/JSFunction.h:196: The parameter name "propertyName" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12910: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12925: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/CallLinkInfo.h:48: The parameter name "opcodeID" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/CMakeLists.txt:449: Alphabetical sorting problem. "heap/FreeList.cpp" should be before "heap/FullGCActivityCallback.cpp". [list/order] [5] ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:45: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:349: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:483: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:497: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/PropertyTable.cpp:29: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/heap/ConservativeRoots.cpp:77: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:30: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 41 in 233 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 286036 [details] the patch More fixes!
Attachment 286036 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:101: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8435: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8455: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5411: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5426: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5429: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:247: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:325: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/API/ObjCCallbackFunction.mm:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5480: Multi line control clauses should use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5495: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5500: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5512: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/ftl/FTLOutput.cpp:637: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2761: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2762: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/bytecode/Opcode.h:58: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/RegExpMatchesArray.h:73: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/jit/JIT.h:52: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/parser/Nodes.h:43: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/heap/FreeList.h:35: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/runtime/JSFunction.h:196: The parameter name "propertyName" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12910: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12925: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/CallLinkInfo.h:48: The parameter name "opcodeID" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/CMakeLists.txt:449: Alphabetical sorting problem. "heap/FreeList.cpp" should be before "heap/FullGCActivityCallback.cpp". [list/order] [5] ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:45: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:349: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:483: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:497: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/PropertyTable.cpp:29: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/heap/ConservativeRoots.cpp:77: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:30: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 41 in 234 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 286048 [details] the patch More fixes!
Attachment 286048 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:101: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8435: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8455: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5411: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5426: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5429: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:247: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:325: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/API/ObjCCallbackFunction.mm:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5480: Multi line control clauses should use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5495: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5500: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5512: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/ftl/FTLOutput.cpp:637: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2761: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2762: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/bytecode/Opcode.h:58: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/RegExpMatchesArray.h:73: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/jit/JIT.h:52: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/parser/Nodes.h:43: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/heap/FreeList.h:35: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/runtime/JSFunction.h:196: The parameter name "propertyName" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12910: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12925: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/CallLinkInfo.h:48: The parameter name "opcodeID" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/CMakeLists.txt:449: Alphabetical sorting problem. "heap/FreeList.cpp" should be before "heap/FullGCActivityCallback.cpp". [list/order] [5] ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:45: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:349: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:483: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:497: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/PropertyTable.cpp:29: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/heap/ConservativeRoots.cpp:77: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:30: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 41 in 239 files If any of these errors are false positives, please file a bug against check-webkit-style.
Man, it sure looks like Windows is still seeing Opcode.h from weird places. I'm taking more measures to make sure this won't happen. It's *really weird* when Opcode.h gets included all over the place because it means that its generated artifacts also have to be available to include.
Created attachment 286050 [details] the patch Making more changes to remove accidental inclusion of so much JSC stuff from outside JSC. I'd rather fix these issues as they arise rather than work around them.
Attachment 286050 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:101: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8435: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8455: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5411: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5426: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5429: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:247: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:325: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/API/ObjCCallbackFunction.mm:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5480: Multi line control clauses should use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5495: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5500: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5512: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/WTF/wtf/ScopedLambda.h:131: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:134: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:143: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:149: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/JavaScriptCore/ftl/FTLOutput.cpp:637: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:277: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:376: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/RegExpMatchesArray.h:73: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2761: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2762: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/jit/JIT.h:52: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/parser/Nodes.h:43: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/heap/FreeList.h:35: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/runtime/JSFunction.h:196: The parameter name "propertyName" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12910: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12925: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/CallLinkInfo.h:48: The parameter name "opcodeID" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/CMakeLists.txt:450: Alphabetical sorting problem. "heap/FreeList.cpp" should be before "heap/FullGCActivityCallback.cpp". [list/order] [5] ERROR: Source/JavaScriptCore/profiler/ProfilerBytecode.cpp:31: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:45: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:349: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:483: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:497: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/WebCore/bindings/js/JSDOMBinding.cpp:52: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/PropertyTable.cpp:29: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/heap/ConservativeRoots.cpp:78: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:30: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/bytecode/Opcode.h:58: Code inside a namespace should not be indented. [whitespace/indent] [4] Total errors found: 50 in 263 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 286063 [details] the patch
Attachment 286063 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:101: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8435: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8455: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5411: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5426: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5429: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:247: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:325: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/API/ObjCCallbackFunction.mm:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5480: Multi line control clauses should use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5495: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5500: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5512: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/WTF/wtf/ScopedLambda.h:131: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:134: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:143: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:149: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/JavaScriptCore/ftl/FTLOutput.cpp:637: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:277: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:376: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/RegExpMatchesArray.h:73: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2761: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2762: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/jit/JIT.h:52: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/parser/Nodes.h:43: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/heap/FreeList.h:35: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/runtime/JSFunction.h:196: The parameter name "propertyName" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12910: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12925: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/CallLinkInfo.h:48: The parameter name "opcodeID" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/CMakeLists.txt:450: Alphabetical sorting problem. "heap/FreeList.cpp" should be before "heap/FullGCActivityCallback.cpp". [list/order] [5] ERROR: Source/JavaScriptCore/profiler/ProfilerBytecode.cpp:31: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:45: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:349: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:483: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:497: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/WebCore/bindings/js/JSDOMBinding.cpp:52: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/PropertyTable.cpp:29: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/heap/ConservativeRoots.cpp:78: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:30: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/bytecode/Opcode.h:58: Code inside a namespace should not be indented. [whitespace/indent] [4] Total errors found: 50 in 263 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 286067 [details] the patch Rebased again.
Attachment 286067 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:101: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8435: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8455: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5411: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5426: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5429: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:247: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:325: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/API/ObjCCallbackFunction.mm:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5480: Multi line control clauses should use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5495: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5500: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5512: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/WTF/wtf/ScopedLambda.h:131: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:134: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:143: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:149: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/JavaScriptCore/ftl/FTLOutput.cpp:637: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:277: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:376: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/RegExpMatchesArray.h:73: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2761: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2762: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/jit/JIT.h:52: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/parser/Nodes.h:43: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/heap/FreeList.h:35: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/runtime/JSFunction.h:196: The parameter name "propertyName" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12910: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12925: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/CallLinkInfo.h:48: The parameter name "opcodeID" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/CMakeLists.txt:450: Alphabetical sorting problem. "heap/FreeList.cpp" should be before "heap/FullGCActivityCallback.cpp". [list/order] [5] ERROR: Source/JavaScriptCore/profiler/ProfilerBytecode.cpp:31: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:45: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:349: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:483: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:497: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/WebCore/bindings/js/JSDOMBinding.cpp:52: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/PropertyTable.cpp:29: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/heap/ConservativeRoots.cpp:78: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:30: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/bytecode/Opcode.h:58: Code inside a namespace should not be indented. [whitespace/indent] [4] Total errors found: 50 in 266 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 286069 [details] the patch
Attachment 286069 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:101: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8435: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8455: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5411: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5426: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5429: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:247: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:325: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/API/ObjCCallbackFunction.mm:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5480: Multi line control clauses should use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5495: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5500: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5512: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/WTF/wtf/ScopedLambda.h:131: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:134: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:143: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:149: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/JavaScriptCore/ftl/FTLOutput.cpp:637: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:277: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:376: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/RegExpMatchesArray.h:73: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2761: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2762: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/jit/JIT.h:52: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/parser/Nodes.h:43: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/heap/FreeList.h:35: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/runtime/JSFunction.h:196: The parameter name "propertyName" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12910: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12925: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/CallLinkInfo.h:48: The parameter name "opcodeID" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/CMakeLists.txt:450: Alphabetical sorting problem. "heap/FreeList.cpp" should be before "heap/FullGCActivityCallback.cpp". [list/order] [5] ERROR: Source/JavaScriptCore/profiler/ProfilerBytecode.cpp:31: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:45: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:349: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:483: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:497: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/WebCore/bindings/js/JSDOMBinding.cpp:52: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/PropertyTable.cpp:29: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/heap/ConservativeRoots.cpp:78: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:30: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/bytecode/Opcode.h:58: Code inside a namespace should not be indented. [whitespace/indent] [4] Total errors found: 50 in 266 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 286074 [details] the patch More fixes!
Attachment 286074 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:101: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8435: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8455: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5410: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5425: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5428: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:247: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:325: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/API/ObjCCallbackFunction.mm:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5479: Multi line control clauses should use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5494: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5499: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5511: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/WTF/wtf/ScopedLambda.h:131: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:134: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:143: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:149: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/JavaScriptCore/ftl/FTLOutput.cpp:637: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:277: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:376: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/RegExpMatchesArray.h:73: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2761: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2762: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/jit/JIT.h:52: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/parser/Nodes.h:43: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/heap/FreeList.h:35: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/runtime/JSFunction.h:196: The parameter name "propertyName" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12910: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12925: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/CallLinkInfo.h:48: The parameter name "opcodeID" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/CMakeLists.txt:450: Alphabetical sorting problem. "heap/FreeList.cpp" should be before "heap/FullGCActivityCallback.cpp". [list/order] [5] ERROR: Source/JavaScriptCore/profiler/ProfilerBytecode.cpp:31: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:45: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:349: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:483: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:497: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/WebCore/bindings/js/JSDOMBinding.cpp:52: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/PropertyTable.cpp:29: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/heap/ConservativeRoots.cpp:78: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:30: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/bytecode/Opcode.h:58: Code inside a namespace should not be indented. [whitespace/indent] [4] Total errors found: 50 in 267 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 286087 [details] the patch
Attachment 286087 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:101: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8435: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8455: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5410: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5425: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5428: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:247: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:325: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/API/ObjCCallbackFunction.mm:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5479: Multi line control clauses should use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5494: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5499: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5511: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/WTF/wtf/ScopedLambda.h:131: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:134: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:143: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:149: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/JavaScriptCore/ftl/FTLOutput.cpp:637: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:277: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:376: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/RegExpMatchesArray.h:73: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2761: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2762: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/jit/JIT.h:52: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/parser/Nodes.h:43: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/heap/FreeList.h:35: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/runtime/JSFunction.h:196: The parameter name "propertyName" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12910: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12925: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/CallLinkInfo.h:48: The parameter name "opcodeID" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/CMakeLists.txt:450: Alphabetical sorting problem. "heap/FreeList.cpp" should be before "heap/FullGCActivityCallback.cpp". [list/order] [5] ERROR: Source/JavaScriptCore/profiler/ProfilerBytecode.cpp:31: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:45: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:349: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:483: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:497: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/WebCore/bindings/js/JSDOMBinding.cpp:52: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/PropertyTable.cpp:29: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/heap/ConservativeRoots.cpp:78: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:30: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/bytecode/Opcode.h:58: Code inside a namespace should not be indented. [whitespace/indent] [4] Total errors found: 50 in 275 files If any of these errors are false positives, please file a bug against check-webkit-style.
Comment on attachment 286087 [details] the patch Oh no! This breaks Speedometer! I'm going to investigate this super-reproducible crash.
I've got a no-JIT crash in the EmberJS-TodoMVC test in Speedometer. Should be fun...
It happens even with bump disabled.
Comment on attachment 286087 [details] the patch View in context: https://bugs.webkit.org/attachment.cgi?id=286087&action=review I think it should be a priority to remove CopiedSpace soon -- both for the potential speedup you mention and to fight entropy and reduce technical debt. > Source/JavaScriptCore/ChangeLog:38 > + requested length can't just be fulfilled with the current allocation size. This safegoard safeguard > Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8494 > + DFG_ASSERT(m_graph, m_node, allocator); // It would be CRAZY if the class was too large! Since this is a function template, can we also static_assert that our size is smaller than the largest GC size? Might also be nice for allocateCell<T> to do the same, to validate our believe that no callee is a large object. > Source/JavaScriptCore/heap/MarkedSpace.cpp:247 > +void MarkedSpace::sweepABit() > +{ > + sweepLargeAllocations(); > +} I think it would be clearer to remove this function and call sweepLargeAllocations() directly. The point here is that large allocations are not recycled, so you have to sweep them manually. > Source/JavaScriptCore/runtime/AuxiliaryBarrier.h:34 > +// it, other than interpreting a falsish value as not need a barrier. It's OK to use this for either falsy not needing > Source/JavaScriptCore/runtime/AuxiliaryBarrierInlines.h:48 > +template<typename T> > +template<typename U> > +AuxiliaryBarrier<T>::AuxiliaryBarrier(VM& vm, JSCell* owner, U&& value) > +{ > + m_value = std::forward<U>(value); > + vm.heap.writeBarrier(owner); > +} > + > +template<typename T> > +template<typename U> > +void AuxiliaryBarrier<T>::set(VM& vm, JSCell* owner, U&& value) > +{ > + m_value = std::forward<U>(value); > + vm.heap.writeBarrier(owner); > +} I think you forgot the check for "falsy value not needing a barrier", no? > Source/JavaScriptCore/runtime/JSArray.cpp:48 > +#if 0 > +#define LOGIT() dataLog(RawPointer(this), ": ", WTF_PRETTY_FUNCTION, "\n"); > +#else > +#define LOGIT() do { } while(false) > +#endif This macro and its callers seem just below the threshold of something that should land. > Source/JavaScriptCore/runtime/Operations.h:209 > > +inline bool resetFreeCellsBadly() > +{ > + return !ASSERT_DISABLED || Options::resetFreeCellsBadly(); > +} > + > +inline void resetBadly(void* base, size_t size) > +{ > + for (size_t i = size / sizeof(EncodedJSValue); i--;) { > + static_cast<EncodedJSValue*>(base)[i] = JSValue::encode( > + bitwise_cast<JSCell*>(static_cast<intptr_t>(666 * 8))); > + } > +} Let's call this "scribbleFreeCells" because "badly" is vague and MallocScribble is a thing on Darwin. Can we use 0xbbadbeef since that's our ASSERT marker in other places?
Comment on attachment 286087 [details] the patch r- because of the crash, but I'm happy with this patch once the crash and comments are addressed.
(In reply to comment #124) > Comment on attachment 286087 [details] > the patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=286087&action=review > > I think it should be a priority to remove CopiedSpace soon -- both for the > potential speedup you mention and to fight entropy and reduce technical debt. > > > Source/JavaScriptCore/ChangeLog:38 > > + requested length can't just be fulfilled with the current allocation size. This safegoard > > safeguard > > > Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8494 > > + DFG_ASSERT(m_graph, m_node, allocator); // It would be CRAZY if the class was too large! > > Since this is a function template, can we also static_assert that our size > is smaller than the largest GC size? > > Might also be nice for allocateCell<T> to do the same, to validate our > believe that no callee is a large object. > > > Source/JavaScriptCore/heap/MarkedSpace.cpp:247 > > +void MarkedSpace::sweepABit() > > +{ > > + sweepLargeAllocations(); > > +} > > I think it would be clearer to remove this function and call > sweepLargeAllocations() directly. > > The point here is that large allocations are not recycled, so you have to > sweep them manually. > > > Source/JavaScriptCore/runtime/AuxiliaryBarrier.h:34 > > +// it, other than interpreting a falsish value as not need a barrier. It's OK to use this for either > > falsy > > not needing > > > Source/JavaScriptCore/runtime/AuxiliaryBarrierInlines.h:48 > > +template<typename T> > > +template<typename U> > > +AuxiliaryBarrier<T>::AuxiliaryBarrier(VM& vm, JSCell* owner, U&& value) > > +{ > > + m_value = std::forward<U>(value); > > + vm.heap.writeBarrier(owner); > > +} > > + > > +template<typename T> > > +template<typename U> > > +void AuxiliaryBarrier<T>::set(VM& vm, JSCell* owner, U&& value) > > +{ > > + m_value = std::forward<U>(value); > > + vm.heap.writeBarrier(owner); > > +} > > I think you forgot the check for "falsy value not needing a barrier", no? > > > Source/JavaScriptCore/runtime/JSArray.cpp:48 > > +#if 0 > > +#define LOGIT() dataLog(RawPointer(this), ": ", WTF_PRETTY_FUNCTION, "\n"); > > +#else > > +#define LOGIT() do { } while(false) > > +#endif > > This macro and its callers seem just below the threshold of something that > should land. > > > Source/JavaScriptCore/runtime/Operations.h:209 > > > > +inline bool resetFreeCellsBadly() > > +{ > > + return !ASSERT_DISABLED || Options::resetFreeCellsBadly(); > > +} > > + > > +inline void resetBadly(void* base, size_t size) > > +{ > > + for (size_t i = size / sizeof(EncodedJSValue); i--;) { > > + static_cast<EncodedJSValue*>(base)[i] = JSValue::encode( > > + bitwise_cast<JSCell*>(static_cast<intptr_t>(666 * 8))); > > + } > > +} > > Let's call this "scribbleFreeCells" because "badly" is vague and > MallocScribble is a thing on Darwin. > > Can we use 0xbbadbeef since that's our ASSERT marker in other places? Thanks for the feedback! All sounds sensible. I'll address it once I figure out the crash.
Still crashes with gengc disabled.
(In reply to comment #124) > > Source/JavaScriptCore/runtime/Operations.h:209 > > > > +inline bool resetFreeCellsBadly() > > +{ > > + return !ASSERT_DISABLED || Options::resetFreeCellsBadly(); > > +} > > + > > +inline void resetBadly(void* base, size_t size) > > +{ > > + for (size_t i = size / sizeof(EncodedJSValue); i--;) { > > + static_cast<EncodedJSValue*>(base)[i] = JSValue::encode( > > + bitwise_cast<JSCell*>(static_cast<intptr_t>(666 * 8))); > > + } > > +} > > Let's call this "scribbleFreeCells" because "badly" is vague and > MallocScribble is a thing on Darwin. > > Can we use 0xbbadbeef since that's our ASSERT marker in other places? Actually, I don't think we want to! 0xbbadbeef, and anything that ends in beef, will not pass the JSC cell check, since if the second-lowest bit (0x2) is set, then we assume that it might be a false-true-undefined-null value. We could do 0xbbadbeef * 16, aka 0xbbadbeef0, or even 0xbadbeef0. But on 32-bit, that could be an actual pointer value. That's sort of why I picked 666 * 8.
I found the bug. It's not a big deal: concatMemcpy was assuming it could memcpy from a Undecided array to a non-Undecided array, which doesn't actually work, since the Undecided array has garbage in it. This code just needed an extra check.
> > Can we use 0xbbadbeef since that's our ASSERT marker in other places? > > Actually, I don't think we want to! 0xbbadbeef, and anything that ends in > beef, will not pass the JSC cell check, since if the second-lowest bit (0x2) > is set, then we assume that it might be a false-true-undefined-null value. > > We could do 0xbbadbeef * 16, aka 0xbbadbeef0, or even 0xbadbeef0. But on > 32-bit, that could be an actual pointer value. That's sort of why I picked > 666 * 8. 0xbbadbeef0 and 0xbadbeef0 would be close enough to call out being ASSERT markers. 666 * 8 actually can be a pointer on Darwin since it's beyond the 4kB NULL page -- though both 666 * 8 and 0xbad????? are not pointers in practice on Darwin. I think the only guaranteed non-pointer on Darwin 32-bit is something like 0x00000bad, since that's in the unmapped NULL page. I suppose all our 0xbadbeef ASSERT markers have the potential to point to mapped memory and therefore not crash 100% -- but I think the value of consistency probably outweighs that small risk.
> I suppose all our 0xbadbeef ASSERT markers have the potential to point to > mapped memory and therefore not crash 100% -- but I think the value of > consistency probably outweighs that small risk. They follow on the assignment with a __builtin_trap() to be safe
(In reply to comment #130) > > > Can we use 0xbbadbeef since that's our ASSERT marker in other places? > > > > Actually, I don't think we want to! 0xbbadbeef, and anything that ends in > > beef, will not pass the JSC cell check, since if the second-lowest bit (0x2) > > is set, then we assume that it might be a false-true-undefined-null value. > > > > We could do 0xbbadbeef * 16, aka 0xbbadbeef0, or even 0xbadbeef0. But on > > 32-bit, that could be an actual pointer value. That's sort of why I picked > > 666 * 8. > > 0xbbadbeef0 and 0xbadbeef0 would be close enough to call out being ASSERT > markers. > > 666 * 8 actually can be a pointer on Darwin since it's beyond the 4kB NULL > page -- though both 666 * 8 and 0xbad????? are not pointers in practice on > Darwin. > > I think the only guaranteed non-pointer on Darwin 32-bit is something like > 0x00000bad, since that's in the unmapped NULL page. > > I suppose all our 0xbadbeef ASSERT markers have the potential to point to > mapped memory and therefore not crash 100% -- but I think the value of > consistency probably outweighs that small risk. I'll use 0xbadbeef0.
(In reply to comment #124) > Comment on attachment 286087 [details] > the patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=286087&action=review > > I think it should be a priority to remove CopiedSpace soon -- both for the > potential speedup you mention and to fight entropy and reduce technical debt. > > > Source/JavaScriptCore/ChangeLog:38 > > + requested length can't just be fulfilled with the current allocation size. This safegoard > > safeguard Fixed. > > > Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8494 > > + DFG_ASSERT(m_graph, m_node, allocator); // It would be CRAZY if the class was too large! > > Since this is a function template, can we also static_assert that our size > is smaller than the largest GC size? Can't do it. Notice that this function takes a dynamic size argument. > > Might also be nice for allocateCell<T> to do the same, to validate our > believe that no callee is a large object. > > > Source/JavaScriptCore/heap/MarkedSpace.cpp:247 > > +void MarkedSpace::sweepABit() > > +{ > > + sweepLargeAllocations(); > > +} > > I think it would be clearer to remove this function and call > sweepLargeAllocations() directly. > > The point here is that large allocations are not recycled, so you have to > sweep them manually. Fixed. > > > Source/JavaScriptCore/runtime/AuxiliaryBarrier.h:34 > > +// it, other than interpreting a falsish value as not need a barrier. It's OK to use this for either > > falsy > > not needing Fixed. > > > Source/JavaScriptCore/runtime/AuxiliaryBarrierInlines.h:48 > > +template<typename T> > > +template<typename U> > > +AuxiliaryBarrier<T>::AuxiliaryBarrier(VM& vm, JSCell* owner, U&& value) > > +{ > > + m_value = std::forward<U>(value); > > + vm.heap.writeBarrier(owner); > > +} > > + > > +template<typename T> > > +template<typename U> > > +void AuxiliaryBarrier<T>::set(VM& vm, JSCell* owner, U&& value) > > +{ > > + m_value = std::forward<U>(value); > > + vm.heap.writeBarrier(owner); > > +} > > I think you forgot the check for "falsy value not needing a barrier", no? Extra branch on the value versus extra branch on the owner. The comment about falsy values is in regards to the clear() method, which has no barrier. > > > Source/JavaScriptCore/runtime/JSArray.cpp:48 > > +#if 0 > > +#define LOGIT() dataLog(RawPointer(this), ": ", WTF_PRETTY_FUNCTION, "\n"); > > +#else > > +#define LOGIT() do { } while(false) > > +#endif > > This macro and its callers seem just below the threshold of something that > should land. I'll remove them. > > > Source/JavaScriptCore/runtime/Operations.h:209 > > > > +inline bool resetFreeCellsBadly() > > +{ > > + return !ASSERT_DISABLED || Options::resetFreeCellsBadly(); > > +} > > + > > +inline void resetBadly(void* base, size_t size) > > +{ > > + for (size_t i = size / sizeof(EncodedJSValue); i--;) { > > + static_cast<EncodedJSValue*>(base)[i] = JSValue::encode( > > + bitwise_cast<JSCell*>(static_cast<intptr_t>(666 * 8))); > > + } > > +} > > Let's call this "scribbleFreeCells" because "badly" is vague and > MallocScribble is a thing on Darwin. I called it scribble. > > Can we use 0xbbadbeef since that's our ASSERT marker in other places? I used 0xbadbeef0.
Created attachment 286195 [details] the patch Addresses review feedback, fixed the goofy Speedometer crash.
Comment on attachment 286195 [details] the patch No need for another review.
Created attachment 286196 [details] the patch Rebased.
Attachment 286196 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:101: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8435: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8455: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5418: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5433: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5436: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:248: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:326: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/API/ObjCCallbackFunction.mm:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5479: Multi line control clauses should use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5494: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5499: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5511: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/WTF/wtf/ScopedLambda.h:131: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:134: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:143: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:149: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/JavaScriptCore/ftl/FTLOutput.cpp:637: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:277: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:376: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/RegExpMatchesArray.h:73: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2761: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2762: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/jit/JIT.h:52: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/parser/Nodes.h:43: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/heap/FreeList.h:35: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/runtime/JSFunction.h:196: The parameter name "propertyName" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12952: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12967: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/CallLinkInfo.h:48: The parameter name "opcodeID" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/CMakeLists.txt:450: Alphabetical sorting problem. "heap/FreeList.cpp" should be before "heap/FullGCActivityCallback.cpp". [list/order] [5] ERROR: Source/JavaScriptCore/profiler/ProfilerBytecode.cpp:31: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:45: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:344: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:478: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:492: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/WebCore/bindings/js/JSDOMBinding.cpp:52: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/PropertyTable.cpp:29: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/heap/ConservativeRoots.cpp:78: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:30: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/bytecode/Opcode.h:58: Code inside a namespace should not be indented. [whitespace/indent] [4] Total errors found: 50 in 276 files If any of these errors are false positives, please file a bug against check-webkit-style.
(In reply to comment #124) > Comment on attachment 286087 [details] > the patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=286087&action=review > > I think it should be a priority to remove CopiedSpace soon -- both for the > potential speedup you mention and to fight entropy and reduce technical debt. I forgot to reply to this earlier. My plan is to do one patch per client of CopiedSpace. Next up are typed arrays. I started with butterflies because I knew they would be hardest, but it's still possible that the typed array patch will turn into another ordeal! ;-) The current list of clients is: enum CopyToken { TypedArrayVectorCopyToken, MapBackingStoreCopyToken, DirectArgumentsOverridesCopyToken };
Well it looks like I'm going to have more pain to deal with. The patch is a ~2% Speedometer regression. :-( It looks like I can get rid of some of that regression by enabling LargeAllocation for smaller sizes. I'm playing with that right now.
Created attachment 286351 [details] the patch Neutral JetStream, neutral Speedometer, progression on Octane, tiny regression on Kraken, big regression on SunSpider (5%).
Attachment 286351 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:101: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8438: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:8458: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5416: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5431: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5434: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:248: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedBlock.cpp:326: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/API/ObjCCallbackFunction.mm:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5477: Multi line control clauses should use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5492: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5497: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5509: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/WTF/wtf/ScopedLambda.h:131: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:134: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:143: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:149: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/JavaScriptCore/ftl/FTLOutput.cpp:637: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:277: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:376: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/RegExpMatchesArray.h:73: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2761: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2762: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/jit/JIT.h:52: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/parser/Nodes.h:43: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/heap/FreeList.h:35: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/runtime/JSFunction.h:196: The parameter name "propertyName" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12952: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/b3/testb3.cpp:12967: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/CallLinkInfo.h:48: The parameter name "opcodeID" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/CMakeLists.txt:450: Alphabetical sorting problem. "heap/FreeList.cpp" should be before "heap/FullGCActivityCallback.cpp". [list/order] [5] ERROR: Source/JavaScriptCore/profiler/ProfilerBytecode.cpp:31: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:45: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:365: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:499: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:513: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/WebCore/bindings/js/JSDOMBinding.cpp:52: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/PropertyTable.cpp:29: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/heap/ConservativeRoots.cpp:78: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:30: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/bytecode/Opcode.h:58: Code inside a namespace should not be indented. [whitespace/indent] [4] Total errors found: 50 in 276 files If any of these errors are false positives, please file a bug against check-webkit-style.
Comment on attachment 286351 [details] the patch This doesn't need another review.
Comment on attachment 286351 [details] the patch Attachment 286351 [details] did not pass mac-ews (mac): Output: http://webkit-queues.webkit.org/results/1890042 New failing tests: webgl/1.0.2/conformance/context/constants.html js/regress/lots-of-fields.html fast/workers/worker-terminate-forever.html fast/workers/worker-document-leak.html fast/canvas/webgl/constants.html fast/workers/dedicated-worker-lifecycle.html fast/workers/worker-lifecycle.html fast/workers/worker-close-more.html
Created attachment 286354 [details] Archive of layout-test-results from ews101 for mac-yosemite The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: ews101 Port: mac-yosemite Platform: Mac OS X 10.10.5
Comment on attachment 286351 [details] the patch Attachment 286351 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.webkit.org/results/1890046 New failing tests: webgl/1.0.2/conformance/context/constants.html js/regress/lots-of-fields.html fast/workers/worker-terminate-forever.html fast/workers/worker-document-leak.html fast/canvas/webgl/constants.html fast/workers/dedicated-worker-lifecycle.html fast/workers/worker-lifecycle.html fast/workers/worker-close-more.html
Created attachment 286356 [details] Archive of layout-test-results from ews105 for mac-yosemite-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: ews105 Port: mac-yosemite-wk2 Platform: Mac OS X 10.10.5
Comment on attachment 286351 [details] the patch Attachment 286351 [details] did not pass ios-sim-ews (ios-simulator-wk2): Output: http://webkit-queues.webkit.org/results/1890113 New failing tests: js/regress/lots-of-fields.html fast/workers/dedicated-worker-lifecycle.html
Created attachment 286359 [details] Archive of layout-test-results from ews123 for ios-simulator-elcapitan-wk2 The attached test failures were seen while running run-webkit-tests on the ios-sim-ews. Bot: ews123 Port: ios-simulator-elcapitan-wk2 Platform: Mac OS X 10.11.5
Comment on attachment 286351 [details] the patch Attachment 286351 [details] did not pass ios-sim-ews (ios-simulator-wk2): Output: http://webkit-queues.webkit.org/results/1890582 New failing tests: js/regress/lots-of-fields.html fast/workers/dedicated-worker-lifecycle.html
Created attachment 286362 [details] Archive of layout-test-results from ews124 for ios-simulator-elcapitan-wk2 The attached test failures were seen while running run-webkit-tests on the ios-sim-ews. Bot: ews124 Port: ios-simulator-elcapitan-wk2 Platform: Mac OS X 10.11.5
Created attachment 286617 [details] the patch Rebased again. I'm getting close to being able to land this. I still have to run PLT and membuster.
Attachment 286617 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5415: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5430: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5433: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/API/ObjCCallbackFunction.mm:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5476: Multi line control clauses should use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5491: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5496: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5508: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/WTF/wtf/ScopedLambda.h:131: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:134: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:143: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:149: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/JavaScriptCore/ftl/FTLOutput.cpp:637: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:277: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:376: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2761: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2762: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/jit/JIT.h:52: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/parser/Nodes.h:43: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/heap/FreeList.h:35: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/runtime/JSFunction.h:196: The parameter name "propertyName" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/bytecode/CallLinkInfo.h:48: The parameter name "opcodeID" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/CMakeLists.txt:449: Alphabetical sorting problem. "heap/FreeList.cpp" should be before "heap/FullGCActivityCallback.cpp". [list/order] [5] ERROR: Source/JavaScriptCore/profiler/ProfilerBytecode.cpp:31: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/WebCore/bindings/js/JSDOMBinding.cpp:51: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/PropertyTable.cpp:29: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:30: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/bytecode/Opcode.h:58: Code inside a namespace should not be indented. [whitespace/indent] [4] Total errors found: 37 in 275 files If any of these errors are false positives, please file a bug against check-webkit-style.
Comment on attachment 286617 [details] the patch Attachment 286617 [details] did not pass mac-ews (mac): Output: http://webkit-queues.webkit.org/results/1922936 New failing tests: fast/workers/worker-close-more.html fast/workers/worker-terminate-forever.html fast/workers/worker-document-leak.html fast/workers/dedicated-worker-lifecycle.html fast/workers/worker-lifecycle.html
Created attachment 286626 [details] Archive of layout-test-results from ews102 for mac-yosemite The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: ews102 Port: mac-yosemite Platform: Mac OS X 10.10.5
Comment on attachment 286617 [details] the patch Attachment 286617 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.webkit.org/results/1922944 New failing tests: fast/workers/worker-close-more.html fast/workers/worker-terminate-forever.html fast/workers/worker-document-leak.html fast/workers/dedicated-worker-lifecycle.html fast/workers/worker-lifecycle.html
Created attachment 286627 [details] Archive of layout-test-results from ews104 for mac-yosemite-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: ews104 Port: mac-yosemite-wk2 Platform: Mac OS X 10.10.5
Created attachment 286631 [details] the patch Added some fixes for finalizing large allocations. The last-minute change to reduce the large allocation threshold is still causing some fallout.
Attachment 286631 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5415: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5430: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5433: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/API/ObjCCallbackFunction.mm:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5488: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5493: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5505: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/WTF/wtf/ScopedLambda.h:131: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:134: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:143: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:149: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/JavaScriptCore/ftl/FTLOutput.cpp:637: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:277: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:376: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2761: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2762: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/jit/JIT.h:52: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/parser/Nodes.h:43: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/heap/FreeList.h:35: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/runtime/JSFunction.h:196: The parameter name "propertyName" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/bytecode/CallLinkInfo.h:48: The parameter name "opcodeID" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/CMakeLists.txt:449: Alphabetical sorting problem. "heap/FreeList.cpp" should be before "heap/FullGCActivityCallback.cpp". [list/order] [5] ERROR: Source/JavaScriptCore/profiler/ProfilerBytecode.cpp:31: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/WebCore/bindings/js/JSDOMBinding.cpp:51: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/PropertyTable.cpp:29: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:30: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/bytecode/Opcode.h:58: Code inside a namespace should not be indented. [whitespace/indent] [4] Total errors found: 36 in 275 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 286633 [details] the patch More fixes for large allocations.
Attachment 286633 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5415: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5430: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5433: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/API/ObjCCallbackFunction.mm:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5488: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5493: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5505: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/WTF/wtf/ScopedLambda.h:131: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:134: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:143: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:149: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/JavaScriptCore/ftl/FTLOutput.cpp:637: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:277: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:376: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2761: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2762: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/jit/JIT.h:52: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/parser/Nodes.h:43: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/heap/FreeList.h:35: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/runtime/JSFunction.h:196: The parameter name "propertyName" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/bytecode/CallLinkInfo.h:48: The parameter name "opcodeID" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/CMakeLists.txt:449: Alphabetical sorting problem. "heap/FreeList.cpp" should be before "heap/FullGCActivityCallback.cpp". [list/order] [5] ERROR: Source/JavaScriptCore/profiler/ProfilerBytecode.cpp:31: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/WebCore/bindings/js/JSDOMBinding.cpp:51: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/PropertyTable.cpp:29: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:30: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/bytecode/Opcode.h:58: Code inside a namespace should not be indented. [whitespace/indent] [4] Total errors found: 36 in 275 files If any of these errors are false positives, please file a bug against check-webkit-style.
Comment on attachment 286633 [details] the patch Attachment 286633 [details] did not pass mac-debug-ews (mac): Output: http://webkit-queues.webkit.org/results/1923524 Number of test failures exceeded the failure limit.
Created attachment 286640 [details] Archive of layout-test-results from ews112 for mac-yosemite The attached test failures were seen while running run-webkit-tests on the mac-debug-ews. Bot: ews112 Port: mac-yosemite Platform: Mac OS X 10.10.5
(In reply to comment #162) > Created attachment 286640 [details] > Archive of layout-test-results from ews112 for mac-yosemite > > The attached test failures were seen while running run-webkit-tests on the > mac-debug-ews. > Bot: ews112 Port: mac-yosemite Platform: Mac OS X 10.10.5 Fixed. UnlinkedCodeBlock was using MarkedBlock::blockFor().
Created attachment 286754 [details] patch for landing OMG everything looks so ready.
Attachment 286754 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/runtime/JSFunction.h:196: The parameter name "propertyName" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5399: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5414: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5417: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/API/ObjCCallbackFunction.mm:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5472: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5477: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5489: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/WTF/wtf/ScopedLambda.h:131: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:134: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:143: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:149: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/JavaScriptCore/ftl/FTLOutput.cpp:637: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:277: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:376: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2761: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2762: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/jit/JIT.h:52: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/parser/Nodes.h:43: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/heap/FreeList.h:35: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/bytecode/CallLinkInfo.h:48: The parameter name "opcodeID" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/CMakeLists.txt:449: Alphabetical sorting problem. "heap/FreeList.cpp" should be before "heap/FullGCActivityCallback.cpp". [list/order] [5] ERROR: Source/JavaScriptCore/profiler/ProfilerBytecode.cpp:31: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/WebCore/bindings/js/JSDOMBinding.cpp:51: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/PropertyTable.cpp:29: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:30: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/bytecode/Opcode.h:58: Code inside a namespace should not be indented. [whitespace/indent] [4] Total errors found: 36 in 275 files If any of these errors are false positives, please file a bug against check-webkit-style.
Landed in http://trac.webkit.org/changeset/204854
CLoop fix in http://trac.webkit.org/changeset/204856
Rolled out in https://trac.webkit.org/changeset/204912
It looks like the membuster regression was due to changing the blockSize to 16KB. I'm going to examine in greater detail what the performance is across a bunch of benchmarks with smaller block sizes. I'm going to try 16KB and 4KB. I also want to know: - What's the peak memory usage in Speedometer and JetStream with tip of tree and the various versions of this patch? - How much of the perf loss for smaller blockSize settings is because we no longer have the MarkedBlock cache? Maybe the differences in perf arise from bmalloc quirks that could be sidestepped if we allocated directly from the OS.
> - How much of the perf loss for smaller blockSize settings is because we no > longer have the MarkedBlock cache? Maybe the differences in perf arise from > bmalloc quirks that could be sidestepped if we allocated directly from the > OS. FWIW, at the time I removed the MarkedBlock cache, the result was perf-neutral. In bmalloc, all allocations <= 32kB allocate from a reasonably fast path. Perhaps smaller block sizes punish large-ish objects, since so few objects fit per block? If so, maybe we can get a speedup from variable block sizes. Or maybe smaller block sizes waste more space in the metadata region?
If the configuration that runs slower is the configuration that returns more memory to the OS, maybe it's the memory returning that causes the slowdown. You can test this theory by comparing (small blocks) vs (small blocks with bmalloc::Heap::scavenge() changed to do nothing). For example, if the concurrent scavenger runs too soon, even while the benchmark is still touching pages, maybe that's a slowdown, and 64kB blocks avoids the slowdown by making all the blocks unreclaimable.
(In reply to comment #170) > > - How much of the perf loss for smaller blockSize settings is because we no > > longer have the MarkedBlock cache? Maybe the differences in perf arise from > > bmalloc quirks that could be sidestepped if we allocated directly from the > > OS. > > FWIW, at the time I removed the MarkedBlock cache, the result was > perf-neutral. In bmalloc, all allocations <= 32kB allocate from a reasonably > fast path. Buy that's with CopiedSpace butterflies and CopiedSpace uses larger blocks. Also, I wonder what MarkedBlock::blockSize was back then. > > Perhaps smaller block sizes punish large-ish objects, since so few objects > fit per block? If so, maybe we can get a speedup from variable block sizes. All tested configurations have a large allocation cutoff at 400 bytes. > > Or maybe smaller block sizes waste more space in the metadata region? I did the math at some point at this seemed negligible. Also, smaller block sizes consistently yield lower memory usage. I'm seeing significant membusyer progressions from 4KB block sizes.
(In reply to comment #171) > If the configuration that runs slower is the configuration that returns more > memory to the OS, maybe it's the memory returning that causes the slowdown. > > You can test this theory by comparing (small blocks) vs (small blocks with > bmalloc::Heap::scavenge() changed to do nothing). > > For example, if the concurrent scavenger runs too soon, even while the > benchmark is still touching pages, maybe that's a slowdown, and 64kB blocks > avoids the slowdown by making all the blocks unreclaimable. I'm really sympathetic to using malloc under the collector. But if I start messing with the lifecycle of MarkedBlocks, I think we will want to go back to using PageAllocation or similar.
It looks like the problem is that clearing mark bits takes a *lot longer* when the blockSize is 4KB. Theories: - Clang appears to emit an actual call to memset (or a specialized friend, not sure yet) when 64KB, but emits an inline sled of stores when 4KB. Maybe the memset is doing non-temporal stores or some other optimization to amortize the cost? - Could be as simple as the bits being further apart. We could put the bits in a table on the side if we knew for sure that this was the problem. I think that other things may also be taking longer, but I haven't fully investigated those yet.
> I'm really sympathetic to using malloc under the collector. But if I start > messing with the lifecycle of MarkedBlocks, I think we will want to go back > to using PageAllocation or similar. Sure -- but even then, you'll want to know if returning memory to the OS is an important bottleneck, since you'll have to reproduce that behavior.
64bytes * 8bitsperbyte * 16bytesperatom = 8kB. So, any block size less than 8kB wastes part of the mark bit cache line.
Here's a basic stat that demonstrates the problem with small blockSizes: Time to full GC in Octane/splay with 64KB blocks: about 11ms. Time to walk all blocks to read their hasAnyMarked bit with 4KB blocks: about 4ms. This is why 4KB is slower. Basically any scan of the marked blocks takes a super long time. On the other hand, the "convergence" part of GC - where we do the bulk of our marking - still takes almost exactly the same amount of time as before.
(In reply to comment #177) > Here's a basic stat that demonstrates the problem with small blockSizes: > > Time to full GC in Octane/splay with 64KB blocks: about 11ms. > Time to walk all blocks to read their hasAnyMarked bit with 4KB blocks: > about 4ms. With 64KB blocks, this takes about 0.347162 ms. That's about right. 4ms * 4KB / 64KB = 0.25.
All of these problems happen when we enumerate over all MarkedBlocks, not when we find a MarkedBlock by way of some owning object - that part is just as fast with 4KB as 64KB. The solution is clear: move all, or almost all, of the MarkedBlock meta-data into a table on the side. MarkedBlock would no longer be a doubly-linked list node. That part probably contributes to the badness. MarkedBlocks would instead be listed in a Vector<> or similar. This Vector<> would not directly hold MarkedBlock*. Instead it would hold a MetaMarkedBlock, which would contain most of what MarkedBlock currently has in its header: the mark bits, the WeakSet, etc. MarkedBlock would have a pointer back to its MetaMarkedBlock. In this world, MarkedBlock would also have a direct pointer to VM, so that those queries can still be fast. This way, the random-access case of touching MarkedBlocks would be penalized by one indirection but in return it would get some locality. I think this will make no difference in that code, since that code is bottlenecked on function calls, some random checks, and a CAS. But the MarkedBlock scans would become a lot faster. Everything would be in one place!
Oh, and we should have a list of active WeakSets. Right now we pay a big price to walk all MarkedBlocks just to find the ones with WeakSets. That's silly! When a WeakSet becomes non-empty, it should shove itself into the global list of active WeakSets. That list can be pruned during collection. In splay, this would make a huge difference. We pay a big price for walking those MarkedBlocks to find WeakSets, even though there are only about 30 active WeakSets and over 50,000 blocks.
I've implemented a m_activeWeakSets vector. That speeds things up significantly. However, we still have the following problems: - Clearing mark bits takes a long time. - Snapshotting marked space takes a long time. I believe that snapshotting takes a long time because the way we find marked blocks is by traversing a doubly-linked list, which means that each step along the way is a TLB and cache miss, or even a page fault if we're under stress. All of this can be wished away if we store the meta-data for a MarkedBlock separately from the bock itself.
Unfortunately, accessing the mark bits via an indirection appears to be a 5% slow-down over base 4KB. It increases GC time significantly. So, I'm not sure we want this. I'm considering this approach: - MarkedBlock is split into "MarkedBlock" and "MarkedBlock::Meta". The block itself holds the mark bits, a version number, a pointer to the meta, a VM pointer, and the cells themselves. The meta holds all other information. We could put hasAnyMarked in either place, but maybe the block itself would be best. - We reset mark bits lazily. The first step of marking will be to compare the block's version to the current heap version. If different, perform the clearMarks step before proceeding. The use of data-on-the-side would speed up all block walks, which includes: - Block snapshotting. - Eden markbit clearing. The use of the version number would speed up full markbit clearing. Hopefully, by avoiding the pointer-chasing inherent in mark-bits-in-meta, this will not slow down marking as much.
Fantastic news! Adding a version check in testAndSetMarked is perf-neutral! I added a compare-branch in the testAndSetMarked path that does basically this: if (markedBlock->m_version != slotVisitor->m_version) callSlowPath(); We execute this on all paths leading into this code.
Created attachment 287135 [details] splitting MarkedBlock's meta-data out into a handle Work in progress.
Created attachment 287156 [details] I think that the versioning is done I haven't tried compiling it yet. It's a scary change!!
Created attachment 287159 [details] got some things to compile
Created attachment 287178 [details] it compiles!
Created attachment 287186 [details] compiles and passes some tests
(In reply to comment #183) > Fantastic news! Adding a version check in testAndSetMarked is perf-neutral! > > I added a compare-branch in the testAndSetMarked path that does basically > this: > > if (markedBlock->m_version != slotVisitor->m_version) > callSlowPath(); > > We execute this on all paths leading into this code. The crappy thing about this is that callSlowPath() needs to do locking, and the whole thingy needs a load-load fence: if (condition) slowPath() loadLoadFence() Otherwise, you get crazy race conditions. Hopefully this doesn't get in the way of perf. I'm still testing this code in Debug, so I don't have any perf data yet.
It looks like even with a log of hacks, the 4KB version of the code still underperforms the 64KB by a lot, especially on splay. I think I found one area that could be improved a ton. We spend a lot of time sweeping blocks that are 100% full! Probably, sweeping those blocks is much cheaper when the work is amortized. We can get around this by having the SlotVisitor track the number of objects marked in each block. When the count reaches a certain threshold, it can remove the block from the list of blocks that we would sweep.
(In reply to comment #190) > It looks like even with a log of hacks, the 4KB version of the code still > underperforms the 64KB by a lot, especially on splay. > > I think I found one area that could be improved a ton. We spend a lot of > time sweeping blocks that are 100% full! Probably, sweeping those blocks is > much cheaper when the work is amortized. > > We can get around this by having the SlotVisitor track the number of objects > marked in each block. When the count reaches a certain threshold, it can > remove the block from the list of blocks that we would sweep. And the obvious problem with this is that we'd now have two atomic memory operations in MarkedBlock, rather than just one. Ouch! We could actually make this count racy. This is intriguing. It would at worst undercount the population in the block, but with some useful rules: - If a block is empty then the count will definitely be zero. - If a block is non-empty then the count will definitely be non-zero. - The reported count for a non-empty block with N live objects will be between 1 and N, inclusive. This means that we can rely on the count to do what m_hasAnyMarked does currently and we can rely on it for retirement, without using any atomic operations. At worst, the count will be too low, causing us to not retire a block that we should have retired. That's totally fine!
Created attachment 287244 [details] even more things I said I would rewrite the GC. I didn't realize how true this statement would be.
Created attachment 287346 [details] sooooooper fast MarkedSpace This amends the code that previously landed with many optimizations to MarkedSpace. Basically, most of the GC is O(num MarkedBlocks). It's funny, and surprising, but true. Of course there is the actual marking phase, which is O(live objects). Usually, the marking phase is long compared to all of the O(num MarkedBlocks) phases, so you don't notice those other phases. Those per-block phases can become expensive because they mean cache+TLB misses on each block! In trunk, this isn't a problem, but moving butterflies into MarkedSpace increases the number of MarkedBlocks without increasing the number of objects. This led to slow-downs that I observed throughout the development of this patch, but that seemed to resolve themselves when I moved to 64KB MarkedBlocks. Of course, that all makes sense. CopiedBlocks were already 64KB. So although CopiedSpace has various algorithms that are O(num CopiedBlocks), you didn't notice it because there were 1/4 as many CopiedBlocks as MarkedBlocks per unit data. Moving that data into MarkedSpace meant quadrupling the amount of per-block overhead for that data. Obviously, benchmarks that allocated a lot of butterflies suffered as a result, but often got faster (due to other optimizations in this patch) if you switches to 64KB. Moving data from CopiedSpace into a super-optimized MarkedSpace is a speed-up when the number of blocks stays the same, but a slow-down when the number of blocks increases. This new patch attacks the problem of per-block costs directly, to enable us to use smaller blocks in MarkedSpace without nearly the same kinds of slow-downs. The optimizations are: - MarkedBlock meta-data is allocated on the side using fastMalloc, so that it can enjoy better cache locality with respect to other MarkedBlock meta-datas, to the extent that the malloc feels it's OK to do it. This makes looping over all MarkedBlocks about 2x faster. - We no longer loop over MarkedBlocks to get to WeakSets. We track the set of active WeakSets: those that have at least one Weak in them. In that set, we separately track those active WeakSets that belong to a MarkedBlock that may have new objects from those that don't. This enables super fast WeakSet scans. - We no longer do anything to clear mark bits! Holy cow! We used block the mark bits and block state behind a 64-bit version number. When the version is older than the current Heap version, we lazily clear the mark bits and set the block state to Marked. So, to clear all mark bits, we increment the version. This removes one of the block scans. - We no longer sort all marked blocks for snapshotting. We know which blocks are in the snapshot, so eden snapshotting only has to walk the blocks with new objects. - We no longer have to sweep retired blocks when allocating! Marking will now track the number of objects in a block on the fly, and when it saturates, it will retire the block. This was a big win because it's common to find a ton of blocks that are full or almost full. The allocator may end up spending lots of time just noting that the blocks are full. Remember, each block is a TLB miss and cache miss all the way to RAM! So, having the marker do it when it already had to touch the darn block for other reasons causes the VM to run faster. I haven't run all benchmarks, but on benchmarks like splay, this seems to basically run as fast as 64KB blocks in the previous patch while using 16KB blocks.
Created attachment 287454 [details] fixed a debug assert This is take #1 at fixing a debug assert. I got it wrong. I'll have a new patch shortly.
Created attachment 287458 [details] fixed the debug assert for real This contains the correct fix. The problem is that previously, we made sweep() put the block in the Marked state if it did not yield a free-list. I think I just did this to make it easier to retire the block. But this is wrong in case sweep() is called with non-null newlyAllocated, for example if we had done stopAllocating() to iterate the heap. In that case, if the sweep() puts the block in the Marked state then it had better preserve the newlyAllocated bits. But sweep() clears those bits. I probably could have fixed that, for example by not clearing the bits if we put the block in the Marked state, but that felt like too much crazy. Instead, I realized that MarkedAllocator should just call didConsumeFreeList() between sweep() and retire(), and if I do this, then I can make sweep() always put the block in the FreeListed state just like before. This felt like a smaller and safer change, so that's what this new version does.
Created attachment 287528 [details] pretty good patch It's still slower on Speedometer. It's still slower on Kraken. The Kraken regression is huge, so I'll investigate that first.
Created attachment 287538 [details] fixing the forgotten butterfly bug This is adding another change: fixing how we forget about a butterfly if it was allocated just before we took a slow path on cell allocation. I'm not done with it yet.
Created attachment 287552 [details] fixing the forgotten butterfly bug, passing tests
Created attachment 287595 [details] fast MarkedSpace might be complete
Created attachment 287629 [details] rebased with bugs This accidentally revealed a nasty object allocation sinking bug.
Created attachment 287660 [details] rebased patch
Attachment 287660 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/runtime/JSFunction.h:196: The parameter name "propertyName" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5367: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5383: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5401: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/API/ObjCCallbackFunction.mm:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/heap/Heap.cpp:797: This { should be at the end of the previous line [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5440: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5452: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5454: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:1760: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/ftl/FTLOutput.cpp:643: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:277: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:376: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2785: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2786: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/jit/JIT.h:52: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/parser/Nodes.h:43: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/heap/FreeList.h:35: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/bytecode/SuperSampler.cpp:55: This { should be at the end of the previous line [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/CallLinkInfo.h:48: The parameter name "opcodeID" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/CMakeLists.txt:451: Alphabetical sorting problem. "heap/FreeList.cpp" should be before "heap/FullGCActivityCallback.cpp". [list/order] [5] ERROR: Source/JavaScriptCore/heap/MarkedBlock.h:54: preprocessor directives (e.g., #ifdef, #define, #import) should never be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/heap/MarkedBlock.h:98: Should be indented on a separate line, with the colon or comma first on that line. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/profiler/ProfilerBytecode.cpp:31: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/WebCore/bindings/js/JSDOMBinding.cpp:51: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/PropertyTable.cpp:29: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:30: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/dfg/DFGCallArrayAllocatorSlowPathGenerator.h:89: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/bytecode/Opcode.h:58: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:131: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:134: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:143: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:149: Extra space before ( in function call [whitespace/parens] [4] Total errors found: 42 in 299 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 287666 [details] fixes
Attachment 287666 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/runtime/JSFunction.h:196: The parameter name "propertyName" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5367: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5383: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5401: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/API/ObjCCallbackFunction.mm:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/heap/Heap.cpp:797: This { should be at the end of the previous line [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5440: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5452: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5454: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:1760: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/ftl/FTLOutput.cpp:643: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:277: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:376: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2785: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2786: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/jit/JIT.h:52: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/parser/Nodes.h:43: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/heap/FreeList.h:35: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/bytecode/SuperSampler.cpp:55: This { should be at the end of the previous line [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/CallLinkInfo.h:48: The parameter name "opcodeID" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/CMakeLists.txt:451: Alphabetical sorting problem. "heap/FreeList.cpp" should be before "heap/FullGCActivityCallback.cpp". [list/order] [5] ERROR: Source/JavaScriptCore/heap/MarkedBlock.h:54: preprocessor directives (e.g., #ifdef, #define, #import) should never be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/heap/MarkedBlock.h:98: Should be indented on a separate line, with the colon or comma first on that line. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/profiler/ProfilerBytecode.cpp:31: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:47: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/WebCore/bindings/js/JSDOMBinding.cpp:51: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/PropertyTable.cpp:29: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:30: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/dfg/DFGCallArrayAllocatorSlowPathGenerator.h:89: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/bytecode/Opcode.h:58: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:131: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:134: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:143: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:149: Extra space before ( in function call [whitespace/parens] [4] Total errors found: 42 in 300 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 287718 [details] more
A lot of the performance pathologies that I'm still seeing seem to happen around phase-changes, where we may be switching from using one set of sizes to another. This is bad for our GC right now, since we only rebalance size classes under certain conditions. The next thing I'll try is some way of tracking the set of empty blocks and freeing them at end of GC. Maybe this will work well!
Created attachment 287723 [details] rebased again
Attachment 287723 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/runtime/JSFunction.h:196: The parameter name "propertyName" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5367: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5383: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5401: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/API/ObjCCallbackFunction.mm:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/heap/Heap.cpp:797: This { should be at the end of the previous line [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5440: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5452: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5454: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:1760: Should have a space between // and comment [whitespace/comments] [4] ERROR: Source/JavaScriptCore/ftl/FTLOutput.cpp:643: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:277: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:376: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:61: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2785: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2786: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/jit/JIT.h:52: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/parser/Nodes.h:43: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/heap/FreeList.h:35: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/bytecode/SuperSampler.cpp:55: This { should be at the end of the previous line [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/CallLinkInfo.h:48: The parameter name "opcodeID" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/CMakeLists.txt:451: Alphabetical sorting problem. "heap/FreeList.cpp" should be before "heap/FullGCActivityCallback.cpp". [list/order] [5] ERROR: Source/JavaScriptCore/heap/MarkedBlock.h:54: preprocessor directives (e.g., #ifdef, #define, #import) should never be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/heap/MarkedBlock.h:98: Should be indented on a separate line, with the colon or comma first on that line. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/profiler/ProfilerBytecode.cpp:31: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/JSArray.cpp:48: Missing space before ( in while( [whitespace/parens] [5] ERROR: Source/WebCore/bindings/js/JSDOMBinding.cpp:51: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:38: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:40: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:41: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:45: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:49: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:41: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:45: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:49: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:45: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:49: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:53: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:55: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:56: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:56: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/PropertyTable.cpp:29: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:30: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/dfg/DFGCallArrayAllocatorSlowPathGenerator.h:89: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/bytecode/Opcode.h:58: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:131: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:134: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:143: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:149: Extra space before ( in function call [whitespace/parens] [4] Total errors found: 56 in 300 files If any of these errors are false positives, please file a bug against check-webkit-style.
Comment on attachment 287723 [details] rebased again View in context: https://bugs.webkit.org/attachment.cgi?id=287723&action=review Made some comments on the Changelog. I'm going to start on the code. > Source/JavaScriptCore/ChangeLog:58 > + turn hyperbolic for large sizes. The size class configuration happens at VM start-up, so > + can be controlled with runtime options. I found that a base of 1.4 works pretty well. so can => so it can > Source/JavaScriptCore/ChangeLog:94 > + - Copied space uses 64KB blocks, while marked space used to use 16KB blocks. Allocating a lot > + of stuff in 16KB blocks was slower than allocating it in 64KB blocks because the GC had a > + log of per-block overhead. I removed this overhead. It's now 2x faster to scan all What was the cause of the overhead and what did you do to get rid of it, out of curiosity? > Source/JavaScriptCore/ChangeLog:99 > + bits because we now used versioned mark bits: to clear then, just increment the 64-bit used => use. > Source/JavaScriptCore/ChangeLog:102 > + the IncrementalSweeper's snapshot because blocks now known if they are in the snapshot. known => know. I'm not sure I totally follow this section. It feels a little like a brain dump.
I have another idea: what if there is some non-trivial cost that we pay for retirement during marking? There was with 4KB marked blocks. What if that is mostly due to the linked list logic, and the need to grab a lock? The cost here could be significant since we need to touch the two adjacent blocks in order to complete the linked-list removal, and then we need to touch one random block in the retired list. That's lots of spread-out memory! If so, we could change the MarkedBlock list into an array rather than a doubly-linked list. Since it has indices, we could use a bitvector to track "retirement". A block would be "retired" if it's free. In other words, the bitvector should probably have a 1 for blocks that are worth allocating in, and a 0 for those that don't qualify (too full or it's a free index). This would greatly simplify the retirement slow path logic. It may also speed up sweeping in general to have the MarkedBlocks in an array rather than linked together. This isn't totally guaranteed, since we load next() as we're sweeping the block, so the linked list logic during lazy sweep gets the benefit of free cache locality.
Comment on attachment 287723 [details] rebased again View in context: https://bugs.webkit.org/attachment.cgi?id=287723&action=review I'm about halfway through the patch, it looks good so far. I have some errands I need to run but I'll post the comments that I have for now. > Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:1761 > + //if (m_currentIndex == 225) > + // return false; delete plox. > Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5367 > + m_jit.move(TrustedImmPtr(0), storageGPR); > + Does this do anything? It looks like you just store to storageGPR in m_jit.emitAllocateVariableSized(). You do this in a bunch of places. > Source/JavaScriptCore/jit/AssemblyHelpers.h:1433 > + negPtr(resultGPR); Why not move 0? > Source/JavaScriptCore/jit/AssemblyHelpers.h:1437 > + addPtr(payloadEndAddr, resultGPR); Couldn't this just be a move? > Source/JavaScriptCore/jit/AssemblyHelpers.h:1440 > + loadPtr(payloadEndAddr, scratchGPR); > + addPtr(scratchGPR, resultGPR); Why does this load on non-x86 but not on x86?
Comment on attachment 287723 [details] rebased again View in context: https://bugs.webkit.org/attachment.cgi?id=287723&action=review r=me with some comments and a CMake build fix. I guess I read more of the interesting bits yesterday than I thought. I made comments on things that I thought seemed weird, if my comments are wrong feel free to ignore them. > Source/JavaScriptCore/runtime/JSObject.cpp:62 > +#if 0 > +#define LOGIT() dataLog(RawPointer(this), ": ", WTF_PRETTY_FUNCTION, "\n"); > +#else > +#define LOGIT() do { } while(false) > +#endif Maybe these LOGIT macros should be in a shared header somewhere?
(In reply to comment #209) > Comment on attachment 287723 [details] > rebased again > > View in context: > https://bugs.webkit.org/attachment.cgi?id=287723&action=review > > Made some comments on the Changelog. I'm going to start on the code. Thank you for looking at this huge patch! > > > Source/JavaScriptCore/ChangeLog:58 > > + turn hyperbolic for large sizes. The size class configuration happens at VM start-up, so > > + can be controlled with runtime options. I found that a base of 1.4 works pretty well. > > so can => so it can Today I learned that an ordinary Emacs search (Ctrl-S) for "so can" matches "so\n can". Fixed. > > > Source/JavaScriptCore/ChangeLog:94 > > + - Copied space uses 64KB blocks, while marked space used to use 16KB blocks. Allocating a lot > > + of stuff in 16KB blocks was slower than allocating it in 64KB blocks because the GC had a > > + log of per-block overhead. I removed this overhead. It's now 2x faster to scan all > > What was the cause of the overhead and what did you do to get rid of it, out > of curiosity? That's the rest of this paragraph. I changed "I removed this overhead." to "I removed this overhead:" to make this a little clearer. > > > Source/JavaScriptCore/ChangeLog:99 > > + bits because we now used versioned mark bits: to clear then, just increment the 64-bit > > used => use. Fixed. > > > Source/JavaScriptCore/ChangeLog:102 > > + the IncrementalSweeper's snapshot because blocks now known if they are in the snapshot. > > known => know. Fixed. > > I'm not sure I totally follow this section. It feels a little like a brain > dump. Each of those braindumpy sentences summarizes one of the optimizations towards removing the overhead of having many blocks.
(In reply to comment #210) > I have another idea: what if there is some non-trivial cost that we pay for > retirement during marking? There was with 4KB marked blocks. What if that > is mostly due to the linked list logic, and the need to grab a lock? The > cost here could be significant since we need to touch the two adjacent > blocks in order to complete the linked-list removal, and then we need to > touch one random block in the retired list. That's lots of spread-out > memory! > > If so, we could change the MarkedBlock list into an array rather than a > doubly-linked list. Since it has indices, we could use a bitvector to track > "retirement". A block would be "retired" if it's free. In other words, the > bitvector should probably have a 1 for blocks that are worth allocating in, > and a 0 for those that don't qualify (too full or it's a free index). > > This would greatly simplify the retirement slow path logic. > > It may also speed up sweeping in general to have the MarkedBlocks in an > array rather than linked together. This isn't totally guaranteed, since we > load next() as we're sweeping the block, so the linked list logic during > lazy sweep gets the benefit of free cache locality. I think that I don't need to do this in this patch, but I should do it in the future. Filed: https://bugs.webkit.org/show_bug.cgi?id=161581
(In reply to comment #211) > Comment on attachment 287723 [details] > rebased again > > View in context: > https://bugs.webkit.org/attachment.cgi?id=287723&action=review > > I'm about halfway through the patch, it looks good so far. I have some > errands I need to run but I'll post the comments that I have for now. > > > Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:1761 > > + //if (m_currentIndex == 225) > > + // return false; > > delete plox. Deleted. > > > Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5367 > > + m_jit.move(TrustedImmPtr(0), storageGPR); > > + > > Does this do anything? It looks like you just store to storageGPR in > m_jit.emitAllocateVariableSized(). You do this in a bunch of places. Yeah, this is part of avoiding forgetting successful butterfly allocations. The control flow here looks like this: void* storage = 0; if (!(storage = tryAllocateButterfly(...))) goto slow; void* result; if (!(result = tryAllocateObject(..., storage)) goto slow; goto done; slow: result = operationCreateNewThingy(storage); storage = result->butterfly; done: Notice that there are two jumps to the slow path, one where the storageGPR is zero, and another when it isn't. This lets the slow path know if we had already succeeded at allocating the butterfly. If we had (storage not null), then it will use that butterfly instead of wastefully allocating another one. If we hadn't (storage is null) then it will allocate one. Hence this move. > > > Source/JavaScriptCore/jit/AssemblyHelpers.h:1433 > > + negPtr(resultGPR); > > Why not move 0? Not the same thing. negPtr(resultGPR) means: resultGPR := -resultGPR > > > Source/JavaScriptCore/jit/AssemblyHelpers.h:1437 > > + addPtr(payloadEndAddr, resultGPR); > > Couldn't this just be a move? Not the same thing. This means: resultGPR := resultGPR + *(payloadEndAddr) So, combined with the statement above, we're doing: resultGPR := *(payloadEndAddr) - resultGPR > > > Source/JavaScriptCore/jit/AssemblyHelpers.h:1440 > > + loadPtr(payloadEndAddr, scratchGPR); > > + addPtr(scratchGPR, resultGPR); > > Why does this load on non-x86 but not on x86? The addPtr(payloadEndAddr, resultGPR) is a load. The load is part of the add. That's something that x86 can do but other instruction sets can't do. Since this code is meant to be used from B3 without blocking off scratch registers, the MacroAssembler's built-in emulation of addPtr(Address, RegisterID) will fail (it needs at least one scratch register). So, we side-step that emulation and do the load/add separately while using our own scratch register.
(In reply to comment #212) > Comment on attachment 287723 [details] > rebased again > > View in context: > https://bugs.webkit.org/attachment.cgi?id=287723&action=review > > r=me with some comments and a CMake build fix. I guess I read more of the > interesting bits yesterday than I thought. I made comments on things that I > thought seemed weird, if my comments are wrong feel free to ignore them. > > > Source/JavaScriptCore/runtime/JSObject.cpp:62 > > +#if 0 > > +#define LOGIT() dataLog(RawPointer(this), ": ", WTF_PRETTY_FUNCTION, "\n"); > > +#else > > +#define LOGIT() do { } while(false) > > +#endif > > Maybe these LOGIT macros should be in a shared header somewhere? I removed them! Geoff asked me to remove them, and I forgot. They were only useful during very early stages of testing this patch, so long ago that it feels like a century.
Created attachment 287928 [details] patch for landing It probably needs to be rebased, but this is pretty ready: - Neutral on membuster with 64% certainty. - Ever-so-tiny speed-up on PLT with 76% certainty. - Definite JetStream speed-up. - Slow-down on Kraken and Speedometer, which we've agreed to allow.
Attachment 287928 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/runtime/JSFunction.h:196: The parameter name "propertyName" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5367: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5383: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5401: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/API/ObjCCallbackFunction.mm:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/heap/Heap.cpp:797: This { should be at the end of the previous line [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5440: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5452: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5454: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/ftl/FTLOutput.cpp:643: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:277: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:376: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2775: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2776: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/jit/JIT.h:52: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/parser/Nodes.h:43: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/heap/FreeList.h:35: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/bytecode/SuperSampler.cpp:55: This { should be at the end of the previous line [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/CallLinkInfo.h:48: The parameter name "opcodeID" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/CMakeLists.txt:451: Alphabetical sorting problem. "heap/FreeList.cpp" should be before "heap/FullGCActivityCallback.cpp". [list/order] [5] ERROR: Source/JavaScriptCore/heap/MarkedBlock.h:54: preprocessor directives (e.g., #ifdef, #define, #import) should never be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/heap/MarkedBlock.h:98: Should be indented on a separate line, with the colon or comma first on that line. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/profiler/ProfilerBytecode.cpp:31: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/WebCore/bindings/js/JSDOMBinding.cpp:51: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:38: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:40: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:41: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:45: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:49: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:41: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:45: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:49: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:45: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:49: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:53: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:55: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:56: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:56: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/PropertyTable.cpp:29: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:30: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/dfg/DFGCallArrayAllocatorSlowPathGenerator.h:89: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/bytecode/Opcode.h:58: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:131: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:134: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:143: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:149: Extra space before ( in function call [whitespace/parens] [4] Total errors found: 53 in 301 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 287970 [details] patch for landing Fixed builds.
Attachment 287970 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/runtime/JSFunction.h:196: The parameter name "propertyName" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5367: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5383: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5401: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/API/ObjCCallbackFunction.mm:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/heap/Heap.cpp:797: This { should be at the end of the previous line [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5440: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5452: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5454: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/ftl/FTLOutput.cpp:643: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:277: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:376: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2775: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2776: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/jit/JIT.h:52: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/parser/Nodes.h:43: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/heap/FreeList.h:35: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/bytecode/SuperSampler.cpp:55: This { should be at the end of the previous line [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/CallLinkInfo.h:48: The parameter name "opcodeID" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/CMakeLists.txt:451: Alphabetical sorting problem. "heap/FreeList.cpp" should be before "heap/FullGCActivityCallback.cpp". [list/order] [5] ERROR: Source/JavaScriptCore/heap/MarkedBlock.h:54: preprocessor directives (e.g., #ifdef, #define, #import) should never be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/heap/MarkedBlock.h:98: Should be indented on a separate line, with the colon or comma first on that line. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/profiler/ProfilerBytecode.cpp:31: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/WebCore/bindings/js/JSDOMBinding.cpp:51: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:38: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:40: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:41: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:45: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:49: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:41: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:45: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:49: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:45: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:49: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:53: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:55: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:56: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:56: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/PropertyTable.cpp:29: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:30: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/dfg/DFGCallArrayAllocatorSlowPathGenerator.h:89: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/bytecode/Opcode.h:58: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:131: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:134: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:143: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:149: Extra space before ( in function call [whitespace/parens] [4] Total errors found: 53 in 301 files If any of these errors are false positives, please file a bug against check-webkit-style.
I'm just running through a bunch of tests. - I've run debug+release webkit tests. - I've run debug+release JSC tests. Now I'm running release asan tests. I still have to test 32-bit and ARM.
Created attachment 287982 [details] patch for landing Fixed more build issues.
Attachment 287982 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/runtime/JSFunction.h:196: The parameter name "propertyName" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5367: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5383: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5401: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/API/ObjCCallbackFunction.mm:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/heap/Heap.cpp:797: This { should be at the end of the previous line [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5440: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5452: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5454: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/ftl/FTLOutput.cpp:643: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:277: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:376: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2775: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2776: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/jit/JIT.h:52: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/parser/Nodes.h:43: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/heap/FreeList.h:35: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/bytecode/SuperSampler.cpp:55: This { should be at the end of the previous line [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/CallLinkInfo.h:48: The parameter name "opcodeID" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/CMakeLists.txt:451: Alphabetical sorting problem. "heap/FreeList.cpp" should be before "heap/FullGCActivityCallback.cpp". [list/order] [5] ERROR: Source/JavaScriptCore/heap/MarkedBlock.h:54: preprocessor directives (e.g., #ifdef, #define, #import) should never be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/heap/MarkedBlock.h:98: Should be indented on a separate line, with the colon or comma first on that line. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/profiler/ProfilerBytecode.cpp:31: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/WebCore/bindings/js/JSDOMBinding.cpp:51: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:38: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:40: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:41: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:45: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:49: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:41: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:45: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:49: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:45: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:49: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:53: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:55: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:56: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:56: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/PropertyTable.cpp:29: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:30: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/dfg/DFGCallArrayAllocatorSlowPathGenerator.h:89: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/bytecode/Opcode.h:58: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:131: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:134: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:143: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:149: Extra space before ( in function call [whitespace/parens] [4] Total errors found: 53 in 302 files If any of these errors are false positives, please file a bug against check-webkit-style.
Asan tests pass.
Comment on attachment 287982 [details] patch for landing Attachment 287982 [details] did not pass mac-debug-ews (mac): Output: http://webkit-queues.webkit.org/results/2014205 New failing tests: http/tests/security/contentSecurityPolicy/worker-csp-blocks-xhr-redirect-cross-origin.html
Created attachment 287985 [details] Archive of layout-test-results from ews116 for mac-yosemite The attached test failures were seen while running run-webkit-tests on the mac-debug-ews. Bot: ews116 Port: mac-yosemite Platform: Mac OS X 10.10.5
(In reply to comment #226) > Created attachment 287985 [details] > Archive of layout-test-results from ews116 for mac-yosemite > > The attached test failures were seen while running run-webkit-tests on the > mac-debug-ews. > Bot: ews116 Port: mac-yosemite Platform: Mac OS X 10.10.5 Does not look related at all: Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 com.apple.JavaScriptCore 0x00000001100096a7 WTFCrash + 39 1 com.apple.WebCore 0x0000000115b380be WebCore::FrameView::paintContents(WebCore::GraphicsContext&, WebCore::IntRect const&) + 462 (FrameView.cpp:4152) 2 com.apple.WebKitLegacy 0x000000011df0cf33 -[WebFrame(WebInternal) _drawRect:contentsOnly:] + 803
(In reply to comment #225) > Comment on attachment 287982 [details] > patch for landing > > Attachment 287982 [details] did not pass mac-debug-ews (mac): > Output: http://webkit-queues.webkit.org/results/2014205 > > New failing tests: > http/tests/security/contentSecurityPolicy/worker-csp-blocks-xhr-redirect- > cross-origin.html Also does not look related, the failure is this extra console message: CONSOLE MESSAGE: Origin http://127.0.0.1:8000 is not allowed by Access-Control-Allow-Origin.
Created attachment 287987 [details] patch for landing Rebased again. Hopefully the last time.
Attachment 287987 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/heap/HeapUtil.h:31: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:32: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:33: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:37: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:39: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/heap/HeapUtil.h:41: Should have only a single space after a punctuation in a comment. [whitespace/comments] [5] ERROR: Source/JavaScriptCore/runtime/JSFunction.h:196: The parameter name "propertyName" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5367: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5383: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:5401: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/API/ObjCCallbackFunction.mm:35: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/heap/Heap.cpp:797: This { should be at the end of the previous line [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5440: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5452: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:5454: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/ftl/FTLOutput.cpp:643: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:277: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:376: The parameter name "codeId" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2775: Declaration has space between type name and * in oldVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/runtime/JSObject.cpp:2776: Declaration has space between type name and * in newVectorLength * sizeof [whitespace/declaration] [3] ERROR: Source/JavaScriptCore/jit/JIT.h:52: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/parser/Nodes.h:43: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/heap/FreeList.h:35: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/bytecode/SuperSampler.cpp:55: This { should be at the end of the previous line [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/CallLinkInfo.h:48: The parameter name "opcodeID" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/CMakeLists.txt:451: Alphabetical sorting problem. "heap/FreeList.cpp" should be before "heap/FullGCActivityCallback.cpp". [list/order] [5] ERROR: Source/JavaScriptCore/heap/MarkedBlock.h:54: preprocessor directives (e.g., #ifdef, #define, #import) should never be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/heap/MarkedBlock.h:98: Should be indented on a separate line, with the colon or comma first on that line. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/profiler/ProfilerBytecode.cpp:31: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/WebCore/bindings/js/JSDOMBinding.cpp:51: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:38: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:40: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:41: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:45: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:49: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:41: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:45: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:49: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:45: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:49: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:53: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:55: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:56: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/ArrayConventions.cpp:56: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/runtime/PropertyTable.cpp:29: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:30: Alphabetical sorting problem. [build/include_order] [4] ERROR: Source/JavaScriptCore/dfg/DFGCallArrayAllocatorSlowPathGenerator.h:89: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/bytecode/Opcode.h:58: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:131: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:134: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:143: Extra space before ( in function call [whitespace/parens] [4] ERROR: Source/WTF/wtf/ScopedLambda.h:149: Extra space before ( in function call [whitespace/parens] [4] Total errors found: 53 in 302 files If any of these errors are false positives, please file a bug against check-webkit-style.
Landed! http://trac.webkit.org/changeset/205462
I think I fixed cloop build in r205463.
CC'ing Ryan for the many false positives. But looking at EWS machines, I see a number of flaky assertions that do seem to be caused by this change (and I couldn't quickly find the same on regular bots): Thread 10 Crashed:: WTF Parallel Helper Thread 0 com.apple.JavaScriptCore 0x00000001084676a7 WTFCrash + 39 1 com.apple.JavaScriptCore 0x0000000108070e92 JSC::MarkedBlock::flipIfNecessarySlow() + 114 2 com.apple.JavaScriptCore 0x0000000107648350 JSC::MarkedBlock::flipIfNecessary(unsigned long long) + 64 3 com.apple.JavaScriptCore 0x0000000107647ead JSC::Heap::isMarked(void const*) + 141 4 com.apple.JavaScriptCore 0x000000010766f105 JSC::CodeBlock::visitWeakly(JSC::SlotVisitor&) + 85 5 com.apple.JavaScriptCore 0x0000000107baa2f0 JSC::FunctionExecutable::visitChildren(JSC::JSCell*, JSC::SlotVisitor&) + 368 6 com.apple.JavaScriptCore 0x000000010827b04f JSC::SlotVisitor::visitChildren(JSC::JSCell const*) + 335 7 com.apple.JavaScriptCore 0x00000001082798e5 JSC::SlotVisitor::drain() + 229 8 com.apple.JavaScriptCore 0x0000000108279dc4 JSC::SlotVisitor::drainFromShared(JSC::SlotVisitor::SharedDrainMode) + 1124 9 com.apple.JavaScriptCore 0x0000000107cd243e JSC::Heap::markRoots(double, void*, void*, int (&) [37])::$_0::operator()() const + 734 10 com.apple.JavaScriptCore 0x0000000107cd212c WTF::SharedTaskFunctor<void (), JSC::Heap::markRoots(double, void*, void*, int (&) [37])::$_0>::run() + 28
(In reply to comment #233) > CC'ing Ryan for the many false positives. > > But looking at EWS machines, I see a number of flaky assertions that do seem > to be caused by this change (and I couldn't quickly find the same on regular > bots): > > Thread 10 Crashed:: WTF Parallel Helper Thread > 0 com.apple.JavaScriptCore 0x00000001084676a7 WTFCrash + 39 > 1 com.apple.JavaScriptCore 0x0000000108070e92 > JSC::MarkedBlock::flipIfNecessarySlow() + 114 > 2 com.apple.JavaScriptCore 0x0000000107648350 > JSC::MarkedBlock::flipIfNecessary(unsigned long long) + 64 > 3 com.apple.JavaScriptCore 0x0000000107647ead > JSC::Heap::isMarked(void const*) + 141 > 4 com.apple.JavaScriptCore 0x000000010766f105 > JSC::CodeBlock::visitWeakly(JSC::SlotVisitor&) + 85 > 5 com.apple.JavaScriptCore 0x0000000107baa2f0 > JSC::FunctionExecutable::visitChildren(JSC::JSCell*, JSC::SlotVisitor&) + 368 > 6 com.apple.JavaScriptCore 0x000000010827b04f > JSC::SlotVisitor::visitChildren(JSC::JSCell const*) + 335 > 7 com.apple.JavaScriptCore 0x00000001082798e5 > JSC::SlotVisitor::drain() + 229 > 8 com.apple.JavaScriptCore 0x0000000108279dc4 > JSC::SlotVisitor::drainFromShared(JSC::SlotVisitor::SharedDrainMode) + 1124 > 9 com.apple.JavaScriptCore 0x0000000107cd243e > JSC::Heap::markRoots(double, void*, void*, int (&) [37])::$_0::operator()() > const + 734 > 10 com.apple.JavaScriptCore 0x0000000107cd212c > WTF::SharedTaskFunctor<void (), JSC::Heap::markRoots(double, void*, void*, > int (&) [37])::$_0>::run() + 28 Whoa, where did you get this stack trace? :-) Was this from EWS running my patch for landing? It would be great if EWS made it easier to see crash logs! I know what is going wrong. I will post a fix shortly. Bug here: https://bugs.webkit.org/show_bug.cgi?id=161613
> Whoa, where did you get this stack trace? :-) I VNC'ed into a EWS bot to find some other crash, and saw this. It occurred a few minutes ago, so it was some new patch running into this crash after the patch was landed. Also, builtin generator test failure: https://build.webkit.org/builders/Apple%20Yosemite%20Release%20WK2%20%28Tests%29/builds/17636/steps/builtins-generator-tests/logs/stdio
(In reply to comment #235) > > Whoa, where did you get this stack trace? :-) > > I VNC'ed into a EWS bot to find some other crash, and saw this. It occurred > a few minutes ago, so it was some new patch running into this crash after > the patch was landed. > > Also, builtin generator test failure: > https://build.webkit.org/builders/ > Apple%20Yosemite%20Release%20WK2%20%28Tests%29/builds/17636/steps/builtins- > generator-tests/logs/stdio I'm on it.
(In reply to comment #236) > (In reply to comment #235) > > > Whoa, where did you get this stack trace? :-) > > > > I VNC'ed into a EWS bot to find some other crash, and saw this. It occurred > > a few minutes ago, so it was some new patch running into this crash after > > the patch was landed. > > > > Also, builtin generator test failure: > > https://build.webkit.org/builders/ > > Apple%20Yosemite%20Release%20WK2%20%28Tests%29/builds/17636/steps/builtins- > > generator-tests/logs/stdio > > I'm on it. Fixed in r205465.
(In reply to comment #234) > (In reply to comment #233) > > CC'ing Ryan for the many false positives. > > > > But looking at EWS machines, I see a number of flaky assertions that do seem > > to be caused by this change (and I couldn't quickly find the same on regular > > bots): > > > > Thread 10 Crashed:: WTF Parallel Helper Thread > > 0 com.apple.JavaScriptCore 0x00000001084676a7 WTFCrash + 39 > > 1 com.apple.JavaScriptCore 0x0000000108070e92 > > JSC::MarkedBlock::flipIfNecessarySlow() + 114 > > 2 com.apple.JavaScriptCore 0x0000000107648350 > > JSC::MarkedBlock::flipIfNecessary(unsigned long long) + 64 > > 3 com.apple.JavaScriptCore 0x0000000107647ead > > JSC::Heap::isMarked(void const*) + 141 > > 4 com.apple.JavaScriptCore 0x000000010766f105 > > JSC::CodeBlock::visitWeakly(JSC::SlotVisitor&) + 85 > > 5 com.apple.JavaScriptCore 0x0000000107baa2f0 > > JSC::FunctionExecutable::visitChildren(JSC::JSCell*, JSC::SlotVisitor&) + 368 > > 6 com.apple.JavaScriptCore 0x000000010827b04f > > JSC::SlotVisitor::visitChildren(JSC::JSCell const*) + 335 > > 7 com.apple.JavaScriptCore 0x00000001082798e5 > > JSC::SlotVisitor::drain() + 229 > > 8 com.apple.JavaScriptCore 0x0000000108279dc4 > > JSC::SlotVisitor::drainFromShared(JSC::SlotVisitor::SharedDrainMode) + 1124 > > 9 com.apple.JavaScriptCore 0x0000000107cd243e > > JSC::Heap::markRoots(double, void*, void*, int (&) [37])::$_0::operator()() > > const + 734 > > 10 com.apple.JavaScriptCore 0x0000000107cd212c > > WTF::SharedTaskFunctor<void (), JSC::Heap::markRoots(double, void*, void*, > > int (&) [37])::$_0>::run() + 28 > > Whoa, where did you get this stack trace? :-) Was this from EWS running my > patch for landing? It would be great if EWS made it easier to see crash > logs! > > I know what is going wrong. I will post a fix shortly. Bug here: > https://bugs.webkit.org/show_bug.cgi?id=161613 This should be fixed as of http://trac.webkit.org/changeset/205466
It triggered an huge amount of compiler warnings with GCC (all the same warning, being #included into a bunch of different source files): In file included from ../../Source/WTF/wtf/StdLibExtras.h:33:0, from ../../Source/WTF/wtf/FastMalloc.h:26, from ../../Source/JavaScriptCore/config.h:54, from ../../Source/JavaScriptCore/b3/B3EliminateCommonSubexpressions.cpp:26: ../../Source/JavaScriptCore/bytecode/Opcode.h:78:54: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits] #define VERIFY_OPCODE_ID(id, size) COMPILE_ASSERT(id <= numOpcodeIDs, ASSERT_THAT_JS_OPCODE_IDS_ARE_VALID); ../../Source/WTF/wtf/Assertions.h:366:50: note: in definition of macro ‘COMPILE_ASSERT’ #define COMPILE_ASSERT(exp, name) static_assert((exp), #name) ^~~ DerivedSources/JavaScriptCore/Bytecodes.h:33:5: note: in expansion of macro ‘VERIFY_OPCODE_ID’ macro(op_enter, 1) \ ^~~~~ ../../Source/JavaScriptCore/bytecode/Opcode.h:44:5: note: in expansion of macro ‘FOR_EACH_BYTECODE_ID’ FOR_EACH_BYTECODE_ID(macro) \ ^~~~~~~~~~~~~~~~~~~~ ../../Source/JavaScriptCore/bytecode/Opcode.h:51:5: note: in expansion of macro ‘FOR_EACH_CORE_OPCODE_ID_WITH_EXTENSION’ FOR_EACH_CORE_OPCODE_ID_WITH_EXTENSION( \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../Source/JavaScriptCore/bytecode/Opcode.h:79:5: note: in expansion of macro ‘FOR_EACH_OPCODE_ID’ FOR_EACH_OPCODE_ID(VERIFY_OPCODE_ID); ^~~~~~~~~~~~~~~~~~
It looks hard to fix. One option is to just silence the warning: #if COMPILER(GCC) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wtype-limits" #endif #define VERIFY_OPCODE_ID(id, size) COMPILE_ASSERT(id <= numOpcodeIDs, ASSERT_THAT_JS_OPCODE_IDS_ARE_VALID); FOR_EACH_OPCODE_ID(VERIFY_OPCODE_ID); #undef VERIFY_OPCODE_ID #if COMPILER(GCC) #pragma GCC diagnostic pop #endif That looks like a mess, but it works.
(In reply to comment #240) > It looks hard to fix. One option is to just silence the warning: > > #if COMPILER(GCC) > #pragma GCC diagnostic push > #pragma GCC diagnostic ignored "-Wtype-limits" > #endif > > #define VERIFY_OPCODE_ID(id, size) COMPILE_ASSERT(id <= numOpcodeIDs, > ASSERT_THAT_JS_OPCODE_IDS_ARE_VALID); > FOR_EACH_OPCODE_ID(VERIFY_OPCODE_ID); > #undef VERIFY_OPCODE_ID > > #if COMPILER(GCC) > #pragma GCC diagnostic pop > #endif > > That looks like a mess, but it works. This isn't bad at all. I think we want to keep the assertion but the presence of the assertion combined with the layout of opcodes guarantees that this assertion will cause the GCC warning. So, I think it makes sense to disable the warning like this. RS=me for this fix.
(In reply to comment #241) > This isn't bad at all. I think we want to keep the assertion but the > presence of the assertion combined with the layout of opcodes guarantees > that this assertion will cause the GCC warning. > > So, I think it makes sense to disable the warning like this. > > RS=me for this fix. OK then, it's certainly the easiest solution. http://trac.webkit.org/changeset/205477
<rdar://problem/30358070>