Граф коммитов

2497 Коммитов

Автор SHA1 Сообщение Дата
Gabriele Svelto bf06bd8102 Bug 1866716 - Fixup for WasiAtomic.h CLOSED TREE
Differential Revision: https://phabricator.services.mozilla.com/D194875
2023-11-28 14:00:34 +00:00
Gabriele Svelto 2b83d1392f Bug 1866716 - Remove unneeded headers from Atomics.h r=glandium,profiler-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D194722
2023-11-28 13:14:49 +00:00
Paul Adenot 643afe2840 Bug 1814600 - Annotate abort calls as __attribute__((nomerge)) to get clearer line number when crashing on assertion failure. r=gsvelto,yjuglaret
Differential Revision: https://phabricator.services.mozilla.com/D168960
2023-11-10 13:54:54 +00:00
Tooru Fujisawa 3cea1dc675 Bug 1850723 - Make mozilla::Result constructor take another result with convertible value. r=emilio,glandium
Differential Revision: https://phabricator.services.mozilla.com/D191538
2023-11-03 08:13:19 +00:00
Tooru Fujisawa 42681ab6e5 Bug 1850710 - Add PackingStrategy::ZeroIsEmptyError for mozilla::Result. r=emilio,glandium
In order to use mozilla::Result with integral, pointer, or enum, without
consuming extra space or introducing extra instruction, reserve 0 as error value
in the underlying representation.

Differential Revision: https://phabricator.services.mozilla.com/D191537
2023-11-03 08:13:18 +00:00
Sandor Molnar e8f8acdf36 Backed out 4 changesets (bug 1850710, bug 1850723, bug 1489008) for causing failures on mfbt/tests/TestResult.cpp
Backed out changeset 7398cacb1ad3 (bug 1850723)
Backed out changeset 3ecdc29f9faf (bug 1850710)
Backed out changeset 0be8a44ae0b0 (bug 1489008)
Backed out changeset e1545a8ce2d8 (bug 1489008)
2023-11-03 06:00:46 +02:00
Tooru Fujisawa 6eecb51843 Bug 1850723 - Make mozilla::Result constructor take another result with convertible value. r=emilio,glandium
Differential Revision: https://phabricator.services.mozilla.com/D191538
2023-11-03 02:14:16 +00:00
Tooru Fujisawa b2945c75bf Bug 1850710 - Add PackingStrategy::ZeroIsEmptyError for mozilla::Result. r=emilio,glandium
In order to use mozilla::Result with integral, pointer, or enum, without
consuming extra space or introducing extra instruction, reserve 0 as error value
in the underlying representation.

Differential Revision: https://phabricator.services.mozilla.com/D191537
2023-11-03 02:14:16 +00:00
Jed Davis 850869a8df Bug 1595453 - Allow serializing zero-length `ByteBuf`s. r=nika
If someone tried to serialize a zero-size ByteBuf, it could add a
zero-length segment to the `BufferList` and cause an assertion failure
later when trying to send the message.  This patch makes it a no-op (and
frees the supplied buffer, because the BufferList becomes its owner).

We previously asserted against adding zero-*capacity* segments (likely
also zero size, but possibly not) with WriteBytesZeroCopy, but only on
debug builds, and it was likely happening on release builds despite
that.  That case is now allowed.

Also, error handling for `BufferList::WriteBytesZeroCopy` has been
improved.  (This doesn't affect `Pickle` because it's using infallible
allocation, and no other instances of `BufferList` seem to use
`WriteBytesZeroCopy` at this time.)

Differential Revision: https://phabricator.services.mozilla.com/D192531
2023-11-02 18:05:31 +00:00
Tooru Fujisawa 93738a7432 Bug 1860451 - Add documentation for the hash inequality in HashPolicy::match. r=mgaudet DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D191591
2023-10-31 20:41:17 +00:00
Andreas Pehrson 76a7426f90 Bug 1844181 - Add memory synchronization to SPSCQueue's thread id reset methods. r=decoder,padenot,handyman
Without this, the necessary synchronization must be provided externally.

