09df5390e2fb01be435bf72a8c8e1c1948e45f62: Bug 916972 - Eliminate nsIFrame::GetSplittableType() completely. r=mats,dholbert
Ting-Yu Lin <tlin@mozilla.com> - Mon, 05 Nov 2018 19:11:12 +0000 - rev 444456
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
Bug 916972 - Eliminate nsIFrame::GetSplittableType() completely. r=mats,dholbert Currently, GetSplittableType() is called only in nsCSSFrameConstructor::CreateContinuingFrame(). The splittable concrete frames should inherit from nsSplittableFrame, and must explicitly create continuing frame in CreateContinuingFrame(). Thus, no need to maintain GetSplittableType(). Differential Revision: https://phabricator.services.mozilla.com/D10798
541186291b888899e895b8aa92d3823cf3475905: Bug 1499507 - Allow the compiler to generate a non-atomic increment instruction for the stack pointer increment. r=njn
Markus Stange <mstange@themasta.com> - Mon, 05 Nov 2018 19:12:38 +0000 - rev 444455
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
8a3f4acbad3b6b573330a785e5a0e8a1c95f17bb: Bug 1499507 - Use AUTO_PROFILER_DYNAMIC_FAST for WebIDL APIs. r=bzbarsky
Markus Stange <mstange@themasta.com> - Mon, 05 Nov 2018 19:11:46 +0000 - rev 444454
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
Bug 1499507 - Use AUTO_PROFILER_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
f427afc392b07914bf0d46635c6e6b39501613c7: Bug 1499507 - Add AUTO_PROFILER_LABEL_DYNAMIC_FAST which allows specifying flags. r=njn
Markus Stange <mstange@themasta.com> - Mon, 05 Nov 2018 19:10:57 +0000 - rev 444453
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
58dc19fb2b76c829104030ee5414ec83373d32a8: 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> - Mon, 05 Nov 2018 19:10:12 +0000 - rev 444452
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
9225e9aea37715f55aa76e1fcf20c70bfc46d0ef: Bug 1499507 - Convert the ProfilingStackFrame kind into a set of flags. r=njn
Markus Stange <mstange@themasta.com> - Mon, 05 Nov 2018 19:09:21 +0000 - rev 444451
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
ca23a517da632d88c47cb8a0a351a63ad36595f9: Bug 1499507 - Use AppendPrintf to concatenate the label with the dynamic string. r=njn
Markus Stange <mstange@themasta.com> - Mon, 05 Nov 2018 19:08:49 +0000 - rev 444450
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
16d6c90333de0a829854f0d381a93fbbf36cf94f: Bug 1499507 - Don't collect line numbers for profiling stack frames. r=njn
Markus Stange <mstange@themasta.com> - Mon, 05 Nov 2018 19:07:45 +0000 - rev 444449
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
bc134fe1722a5fee0ba7f3e663ef26c7c629ad65: Bug 1499507 - Make ensureCapacitySlow infallible. r=emilio
Markus Stange <mstange@themasta.com> - Mon, 05 Nov 2018 19:06:56 +0000 - rev 444448
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
4a9c9a91182cbf3055d94055d728cc0888459092: Bug 1499507 - Fold the 'profiler is active' check into the 'JSContext has a non-null PseudoStack' check. r=sfink
Markus Stange <mstange@themasta.com> - Mon, 05 Nov 2018 19:06:08 +0000 - rev 444447
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
634d9ca93c9491c01d901c53418288bc284567d2: Bug 1494364 - don't prune proxy if all non-direct proxies are disabled r=bagder
Junior Hsu <juhsu@mozilla.com> - Mon, 05 Nov 2018 07:12:54 +0000 - rev 444446
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
Bug 1494364 - don't prune proxy if all non-direct proxies are disabled r=bagder Differential Revision: https://phabricator.services.mozilla.com/D10625
e5cd93207b3afab072daed9c7aeb216123b92797: Bug 1503572 - Enable SSL_CERT_VERIFICATION_ERRORS histogram on release. r=janerik
Johann Hofmann <jhofmann@mozilla.com> - Mon, 05 Nov 2018 16:00:08 +0000 - rev 444445
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
Bug 1503572 - Enable SSL_CERT_VERIFICATION_ERRORS histogram on release. r=janerik Differential Revision: https://phabricator.services.mozilla.com/D10875
4aeb1d183e959689fa7f4d785128637605bc34a6: Bug 1488874 - Part 2: Notification channel name changes. r=nalexander
Jan Henning <jh+bugzilla@buttercookie.de> - Mon, 05 Nov 2018 18:54:24 +0000 - rev 444444
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
Bug 1488874 - Part 2: Notification channel name changes. r=nalexander The media and default channels are changed as per comment 2 of this bug. I'm keeping the location service string as it is, though, as our settings UI uses "&vendorShortName; Location Service" as well. Differential Revision: https://phabricator.services.mozilla.com/D10771
a18675248eb604d28e6faedab7e2dcadc14a5418: Bug 1488874 - Part 1: Fix notes. r=nalexander
Jan Henning <jh+bugzilla@buttercookie.de> - Mon, 05 Nov 2018 18:54:17 +0000 - rev 444443
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
Bug 1488874 - Part 1: Fix notes. r=nalexander Differential Revision: https://phabricator.services.mozilla.com/D10770
c4a55a6ab17bd5e7218c0f21243ab63fd1882679: Bug 1504785 - Re-generate FFI header. r=kats
WR Updater Bot <graphics-team@mozilla.staktrace.com> - Mon, 05 Nov 2018 18:50:18 +0000 - rev 444442
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
Bug 1504785 - Re-generate FFI header. r=kats Depends on D10942 Differential Revision: https://phabricator.services.mozilla.com/D10943
c0c35de70986f4d32e777d4d16d07b8210d8e79b: Bug 1504785 - Update webrender to commit 854dee60c310edced14130009062129571101645 (WR PR #3269). r=kats
WR Updater Bot <graphics-team@mozilla.staktrace.com> - Mon, 05 Nov 2018 18:50:11 +0000 - rev 444441
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
Bug 1504785 - Update webrender to commit 854dee60c310edced14130009062129571101645 (WR PR #3269). r=kats Differential Revision: https://phabricator.services.mozilla.com/D10942
a1fcca885ad4b43d122d0d570c26238c822e158f: bug 1504478: marionette: remove deprecated commands; r=whimboo
Andreas Tolfsen <ato@sny.no> - Mon, 05 Nov 2018 18:40:39 +0000 - rev 444440
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
bug 1504478: marionette: remove deprecated commands; r=whimboo This removes a series of deprecated Marionette commands following a big naming scheme change a while back. These commands could have safely been removed since Firefox 63. singleTap and acceptConnections were still in use in the Marionette Python client, so they can only be removed in Firefox 66 at the earliest. WebDriver:AcceptDialog is used by geckodriver, which means it would have to drop support for Firefox 57 in order to change to use WebDriver:AcceptAlert. Marking this as deprecated, but used in geckodriver for now. Depends on D10836 Differential Revision: https://phabricator.services.mozilla.com/D10837
bfce81a6090ed29c63811733f503727a8707ccdc: bug 1504478: marionette: update tests to use non-deprecated commands; r=whimboo
Andreas Tolfsen <ato@sny.no> - Mon, 05 Nov 2018 18:40:37 +0000 - rev 444439
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
bug 1504478: marionette: update tests to use non-deprecated commands; r=whimboo Depends on D10835 Differential Revision: https://phabricator.services.mozilla.com/D10836
341265ae91c19ba7925609dc8432f4da0b9aab76: bug 1504478: marionette: use SingleTap and AcceptConnections in Python client; r=whimboo
Andreas Tolfsen <ato@sny.no> - Mon, 05 Nov 2018 18:40:33 +0000 - rev 444438
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
bug 1504478: marionette: use SingleTap and AcceptConnections in Python client; r=whimboo The singleTap and acceptConnections commands are deprecated in favour of, respectively, Marionette:SingleTap and Marionette:AcceptConnections. Differential Revision: https://phabricator.services.mozilla.com/D10835
2030d86b1ee8efd585ceb245eba10d3dcf124e7f: Bug 1504727: Remove last vestiges of C1 Spewer r=IainIreland
Matthew Gaudet <mgaudet@mozilla.com> - Mon, 05 Nov 2018 16:29:49 +0000 - rev 444437
Push 34996 by rgurzau@mozilla.com at Tue, 06 Nov 2018 09:53:23 +0000
Bug 1504727: Remove last vestiges of C1 Spewer r=IainIreland Differential Revision: https://phabricator.services.mozilla.com/D10923
(0) -300000 -100000 -30000 -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 +30000 tip