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