07ddd292e0da0cb8988fc04f03d55a7a1cb0e304: Bug 1578381 - Rename HomePage.init to delayedStartup to better describe when it gets called normally. r=mixedpuppy
Mark Banner <standard8@mozilla.com> - Mon, 07 Oct 2019 17:05:09 +0000 - rev 496558
Push 36661 by ccoroiu@mozilla.com at Mon, 07 Oct 2019 21:50:01 +0000
Bug 1578381 - Rename HomePage.init to delayedStartup to better describe when it gets called normally. r=mixedpuppy Depends on D48169 Differential Revision: https://phabricator.services.mozilla.com/D48195
309bd81a151af47d1af92a8ed4fa27725a113971: Bug 1578579 - Add telemetry for privacy info in discovery stream r=gvn
Nan Jiang <njiang028@gmail.com> - Mon, 07 Oct 2019 16:56:00 +0000 - rev 496557
Push 36661 by ccoroiu@mozilla.com at Mon, 07 Oct 2019 21:50:01 +0000
Bug 1578579 - Add telemetry for privacy info in discovery stream r=gvn Add two more event values to the Events telemetry Differential Revision: https://phabricator.services.mozilla.com/D48352
91bec74c770a54e68352173c42ee78dfc2427f2b: Bug 1583708 - Disable failing part of browser_urlbar_collapseOnChromeMousedown.js. r=dao
Harry Twyford <htwyford@mozilla.com> - Mon, 07 Oct 2019 16:21:20 +0000 - rev 496556
Push 36661 by ccoroiu@mozilla.com at Mon, 07 Oct 2019 21:50:01 +0000
Bug 1583708 - Disable failing part of browser_urlbar_collapseOnChromeMousedown.js. r=dao Differential Revision: https://phabricator.services.mozilla.com/D48325
144ebbca6844259fe509194059447dc6fcbdff28: Bug 1574415 - Part 14: Don't allocate Spectre bounds check scratch register when it's unused. r=jandem
André Bargull <andre.bargull@gmail.com> - Mon, 07 Oct 2019 12:01:13 +0000 - rev 496555
Push 36661 by ccoroiu@mozilla.com at Mon, 07 Oct 2019 21:50:01 +0000
Bug 1574415 - Part 14: Don't allocate Spectre bounds check scratch register when it's unused. r=jandem `ta[0] = 0;` emits the following assembly for Ion CacheIR without this patch: ``` [Codegen] emitStoreTypedElement [Codegen] push %rbx [Codegen] push %rbp [Codegen] movl 0x28(%rax), %ebx [Codegen] xorl %r11d, %r11d [Codegen] cmpl %ebx, %edx [Codegen] jae .Lfrom47 [Codegen] cmovae %r11d, %edx [Codegen] movq 0x38(%rax), %rbx [Codegen] movl %ecx, 0x0(%rbx,%rdx,4) ``` When not allocating the unused scratch register for Spectre bounds checks, this assembly is emitted: ``` [Codegen] emitStoreTypedElement [Codegen] push %rdx [Codegen] movl 0x28(%rax), %edx [Codegen] xorl %r11d, %r11d [Codegen] cmpl %edx, %ebx [Codegen] jae .Lfrom46 [Codegen] cmovae %r11d, %ebx [Codegen] movq 0x38(%rax), %rdx [Codegen] movl %ecx, 0x0(%rdx,%rbx,4) ``` Which shows `%rbp` is no longer spilled on the stack, resulting in a minor performance improvement (~3%) on ยต-benchmarks and also avoiding a performance regression (performance is now again on par with the state before this patch series). For comparison this assembly was generated before this patch series: ``` [Codegen] emitStoreTypedElement [Codegen] push %rbx [Codegen] movl 0x28(%rax), %ecx [Codegen] xorl %r11d, %r11d [Codegen] cmpl %ecx, %edx [Codegen] jae .Lfrom44 [Codegen] cmovae %r11d, %edx [Codegen] movq 0x38(%rax), %rcx [Codegen] xorl %ebx, %ebx [Codegen] movl %ebx, 0x0(%rcx,%rdx,4) ``` Differential Revision: https://phabricator.services.mozilla.com/D47762
3dc778bc0ce0ccb1abc83d46f55f202b95a7e771: Bug 1574415 - Part 13: Move emitStoreTypedObjectScalarProperty into CacheIRCompiler. r=jandem
André Bargull <andre.bargull@gmail.com> - Mon, 07 Oct 2019 12:00:44 +0000 - rev 496554
Push 36661 by ccoroiu@mozilla.com at Mon, 07 Oct 2019 21:50:01 +0000
Bug 1574415 - Part 13: Move emitStoreTypedObjectScalarProperty into CacheIRCompiler. r=jandem After adding `emitAddressFromStubField()`, the emitStoreTypedObjectScalarProperty implementations in the Baseline and Ion CacheIR compiler are exactly equal to each other and hence can be moved into CacheIRCompiler. Differential Revision: https://phabricator.services.mozilla.com/D47761
218a81625331fa748ee2723114ed836a09e93694: Bug 1574415 - Part 12: Remove StoreToTypedObject and instead use new guard ops for StoreTypedObjectScalarProperty. r=jandem
André Bargull <andre.bargull@gmail.com> - Mon, 07 Oct 2019 12:00:19 +0000 - rev 496553
Push 36661 by ccoroiu@mozilla.com at Mon, 07 Oct 2019 21:50:01 +0000
Bug 1574415 - Part 12: Remove StoreToTypedObject and instead use new guard ops for StoreTypedObjectScalarProperty. r=jandem Differential Revision: https://phabricator.services.mozilla.com/D47760
1bd9ae4caa0ba3aa9b08743cbd899c0ce052567d: Bug 1574415 - Part 11: Add regression test for StoreTypedObjectScalarProperty clobbered register bug. r=jandem
André Bargull <andre.bargull@gmail.com> - Mon, 07 Oct 2019 11:59:54 +0000 - rev 496552
Push 36661 by ccoroiu@mozilla.com at Mon, 07 Oct 2019 21:50:01 +0000
Bug 1574415 - Part 11: Add regression test for StoreTypedObjectScalarProperty clobbered register bug. r=jandem Regression test for the fixed TypedObject bug mentioned in part 9. Differential Revision: https://phabricator.services.mozilla.com/D47759
42469f1d04913311bd96876eb106a8fba39d2223: Bug 1574415 - Part 10: Remove no longer used MacroAssembler methods. r=jandem
André Bargull <andre.bargull@gmail.com> - Mon, 07 Oct 2019 11:59:35 +0000 - rev 496551
Push 36661 by ccoroiu@mozilla.com at Mon, 07 Oct 2019 21:50:01 +0000
Bug 1574415 - Part 10: Remove no longer used MacroAssembler methods. r=jandem These methods are no longer necessary after the changes from part 9. Differential Revision: https://phabricator.services.mozilla.com/D47758
3601bf7917332395df032c833f9903e826ead8e9: Bug 1574415 - Part 9: Move emitStoreTypedElement into CacheIRCompiler. r=jandem
André Bargull <andre.bargull@gmail.com> - Mon, 07 Oct 2019 11:59:10 +0000 - rev 496550
Push 36661 by ccoroiu@mozilla.com at Mon, 07 Oct 2019 21:50:01 +0000
Bug 1574415 - Part 9: Move emitStoreTypedElement into CacheIRCompiler. r=jandem Changes `LSetPropertyCache` to use `Float0` as a fixed temporary register, which makes it easier to share the implementation between Baseline and Ion. Additionally this fixes a TypedObject bug where `Float0` was clobbered, see the regression test in part 11. Also adds support for `Constant`, `PayloadReg`, and `PayloadStack` operand locations to `CacheRegisterAllocator::ensureDoubleRegister`, which are now needed because the right-hand side in TypedArray assignments can be constants resp. values in payload registers or on the stack. Differential Revision: https://phabricator.services.mozilla.com/D47757
6eead2ab3379aa4818ca3e6d4fc228ade46d4296: Bug 1574415 - Part 8: Remove no longer used MacroAssembler methods. r=jandem
André Bargull <andre.bargull@gmail.com> - Mon, 07 Oct 2019 11:58:44 +0000 - rev 496549
Push 36661 by ccoroiu@mozilla.com at Mon, 07 Oct 2019 21:50:01 +0000
Bug 1574415 - Part 8: Remove no longer used MacroAssembler methods. r=jandem These methods are no longer necessary after the changes from part 4. Differential Revision: https://phabricator.services.mozilla.com/D47756
c24cec7a2424857b38d5b3e1024c0526fdb03d65: Bug 1574415 - Part 7: Add helper function when guarding int32-or-double to avoid code duplication. r=jandem
André Bargull <andre.bargull@gmail.com> - Mon, 07 Oct 2019 11:58:14 +0000 - rev 496548
Push 36661 by ccoroiu@mozilla.com at Mon, 07 Oct 2019 21:50:01 +0000
Bug 1574415 - Part 7: Add helper function when guarding int32-or-double to avoid code duplication. r=jandem The SFINAE code can be removed when C++17's if-constexpr is available. Differential Revision: https://phabricator.services.mozilla.com/D47755
1cc3c2eee37ec2c9cd23d6327b8d8f6ca51dccf3: Bug 1574415 - Part 6: Use ScratchTagScope for CacheIRCompiler::emitGuardToInt32Index. r=jandem
André Bargull <andre.bargull@gmail.com> - Mon, 07 Oct 2019 11:57:54 +0000 - rev 496547
Push 36661 by ccoroiu@mozilla.com at Mon, 07 Oct 2019 21:50:01 +0000
Bug 1574415 - Part 6: Use ScratchTagScope for CacheIRCompiler::emitGuardToInt32Index. r=jandem Similar to emitGuardToInt32ModUint32 and emitGuardToUint8Clamped, ScratchTagScope can be used in emitGuardToInt32Index to avoid splitting the tag two times. The next part will move this code into a shared helper function. Differential Revision: https://phabricator.services.mozilla.com/D47754
f3b48a00be455786162394ad78a8d044349af958: Bug 1574415 - Part 5: Avoid unnecessary move when source and temporary registers are equal. r=jandem
André Bargull <andre.bargull@gmail.com> - Mon, 07 Oct 2019 11:57:30 +0000 - rev 496546
Push 36661 by ccoroiu@mozilla.com at Mon, 07 Oct 2019 21:50:01 +0000
Bug 1574415 - Part 5: Avoid unnecessary move when source and temporary registers are equal. r=jandem This avoids emitting `movapd %xmm0, %xmm0` for clamp-uint8 code. Differential Revision: https://phabricator.services.mozilla.com/D47753
ef1f7213e654816da44e0963a27adf1510e1ea03: Bug 1574415 - Part 4: Move emitGuardToInt32ModUint32 and emitGuardToUint8Clamped into CacheIRCompiler. r=jandem
André Bargull <andre.bargull@gmail.com> - Mon, 07 Oct 2019 11:57:10 +0000 - rev 496545
Push 36661 by ccoroiu@mozilla.com at Mon, 07 Oct 2019 21:50:01 +0000
Bug 1574415 - Part 4: Move emitGuardToInt32ModUint32 and emitGuardToUint8Clamped into CacheIRCompiler. r=jandem IonCacheIRCompiler used `MacroAssembler::truncateConstantOrRegisterToInt32` resp. `clampConstantOrRegisterToUint8`, which allowed to handle more types than just int32 and double, but since `SetPropIRGenerator::tryAttachSetTypedElement` only allows number inputs, this code was probably never taken in practice. Therefore the CacheIRCompiler implementation for both methods only handles int32 and double inputs. As an optimisation to generate better assembly and to reduce register pressure, both methods have special-cases for known int32 inputs and are using `ScratchTagScope` to avoid splitting the tag two times. Part 7 will move the duplicated code into a shared helper function. Differential Revision: https://phabricator.services.mozilla.com/D47752
3f73e398ca61d24ddb9f8de379e1c077452ff9b1: Bug 1574415 - Part 3: Add AutoScratchFloatRegister. r=jandem
André Bargull <andre.bargull@gmail.com> - Mon, 07 Oct 2019 11:56:44 +0000 - rev 496544
Push 36661 by ccoroiu@mozilla.com at Mon, 07 Oct 2019 21:50:01 +0000
Bug 1574415 - Part 3: Add AutoScratchFloatRegister. r=jandem Add a RAII class to spill and restore `Float0` when used as a scratch register when generating Ion CacheIR assembly. It's still possible to generate incorrect code which doesn't properly restore `Float0`, for example through jump instructions, but the RAII class should at least prevent bugs like in `CacheIRCompiler::emitLoadDoubleTruthyResult` where `Float0` wasn't restored for the truthy case. Differential Revision: https://phabricator.services.mozilla.com/D47751
6067d1828df8f7ca054c4a57430e466e1987aa75: Bug 1574415 - Part 2: Remove no longer used template argument and rename 'StoreToTypedArray'. r=jandem
André Bargull <andre.bargull@gmail.com> - Mon, 07 Oct 2019 11:56:29 +0000 - rev 496543
Push 36661 by ccoroiu@mozilla.com at Mon, 07 Oct 2019 21:50:01 +0000
Bug 1574415 - Part 2: Remove no longer used template argument and rename 'StoreToTypedArray'. r=jandem `StoreToTypedArray` is now only used for TypedObjects and always passes `Address` for the `dest` argument. Differential Revision: https://phabricator.services.mozilla.com/D42811
d2008fdba4af17f45aad4d2ed3f99b21296fb248: Bug 1574415 - Part 1: Move argument conversion for StoreTypedElement to happen before range checks. r=jandem
André Bargull <andre.bargull@gmail.com> - Mon, 07 Oct 2019 11:56:27 +0000 - rev 496542
Push 36661 by ccoroiu@mozilla.com at Mon, 07 Oct 2019 21:50:01 +0000
Bug 1574415 - Part 1: Move argument conversion for StoreTypedElement to happen before range checks. r=jandem This ensures CacheIR doesn't completely ignore out-of-bounds writes to TypedArray objects and also enables to use additional scratch registers for bounds-checking. Differential Revision: https://phabricator.services.mozilla.com/D42810
a0d28ade0bb377f5e99b1ac4b3b87edb535c96c2: Bug 1584548 - Fixes "modulus" item collapse and adds a test to check it.r=johannh
Carolina <carolina.jimenez.g@gmail.com> - Mon, 07 Oct 2019 15:28:24 +0000 - rev 496541
Push 36661 by ccoroiu@mozilla.com at Mon, 07 Oct 2019 21:50:01 +0000
Bug 1584548 - Fixes "modulus" item collapse and adds a test to check it.r=johannh Differential Revision: https://phabricator.services.mozilla.com/D47487
54fa3474aca1c0674eba17bfeaa4f14536b9b20e: Bug 1562283 - FTP fuzzing target for the Necko fuzzing layer. r=michal
Christian Holler <choller@mozilla.com> - Mon, 07 Oct 2019 10:18:50 +0000 - rev 496540
Push 36661 by ccoroiu@mozilla.com at Mon, 07 Oct 2019 21:50:01 +0000
Bug 1562283 - FTP fuzzing target for the Necko fuzzing layer. r=michal Depends on D47448 Differential Revision: https://phabricator.services.mozilla.com/D47449
8d95f2c8867b13432cf2e0c51c7765e6592441ea: Bug 1586358 - Replace existing instances of GENERATED_FILES with references to the GeneratedFile template r=nalexander
Ricky Stewart <rstewart@mozilla.com> - Mon, 07 Oct 2019 15:31:05 +0000 - rev 496539
Push 36661 by ccoroiu@mozilla.com at Mon, 07 Oct 2019 21:50:01 +0000
Bug 1586358 - Replace existing instances of GENERATED_FILES with references to the GeneratedFile template r=nalexander This patch doesn't remove all references to GENERATED_FILES, but does remove most of them, leaving only those which can't be trivially translated to the new template. Try push: https://treeherder.mozilla.org/#/jobs?repo=try&revision=e4a25230c3992b9c5519ceb351fb37f6b2bf605e Differential Revision: https://phabricator.services.mozilla.com/D48230
(0) -300000 -100000 -30000 -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 +30000 tip