This fixes the memory order in the following case of changing producer thread:
- Thread A does SPSCQueue::Enqueue
  - non-atomic write into the ring buffer, at memory location X
  - mWriteIndex.load(relaxed)
  - mWriteIndex.store(release)
- Producer thread is switched to B, no external memory order synchronization is
  provided, but thread B is guaranteed to run after thread A has finished its
  Enqueue task.
- Thread B does SPSCQueue::Enqueue
  - mWriteIndex.load(relaxed)
  - mWriteIndex.store(release)
- Thread C does SPSCQueue::Dequeue
  - mWriteIndex.load(acquire)
  - non-atomic read from the ring buffer, at memory location X

In this scenario, there is no memory synchronization between threads A and B,
and therefore the non-atomic read on C is a data race, and flagged as such by
TSAN.

A similar scenario can be applied to changing the consumer thread, if first A
enqueues, then B dequeues, then C dequeues. However, since Dequeue doesn't
necessarily (MoveOrCopy) do non-atomic writes to the ring buffer, and more
importantly, since Enqueue doesn't do non-atomic reads from the ring buffer,
this is less of a problem.

Differential Revision: https://phabricator.services.mozilla.com/D190084
2023-10-09 13:02:58 +00:00
Daniel Holbert aab09ae7db Bug 1856746: Extend already_AddRefed documentation to mention a case where it makes sense as a function parameter. r=nika
DONTBUILD because comment-only

Differential Revision: https://phabricator.services.mozilla.com/D189987
2023-10-04 18:49:03 +00:00
Yannis Juglaret b24022bb02 Bug 1777960 - Patch msctf.dll to prevent a crash with ZoneAlarm Anti-Keylogger. r=gstoll,win-reviewers
Starting with Windows 11 22H2, Microsoft has made internal changes in
msctf.dll. The TF_Notify function, also known as CtfImmNotify from
imm32.dll, uses a new convention for its third argument. These changes
are incompatible with current versions of ZoneAlarm Anti-Keylogger,
resulting in crashes in our main process.

This patch converts messages forwarded by ZoneAlarm Anti-Keylogger to
the new convention. If we detect the product and an incompatible version
of msctf.dll, then we hook TF_Notify and detect any message using the
old convention, and convert it to the new convention.

Differential Revision: https://phabricator.services.mozilla.com/D189518
2023-10-03 15:24:47 +00:00
Jan Varga c458754592 Bug 1855134 - Move existing MOZ_TRY macros to a dedicated header file; r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D189226
2023-09-28 20:46:07 +00:00
Nika Layzell 9411a9ed15 Bug 1851045 - Part 4: Add a NeverDestroyed helper type to MFBT for static local members, r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D189248
2023-09-27 19:14:16 +00:00
Mike Hommey 194571f479 Bug 1854305 - Don't enable thread safety annotations before clang 11. r=nika
Arbitrary capability names weren't allowed until clang 11, and while we
could probably make things somehow work with earlier versions of clang,
it's not that interesting, as long as we keep the thread safety analysis
running with newer versions of clang on our CI (which we obviously do).

Differential Revision: https://phabricator.services.mozilla.com/D188791
2023-09-21 20:42:33 +00:00
Masatoshi Kimura 84f3eeec16 Bug 1844908 - Remove unused Windows version check functions. r=handyman
Differential Revision: https://phabricator.services.mozilla.com/D184309
2023-08-22 19:11:41 +00:00
Emilio Cobos Álvarez 9b5ea61bed Bug 1849386 - Use consistent pointer hashing. r=nika,xpcom-reviewers
* DefaultHasher<T*> used HashGeneric<size_t>
 * nsPtrHashKey<T> used HashGeneric<T*>
 * nsRefPtrHashKey<T> used NS_PTR_TO_UINT32 >> 2

