881a67c2941279c07463c782d5aa65e49e96d281: Bug 1504080 - Add Nursery::stats() r=jonco
Paul Bone <pbone@mozilla.com> - Thu, 01 Nov 2018 13:20:40 +1100 - rev 444540
Push 34997 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:59:47 +0000
Bug 1504080 - Add Nursery::stats() r=jonco Add a new function for a commonly accesses structure.
e160f0a60e4fc9cc6e77dd57644d74d4c6cc88dd: Merge autoland to mozilla-central. a=merge
Gurzau Raul <rgurzau@mozilla.com> - Tue, 06 Nov 2018 11:52:42 +0200 - rev 444539
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
Merge autoland to mozilla-central. a=merge
53647b724d3bbc77055bd9167fa125c5d52e4eda: Backed out changeset cdfaa36dcd55 (bug 1503536) for perma assertion failure at media/webrtc/MediaEngineWebRTCAudio.cpp a=backout
Gurzau Raul <rgurzau@mozilla.com> - Tue, 06 Nov 2018 11:51:57 +0200 - rev 444538
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
Backed out changeset cdfaa36dcd55 (bug 1503536) for perma assertion failure at media/webrtc/MediaEngineWebRTCAudio.cpp a=backout
b4e4e74aa3ccb6673df2a4b62249706e5999fcd6: Bug 1502786 - Break cycle between PureOmxPlatformLayer and OmxDataDecoder r=jya
Takuro Ashie <ashie@clear-code.com> - Tue, 06 Nov 2018 02:56:36 +0000 - rev 444537
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
Bug 1502786 - Break cycle between PureOmxPlatformLayer and OmxDataDecoder r=jya OmxDataDecoder, OmxPromiseLayer and PureOmxPlatformLayer consist circular reference by RefPtr, and no one sever the reference. As a result their refcount never decrease to 0. This commit sever it at PureOmxPlatformLayer::Shutdown() which is called by OmxDataDecoder. Differential Revision: https://phabricator.services.mozilla.com/D10028
b765559ddc3a9d0b54f3665de95407799e58e317: Backed out 5 changesets (bug 1456555) for reftests failuress on /reftests/svg/text/pattern-content.svg.
Brindusan Cristian <cbrindusan@mozilla.com> - Tue, 06 Nov 2018 07:39:19 +0200 - rev 444536
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
Backed out 5 changesets (bug 1456555) for reftests failuress on /reftests/svg/text/pattern-content.svg. Backed out changeset 0f2854553c21 (bug 1456555) Backed out changeset 5e3b20a19162 (bug 1456555) Backed out changeset 6cc965ecc095 (bug 1456555) Backed out changeset 595abbb5bf3e (bug 1456555) Backed out changeset c4df6309a5be (bug 1456555)
50f1edbfb52c2dd1e8074c29bf0d00c5ad08e2f7: Bug 1499507 - Allow the compiler to generate a non-atomic increment instruction for the stack pointer increment. r=njn
Markus Stange <mstange@themasta.com> - Tue, 06 Nov 2018 04:35:13 +0000 - rev 444535
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
Bug 1499507 - Allow the compiler to generate a non-atomic increment instruction for the stack pointer increment. r=njn This change reduces the binary size on macOS x64 by around 50KB. Here's a diff of the impact on the code generated for Attr_Binding::get_specified in the Mac build. It's a bit hard to read because %r12 and %rbx swap their function, but what happens in this method is that "movq %r12, %rcx" goes away, and the two instructions "leal 0x1(%r12) %eax" and "movl %eax, 0x10(%rbx)" turn into an "incl 0x10(%r12)". So the old code was preserving the original value of profilingStack->stackPointer in a register, and then using it later to compute the incremented stackPointer. The new code uses an "incl" instruction for the stackPointer increment and doesn't worry that the stackPointer value might have changed since the stack size check at the start of the function. (It can't have changed.) before: %rbx has the ProfilingStack*, %r12 has profilingStack->stackPointer after: %r12 has the ProfilingStack*, %rbx has profilingStack->stackPointer @@ -3,37 +3,35 @@ movq %rsp, %rbp pushq %r15 pushq %r14 pushq %r12 pushq %rbx subq $0x10, %rsp movq %rcx, %r14 movq %rdx, %r15 - movq 0x80(%rdi), %rbx - movq %rbx, -40(%rbp) - testq %rbx, %rbx + movq 0x80(%rdi), %r12 + movq %r12, -40(%rbp) + testq %r12, %r12 je loc_xxxxx - movl 0x10(%rbx), %r12d - cmpl (%rbx), %r12d + movl 0x10(%r12), %ebx + cmpl (%r12), %ebx jae loc_xxxxx - movq 0x8(%rbx), %rax - movq %r12, %rcx - shlq $0x5, %rcx - leaq aAttr, %rdx ; "Attr" - movq %rdx, (%rax,%rcx) - leaq aSpecified, %rdx ; "specified" - movq %rdx, 0x8(%rax,%rcx) - leaq -40(%rbp), %rdx - movq %rdx, 0x10(%rax,%rcx) - movl $0x3a1, 0x1c(%rax,%rcx) - leal 0x1(%r12), %eax - movl %eax, 0x10(%rbx) + movq 0x8(%r12), %rax + shlq $0x5, %rbx + leaq aAttr, %rcx ; "Attr" + movq %rcx, (%rax,%rbx) + leaq aSpecified, %rcx ; "specified" + movq %rcx, 0x8(%rax,%rbx) + leaq -40(%rbp), %rcx + movq %rcx, 0x10(%rax,%rbx) + movl $0x3a1, 0x1c(%rax,%rbx) + incl 0x10(%r12) movq %r15, %rdi call __ZNK7mozilla3dom4Attr9SpecifiedEv ; mozilla::dom::Attr::Specified() const movzxl %al, %eax movabsq $0xfff9000000000000, %rcx orq %rax, %rcx movq %rcx, (%r14) movq -40(%rbp), %rax @@ -47,11 +45,11 @@ popq %rbx popq %r12 popq %r14 popq %r15 popq %rbp ret ; endp - movq %rbx, %rdi + movq %r12, %rdi call __ZN14ProfilingStack18ensureCapacitySlowEv ; ProfilingStack::ensureCapacitySlow() jmp loc_xxxxx Depends on D9205 Differential Revision: https://phabricator.services.mozilla.com/D9206
5ec157cbbdd11c216e996e2cc763bd087620cb11: Bug 1499507 - Use AUTO_PROFILER_LABEL_DYNAMIC_FAST for WebIDL APIs. r=bzbarsky
Markus Stange <mstange@themasta.com> - Tue, 06 Nov 2018 04:34:58 +0000 - rev 444534
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
Bug 1499507 - Use AUTO_PROFILER_LABEL_DYNAMIC_FAST for WebIDL APIs. r=bzbarsky This means that our binary does not need to include concatenated strings such as "set CanvasRenderingContext2D.fillStyle". It only needs to contain the individual strings "CanvasRenderingContext2D" and "fillStyle" which are most likely already present in the binary. This change reduces the binary size on macOS x64 by around 200KB. Here's a diff of the impact on the code generated for Attr_Binding::get_specified in the Mac build. This change makes us generate slightly more code, which is very much offset by the reduction in the amount of strings we ship. @@ -15,22 +15,23 @@ movl 0x10(%rbx), %r12d cmpl (%rbx), %r12d jae loc_xxxxx movq 0x8(%rbx), %rax movq %r12, %rcx shlq $0x5, %rcx - leaq aGetAttrspecifi, %rdx ; "get Attr.specified" + leaq aAttr, %rdx ; "Attr" movq %rdx, (%rax,%rcx) - movq $0x0, 0x8(%rax,%rcx) + leaq aSpecified, %rdx ; "specified" + movq %rdx, 0x8(%rax,%rcx) leaq -40(%rbp), %rdx movq %rdx, 0x10(%rax,%rcx) - movl $0x71, 0x1c(%rax,%rcx) + movl $0x3a1, 0x1c(%rax,%rcx) leal 0x1(%r12), %eax movl %eax, 0x10(%rbx) movq %r15, %rdi call __ZNK7mozilla3dom4Attr9SpecifiedEv ; mozilla::dom::Attr::Specified() const movzxl %al, %eax movabsq $0xfff9000000000000, %rcx orq %rax, %rcx Depends on D9204 Differential Revision: https://phabricator.services.mozilla.com/D9205
408a37a9e42b9fa9d219641c240a6cc98e9ea756: Bug 1499507 - Add AUTO_PROFILER_LABEL_DYNAMIC_FAST which allows specifying flags. r=njn
Markus Stange <mstange@themasta.com> - Tue, 06 Nov 2018 04:33:45 +0000 - rev 444533
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
Bug 1499507 - Add AUTO_PROFILER_LABEL_DYNAMIC_FAST which allows specifying flags. r=njn Depends on D9203 Differential Revision: https://phabricator.services.mozilla.com/D9204
2bc3310f933cb414575ab76435e5e62e8d6fdb82: Bug 1499507 - Add ProfilingStackFrame flags for to choose the string template that is used to combine the label with the dynamic string. r=njn
Markus Stange <mstange@themasta.com> - Tue, 06 Nov 2018 04:33:07 +0000 - rev 444532
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
Bug 1499507 - Add ProfilingStackFrame flags for to choose the string template that is used to combine the label with the dynamic string. r=njn These flags will be used by WebIDL APIs in an upcoming patch. Depends on D9199 Differential Revision: https://phabricator.services.mozilla.com/D9203
be8a9a7f29bda128366fd1d08097fe34d8c717e2: Bug 1499507 - Convert the ProfilingStackFrame kind into a set of flags. r=njn
Markus Stange <mstange@themasta.com> - Tue, 06 Nov 2018 04:32:29 +0000 - rev 444531
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
Bug 1499507 - Convert the ProfilingStackFrame kind into a set of flags. r=njn This makes it easier to add more flags. Depends on D9197 Differential Revision: https://phabricator.services.mozilla.com/D9199
76602ccd5ca3063fbcdf1dd02f2df783265ba70e: Bug 1499507 - Use AppendPrintf to concatenate the label with the dynamic string. r=njn
Markus Stange <mstange@themasta.com> - Tue, 06 Nov 2018 04:31:45 +0000 - rev 444530
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
Bug 1499507 - Use AppendPrintf to concatenate the label with the dynamic string. r=njn This code is run during JSON serialization so performance is not a big concern. Depends on D9195 Differential Revision: https://phabricator.services.mozilla.com/D9197
cd066bdf78f52f98533d9866ddfd357d47f16f7f: Bug 1499507 - Don't collect line numbers for profiling stack frames. r=njn
Markus Stange <mstange@themasta.com> - Tue, 06 Nov 2018 04:31:02 +0000 - rev 444529
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
Bug 1499507 - Don't collect line numbers for profiling stack frames. r=njn They were not displayed in the UI, and the instructions to initialize the line field of a stack frame increased code size unnecessarily. This change reduces the binary size on Linux x64 by around 100KB. Here's a diff of the impact on the code generated for Attr_Binding::get_specified in the Mac build: @@ -20,17 +20,16 @@ movq 0x8(%rbx), %rax movq %r12, %rcx shlq $0x5, %rcx leaq aGetAttrspecifi, %rdx ; "get Attr.specified" movq %rdx, (%rax,%rcx) movq $0x0, 0x8(%rax,%rcx) leaq -40(%rbp), %rdx movq %rdx, 0x10(%rax,%rcx) - movl $0x106, 0x18(%rax,%rcx) movl $0x1c, 0x1c(%rax,%rcx) leal 0x1(%r12), %eax movl %eax, 0x10(%rbx) movq %r15, %rdi call __ZNK7mozilla3dom4Attr9SpecifiedEv ; mozilla::dom::Attr::Specified() const movzxl %al, %eax movabsq $0xfff9000000000000, %rcx Depends on D9193 Differential Revision: https://phabricator.services.mozilla.com/D9195
1f19af3b43746f48ca2d8351e60470dc1055f2d1: Bug 1499507 - Make ensureCapacitySlow infallible. r=emilio
Markus Stange <mstange@themasta.com> - Tue, 06 Nov 2018 04:30:13 +0000 - rev 444528
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
Bug 1499507 - Make ensureCapacitySlow infallible. r=emilio This eliminates a few instructions from each inlined instance of AutoProfilerLabel because we no longer need to handle allocation failure in the inlined code. I think this allocation should be fine to make infallible: The allocation size is limited by the thread's stack depth, and we only hit this code path when the stack is the deepest it's ever been during the thread's life time. This change reduces the binary size on Linux x64 by around 100KB. Here's a diff of the impact on the code generated for Attr_Binding::get_specified in the Mac build, it really just eliminates one test and one jump at the very end of the method: @@ -9,30 +9,29 @@ movq %rcx, %r14 movq %rdx, %r15 movq 0x80(%rdi), %rbx movq %rbx, -40(%rbp) testq %rbx, %rbx je loc_xxxxx movl 0x10(%rbx), %r12d - cmpl %r12d, (%rbx) - jbe loc_xxxxx + cmpl (%rbx), %r12d + jae loc_xxxxx movq 0x8(%rbx), %rax movq %r12, %rcx shlq $0x5, %rcx leaq aGetAttrspecifi, %rdx ; "get Attr.specified" movq %rdx, (%rax,%rcx) movq $0x0, 0x8(%rax,%rcx) leaq -40(%rbp), %rdx movq %rdx, 0x10(%rax,%rcx) movl $0x106, 0x18(%rax,%rcx) movl $0x1c, 0x1c(%rax,%rcx) - leal 0x1(%r12), %eax movl %eax, 0x10(%rbx) movq %r15, %rdi call __ZNK7mozilla3dom4Attr9SpecifiedEv ; mozilla::dom::Attr::Specified() const movzxl %al, %eax movabsq $0xfff9000000000000, %rcx orq %rax, %rcx @@ -50,12 +49,9 @@ popq %r14 popq %r15 popq %rbp ret ; endp movq %rbx, %rdi call __ZN14ProfilingStack18ensureCapacitySlowEv ; ProfilingStack::ensureCapacitySlow() - testb %al, %al - jne loc_xxxxx - jmp loc_xxxxx Depends on D9192 Differential Revision: https://phabricator.services.mozilla.com/D9193
18a8aa4a02c3bfd9b730bf7e338d2db361a01a6a: Bug 1499507 - Fold the 'profiler is active' check into the 'JSContext has a non-null PseudoStack' check. r=sfink
Markus Stange <mstange@themasta.com> - Tue, 06 Nov 2018 04:29:35 +0000 - rev 444527
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
Bug 1499507 - Fold the 'profiler is active' check into the 'JSContext has a non-null PseudoStack' check. r=sfink This eliminates a few instructions from every profiler label and saves code size. We have around 9000 WebIDL constructors + methods + getters + setters which all have an inlined instance of this code. This change reduces the binary size on Linux x64 by around 160KB. Here's a diff of the impact on the code generated for Attr_Binding::get_specified in the Mac build: movq %rsp, %rbp pushq %r15 pushq %r14 pushq %r12 pushq %rbx subq $0x10, %rsp movq %rcx, %r14 movq %rdx, %r15 - movq __ZN7mozilla8profiler6detail12RacyFeatures18sActiveAndFeaturesE@GOT, %rax ; __ZN7mozilla8profiler6detail12RacyFeatures18sActiveAndFeaturesE@GOT - movl (%rax), %eax - testl %eax, %eax - js loc_xxxxx - - movq $0x0, -40(%rbp) - jmp loc_xxxxx - - movq 0x78(%rdi), %rbx + movq 0x80(%rdi), %rbx movq %rbx, -40(%rbp) testq %rbx, %rbx je loc_xxxxx movl 0x10(%rbx), %r12d cmpl %r12d, (%rbx) jbe loc_xxxxx Differential Revision: https://phabricator.services.mozilla.com/D9192
e63ddbf2a29063f16922c6bd835fe716b8c9c10a: Bug 1501261 - Part 2: Serialize `background-size: auto auto` as "auto" r=firefox-style-system-reviewers,emilio
Cameron McCormack <cam@mcc.id.au> - Mon, 05 Nov 2018 02:21:41 +0000 - rev 444526
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
Bug 1501261 - Part 2: Serialize `background-size: auto auto` as "auto" r=firefox-style-system-reviewers,emilio With this change, all of Chrome, Edge, Firefox, and Safari serialize background-size by omitting the second "auto" if the value is "auto auto". Other keywords are still repeated. Depends on D10445 Differential Revision: https://phabricator.services.mozilla.com/D10446
4a37e18c3d3ca03ace2e543d843929db3aa3d267: Bug 1501261 - Part 1: Use Servo to serialize border-image-repeat r=firefox-style-system-reviewers,emilio
Cameron McCormack <cam@mcc.id.au> - Mon, 05 Nov 2018 02:21:39 +0000 - rev 444525
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
Bug 1501261 - Part 1: Use Servo to serialize border-image-repeat r=firefox-style-system-reviewers,emilio With this change, all of Chrome, Edge, Firefox, and Safari serialize border-image-repeat by omitting a repeated keyword, so we update a WPT that was expecting duplicated keywords. Differential Revision: https://phabricator.services.mozilla.com/D10445
0f2854553c211d9046d7c4161a696cdd6386185a: Bug 1456555 - Enable tiled blobs. r=Gankro
Matt Woodrow <mwoodrow@mozilla.com> - Tue, 06 Nov 2018 03:12:53 +0000 - rev 444524
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
Bug 1456555 - Enable tiled blobs. r=Gankro MozReview-Commit-ID: JRpQ5nVFx0r Depends on D10043 Differential Revision: https://phabricator.services.mozilla.com/D10044
5e3b20a1916210c1a6b80145ffa541355bd14cf5: Bug 1456555 - Deal with clipped containers being smaller than their contents during blob building. r=Gankro
Matt Woodrow <mwoodrow@mozilla.com> - Tue, 06 Nov 2018 03:12:25 +0000 - rev 444523
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
Bug 1456555 - Deal with clipped containers being smaller than their contents during blob building. r=Gankro MozReview-Commit-ID: I0tc6l84NRa Depends on D10041 Differential Revision: https://phabricator.services.mozilla.com/D10043
6cc965ecc095884493be180447436aa038d757ca: Bug 1456555 - Fix SourceSurface offset handling in DTSkia::PushLayer. r=lsalzman
Matt Woodrow <mwoodrow@mozilla.com> - Tue, 06 Nov 2018 03:12:18 +0000 - rev 444522
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
Bug 1456555 - Fix SourceSurface offset handling in DTSkia::PushLayer. r=lsalzman This got added in bug 1429508 and then removed in bug 1451845. Tiled blobs adds tests for this, so it shouldn't break again. MozReview-Commit-ID: 3azL7SoWlr2 Depends on D10038 Differential Revision: https://phabricator.services.mozilla.com/D10041
595abbb5bf3e172e1f1fda63a29a612b2b27751d: Bug 1456555 - Support Map on multiple threads. r=rhunt
Matt Woodrow <mwoodrow@mozilla.com> - Tue, 06 Nov 2018 03:12:16 +0000 - rev 444521
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
Bug 1456555 - Support Map on multiple threads. r=rhunt This just makes the existing hack available to all DataSourceSurface implementations by default, since we use different ones with WR. MozReview-Commit-ID: GVR0rIx8wtD Depends on D10036 Differential Revision: https://phabricator.services.mozilla.com/D10038
(0) -300000 -100000 -30000 -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 +30000 +100000 tip