Make sure to always use HashGeneric<T*> for these.

Remove unused / redundant hash keys.

Differential Revision: https://phabricator.services.mozilla.com/D186553
2023-08-18 22:35:40 +00:00
Steve Fink 35da906445 Bug 1838827 - HashTable::reserve() should always report an error on failure r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D185191
2023-08-03 19:16:02 +00:00
Mike Hommey 4a05ff7242 Bug 1844484 - Override the symbol used by compilers in vtables for pure virtual methods. r=firefox-build-system-reviewers,ahochheiden
In bug 1839743, we made the build system prefer packed relative
relocations to elfhack when both the system libc and linker support
them. Unfortunately, while that covers most of the benefits from
elfhack, it doesn't cover bug 651892.

To cover it, we make every C++ executable contain its own copy of
the symbol, so that all relocations related to it become relative.

And because this is actually (slightly) beneficial on macos, and because
it's also an advantage to have our own abort called rather than the
system's, we apply the same to all platforms.

Differential Revision: https://phabricator.services.mozilla.com/D184068
2023-08-02 06:12:51 +00:00
Noemi Erli 72a3108e1e Backed out changeset a2017655dd34 (bug 1844484) for causing failures in test_crash_purevirtual.js 2023-08-01 15:09:51 +03:00
Mike Hommey cf3f361146 Bug 1844484 - Override the symbol used by compilers in vtables for pure virtual methods. r=firefox-build-system-reviewers,ahochheiden
In bug 1839743, we made the build system prefer packed relative
relocations to elfhack when both the system libc and linker support
them. Unfortunately, while that covers most of the benefits from
elfhack, it doesn't cover bug 651892.

To cover it, we make every C++ executable contain its own copy of
the symbol, so that all relocations related to it become relative.

And because this is actually (slightly) beneficial on macos, and because
it's also an advantage to have our own abort called rather than the
system's, we apply the same to all platforms.

Differential Revision: https://phabricator.services.mozilla.com/D184068
2023-08-01 05:32:00 +00:00
Ryan VanderMeulen ded3dfb71d Bug 1845018 - Update xxHash to version 0.8.2. r=dthayer
Differential Revision: https://phabricator.services.mozilla.com/D184325
2023-07-26 16:21:11 +00:00
serge-sans-paille 4cb35b98e0 Bug 1844554 - Vendor double-conversion using `mach vendor` r=RyanVM
Differential Revision: https://phabricator.services.mozilla.com/D184091
2023-07-21 08:12:09 +00:00
Nika Layzell effc2ca999 Bug 1843568 - Part 3: Annotate `nsIEventTarget` as rust_sync, r=xpcom-reviewers,barret
All event targets should be threadsafe and implemented in C++, and so should be
able to be used in `Sync` types in Rust code.

This also required annotating all interfaces deriving from `nsIEventTarget`, as
well as adding some associated constants to specific types to indicate to the
static assertion that they have threadsafe reference counts.

Differential Revision: https://phabricator.services.mozilla.com/D183592
2023-07-20 17:39:03 +00:00
Noemi Erli ec441901f7 Backed out 5 changesets (bug 1843568) for causing xpc failures in test_extension_permissions_migration.js CLOSED TREE
Backed out changeset a4cb1e2b9e3d (bug 1843568)
Backed out changeset 26047645c009 (bug 1843568)
Backed out changeset 50d6b858ee6e (bug 1843568)
Backed out changeset 3597df96ba38 (bug 1843568)
Backed out changeset 8faeb75f1161 (bug 1843568)
2023-07-19 22:54:13 +03:00
Nika Layzell 46c26f2961 Bug 1843568 - Part 3: Annotate `nsIEventTarget` as rust_sync, r=xpcom-reviewers,barret
All event targets should be threadsafe and implemented in C++, and so should be
able to be used in `Sync` types in Rust code.

This also required annotating all interfaces deriving from `nsIEventTarget`, as
well as adding some associated constants to specific types to indicate to the
static assertion that they have threadsafe reference counts.

Differential Revision: https://phabricator.services.mozilla.com/D183592
2023-07-19 18:03:45 +00:00
Markus Stange d65e61e97a Bug 1843181 - Make EqualRange return a std::pair. r=sergesanspaille
mozilla::CompactPair doesn't seem appropriate because its base class optimization doesn't apply.

Differential Revision: https://phabricator.services.mozilla.com/D178843
2023-07-14 21:51:27 +00:00
Tyson Smith afac244b61 Bug 1824768 - Add TSan suppressions for external libs. r=decoder
Differential Revision: https://phabricator.services.mozilla.com/D173791
2023-07-07 10:12:54 +00:00
Paul Adenot 348493c16c Bug 1838828 - Fix obsolete comment in Assertions.h: MOZ_RELEASE_ASSERT is no-op only in late beta and release. r=chunmin
This is controlled by this:
https://searchfox.org/mozilla-central/rev/9a4666e63199bd1bcfc9095f6efec3488c358458/moz.configure#125-134

Differential Revision: https://phabricator.services.mozilla.com/D182916
2023-07-07 00:51:27 +00:00
André Bargull 50d9348a9e Bug 1841314 - Part 3: Prefer JS::NewArrayBufferWithContents with UniquePtr. r=sfink,saschanaz
Replace the existing callers of `JS::NewArrayBufferWithContents` with the new
`UniquePtr` alternative.

Three callers to the old `JS::NewArrayBufferWithContents` function were left
unchanged:
- `mozilla::dom::FileReader::OnLoadEndArrayBuffer()` and
  `mozilla::dom::ArrayBufferBuilder::TakeArrayBuffer()` both store the data
  buffer as members and therefore have a more complicated lifetime.
- `JSStructuredCloneReader::readTransferMap()` because it's not clear if the
  data can be free'ed when `ArrayBuffectObject` allocation fails.

Differential Revision: https://phabricator.services.mozilla.com/D182588
2023-07-06 20:50:59 +00:00
Sandor Molnar a6c121377b Backed out 7 changesets (bug 1841314) for causing hazard failures. CLOSED TREE
Backed out changeset 82a53d6ea95a (bug 1841314)
Backed out changeset 524607b471a2 (bug 1841314)
Backed out changeset ce128e10bddb (bug 1841314)
Backed out changeset cdae4fbbdaff (bug 1841314)
Backed out changeset f1035b6c08fe (bug 1841314)
Backed out changeset 5897ad8ef181 (bug 1841314)
Backed out changeset 09618a767080 (bug 1841314)
2023-07-06 16:59:47 +03:00
André Bargull 412b9d7c45 Bug 1841314 - Part 3: Prefer JS::NewArrayBufferWithContents with UniquePtr. r=sfink,saschanaz
Replace the existing callers of `JS::NewArrayBufferWithContents` with the new
`UniquePtr` alternative.

Three callers to the old `JS::NewArrayBufferWithContents` function were left
unchanged:
- `mozilla::dom::FileReader::OnLoadEndArrayBuffer()` and
  `mozilla::dom::ArrayBufferBuilder::TakeArrayBuffer()` both store the data
  buffer as members and therefore have a more complicated lifetime.
- `JSStructuredCloneReader::readTransferMap()` because it's not clear if the
  data can be free'ed when `ArrayBuffectObject` allocation fails.

Differential Revision: https://phabricator.services.mozilla.com/D182588
2023-07-06 12:26:53 +00:00
Cristina Horotan f77c6f3e48 Backed out 7 changesets (bug 1841314) for causing hazard failures at js.cpp CLOSED TREE
Backed out changeset becc2fa2c186 (bug 1841314)
Backed out changeset e5b723317177 (bug 1841314)
Backed out changeset 61ae850b25e5 (bug 1841314)
Backed out changeset 9ff320c779b8 (bug 1841314)
Backed out changeset debf1172f794 (bug 1841314)
Backed out changeset 8ac4fa317006 (bug 1841314)
Backed out changeset eccacbb3b620 (bug 1841314)
2023-07-06 15:11:47 +03:00
André Bargull 0c386d5c4b Bug 1841314 - Part 3: Prefer JS::NewArrayBufferWithContents with UniquePtr. r=sfink,saschanaz
Replace the existing callers of `JS::NewArrayBufferWithContents` with the new
`UniquePtr` alternative.

Three callers to the old `JS::NewArrayBufferWithContents` function were left
unchanged:
- `mozilla::dom::FileReader::OnLoadEndArrayBuffer()` and
  `mozilla::dom::ArrayBufferBuilder::TakeArrayBuffer()` both store the data
  buffer as members and therefore have a more complicated lifetime.
- `JSStructuredCloneReader::readTransferMap()` because it's not clear if the
  data can be free'ed when `ArrayBuffectObject` allocation fails.

Differential Revision: https://phabricator.services.mozilla.com/D182588
2023-07-06 11:41:17 +00:00
Jesse Schwartzentruber 51d7504cd1 Bug 1766058 - Avoid mixing log output. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D179725
2023-06-19 20:44:29 +00:00
Kelsey Gilbert 0fb34553d5 Bug 1812353 - Update GPUSupportedLimits in webgpu.webidl. r=webgpu-reviewers,webidl,saschanaz,jimb,emilio,smaug
* Add validation for requested features and devices for
adapter.requestDevice().
* Promote webgl's AutoAssertCast to mfbt/Casting.h/LazyAssertedCast.

Differential Revision: https://phabricator.services.mozilla.com/D177110
2023-06-12 21:10:11 +00:00
Stanca Serban 7f8803cf62 Backed out changeset 8352bc23343d (bug 1812353) for causing build bustages in Adapter.cpp. CLOSED TREE 2023-06-09 23:42:09 +03:00
Kelsey Gilbert 2e186b9e3a Bug 1812353 - Update GPUSupportedLimits in webgpu.webidl. r=webgpu-reviewers,webidl,saschanaz,jimb,emilio,smaug
* Add validation for requested features and devices for
adapter.requestDevice().
* Promote webgl's AutoAssertCast to mfbt/Casting.h/LazyAssertedCast.

Differential Revision: https://phabricator.services.mozilla.com/D177110
2023-06-09 19:52:39 +00:00
Nicolas B. Pierron 7843dc698e Bug 1836964 - Add mozilla::MakeCompilerAssumeUnreachableFakeValue to abort if ever used. r=arai
Differential Revision: https://phabricator.services.mozilla.com/D180089
2023-06-06 15:44:59 +00:00
Gabriele Svelto 0a57af7f2a Bug 1681846 - Ensure MOZ_CRASH() stores the reason in crash reports on 32-bit ARM/Android builds r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D179196
2023-05-31 06:58:36 +00:00
Chris Peterson 32b7b4e8da Bug 1791961 - mfbt: constify some operators to fix C++20 -Wambiguous-reversed-operator warnings. r=glandium
clang is warning that C++20 expects comparison operators to be commutative: `a == b` and `b == a` should resolve to the same comparison operator function. Warnings about the comparison of const and non-const objects can be fixed by making the comparison operator function const.

mfbt/tests/TestDoublyLinkedList.cpp:158:36 [-Wambiguous-reversed-operator] ISO C++20 considers use of overloaded operator '==' (with operand types 'SomeClass' and 'SomeClass') to be ambiguous despite there being a unique best viable function
mfbt/tests/TestDoublyLinkedList.cpp:159:38 [-Wambiguous-reversed-operator] ISO C++20 considers use of overloaded operator '==' (with operand types 'SomeClass' and 'SomeClass') to be ambiguous despite there being a unique best viable function

Depends on D179022

Differential Revision: https://phabricator.services.mozilla.com/D179023
2023-05-26 04:51:44 +00:00
Mike Hommey 38a3d1fae3 Bug 1834912 - Add iOS-related defines/ifdefs for IPC. r=ipc-reviewers,nika
Differential Revision: https://phabricator.services.mozilla.com/D178999
2023-05-25 02:48:33 +00:00
Paul Adenot 23ce79a819 Bug 1821362 - Replace EuclidGCD by a binary gcd algorithm using intrinsics. r=media-playback-reviewers,alwu
Perf notes:
https://lemire.me/blog/2013/12/26/fastest-way-to-compute-the-greatest-common-divisor/

Differential Revision: https://phabricator.services.mozilla.com/D173315
2023-05-24 13:18:41 +00:00
Paul Adenot 31157559f1 Bug 1821362 - Add a generic CountTrailingZeroes function that lowers to the right intrinsic based the type its called with. r=sergesanspaille
Differential Revision: https://phabricator.services.mozilla.com/D173314
2023-05-24 13:18:41 +00:00
Paul Adenot b29794e7cc Bug 1830206 - Fix an overly restrictive assertion in the SPSC ringbuffer. r=alwu
Differential Revision: https://phabricator.services.mozilla.com/D177770
2023-05-24 13:11:46 +00:00
Ryan VanderMeulen 6af5555c16 Bug 1833859 - Update double-conversion to version 3.3.0. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D178437
2023-05-23 04:01:10 +00:00
Cosmin Sabou 5fd965f028 Backed out 80 changesets (bug 1821362, bug 1703812, bug 1817997) for causing media crashes as in Bug 1833890. a=backout
Backed out changeset f2113c9b661f (bug 1817997)
Backed out changeset f1ecfbba7ed2 (bug 1703812)
Backed out changeset 011cece33b0d (bug 1817997)
Backed out changeset 4b42659090f3 (bug 1817997)
Backed out changeset 2d92f903dd66 (bug 1817997)
Backed out changeset 0ef13d357ee3 (bug 1817997)
Backed out changeset 7353f869efd2 (bug 1703812)
Backed out changeset 14b061d0f595 (bug 1817997)
Backed out changeset d29bc29397c8 (bug 1703812)
Backed out changeset 54c3294f0839 (bug 1817997)
Backed out changeset b9f2e1155bd7 (bug 1817997)
Backed out changeset d5d5d390dcbf (bug 1817997)
Backed out changeset 8fca27bd0f6b (bug 1817997)
Backed out changeset 670c599a3b99 (bug 1817997)
Backed out changeset deea3077f762 (bug 1817997)
Backed out changeset 25ecea0f3d49 (bug 1817997)
Backed out changeset 35ab3ed5e3fc (bug 1817997)
Backed out changeset f516a428ba32 (bug 1817997)
Backed out changeset e589b4d30995 (bug 1817997)
Backed out changeset d096b9cc905d (bug 1817997)
Backed out changeset 2952a6fa06e5 (bug 1817997)
Backed out changeset c1ac4c31ad9a (bug 1817997)
Backed out changeset 04c60cd83c5f (bug 1821362)
Backed out changeset 6dd80575e551 (bug 1821362)
Backed out changeset b86b569ecd46 (bug 1817997)
Backed out changeset 412e0a9ec4e8 (bug 1817997)
Backed out changeset 8e0dcf163138 (bug 1817997)
Backed out changeset 7af506896930 (bug 1817997)
Backed out changeset 29f7cd2b341c (bug 1817997)
Backed out changeset 7f64e65d9497 (bug 1817997)
Backed out changeset 89c241451a32 (bug 1817997)
Backed out changeset 66e4a26e1ebe (bug 1817997)
Backed out changeset ea1aebd4e245 (bug 1817997)
Backed out changeset 2d88a5915db9 (bug 1817997)
Backed out changeset 697ec1928f9c (bug 1817997)
Backed out changeset 41c0bd1133c5 (bug 1817997)
Backed out changeset b20cc750c020 (bug 1817997)
Backed out changeset dc5fd84a3a4c (bug 1703812)
Backed out changeset efa6d130d4eb (bug 1703812)
Backed out changeset 20d9b7cf0ddc (bug 1703812)
Backed out changeset e77c61e8fad2 (bug 1703812)
Backed out changeset 582d5c680e5a (bug 1703812)
Backed out changeset 96c9aacc6811 (bug 1703812)
Backed out changeset 56ec4a57a6a6 (bug 1703812)
Backed out changeset 8f96c8811675 (bug 1703812)
Backed out changeset a79a2f1b2b51 (bug 1703812)
Backed out changeset 07eb8b2c5b9f (bug 1703812)
Backed out changeset bae2b2fb9759 (bug 1703812)
Backed out changeset 38b0416538f3 (bug 1703812)
Backed out changeset b27b54c95cf2 (bug 1703812)
Backed out changeset cab00065d83d (bug 1703812)
Backed out changeset ab44727b2e1a (bug 1703812)
Backed out changeset b7fdcb494670 (bug 1703812)
Backed out changeset 73db43d49c6d (bug 1703812)
Backed out changeset ce754dbfb862 (bug 1703812)
Backed out changeset d694726a3ee6 (bug 1703812)
Backed out changeset 6acede55acbb (bug 1703812)
Backed out changeset 86e7d4784a20 (bug 1703812)
Backed out changeset 6b2e055d9314 (bug 1703812)
Backed out changeset b08695e5728a (bug 1703812)
Backed out changeset 3b8a0081fd10 (bug 1703812)
Backed out changeset 3a163596f982 (bug 1703812)
Backed out changeset 5be1d4b282ab (bug 1703812)
Backed out changeset 1ce012d7509e (bug 1703812)
Backed out changeset ee2fab5881c7 (bug 1703812)
Backed out changeset 62941a522893 (bug 1703812)
Backed out changeset d4f11dc33eed (bug 1703812)
Backed out changeset 781bb4c3cc02 (bug 1703812)
Backed out changeset f070e0de0566 (bug 1703812)
Backed out changeset 9f65c67ba2a6 (bug 1703812)
Backed out changeset 1e76eecb85e2 (bug 1703812)
Backed out changeset 953432408a83 (bug 1703812)
Backed out changeset fd1dc92d3911 (bug 1703812)
Backed out changeset 34d56948c6b6 (bug 1703812)
Backed out changeset 2ba7ca61ecc3 (bug 1703812)
Backed out changeset 545253c469e6 (bug 1703812)
Backed out changeset fb4a61ab1300 (bug 1703812)
Backed out changeset bf07b3cfd3d5 (bug 1703812)
Backed out changeset eaff51e7754b (bug 1703812)
Backed out changeset f5c485c41d13 (bug 1703812)
2023-05-19 14:49:57 +03:00
Paul Adenot 281091bd3d Bug 1821362 - Replace EuclidGCD by a binary gcd algorithm using intrinsics. r=media-playback-reviewers,alwu
Perf notes:
https://lemire.me/blog/2013/12/26/fastest-way-to-compute-the-greatest-common-divisor/

Differential Revision: https://phabricator.services.mozilla.com/D173315
2023-05-17 15:47:05 +00:00
Paul Adenot 63452a9038 Bug 1821362 - Add a generic CountTrailingZeroes function that lowers to the right intrinsic based the type its called with. r=sergesanspaille
Differential Revision: https://phabricator.services.mozilla.com/D173314
2023-05-17 15:47:05 +00:00