Skip to content

Conversation

@taiki-e
Copy link
Owner

@taiki-e taiki-e commented Aug 24, 2023

Update codebase to use MaybeUninit registers now supported by rust-lang/rust#114790.

This greatly improves performance and is almost equivalent to std atomic types (crossbeam-rs/crossbeam#1015 (comment)).

In older rustc versions, fallback to the previous implementation (copied to arch_legacy module).

@taiki-e taiki-e force-pushed the asm-maybe-uninit branch 7 times, most recently from 4c08cc0 to a8101c7 Compare August 24, 2023 16:26
@taiki-e taiki-e marked this pull request as ready for review August 24, 2023 16:26
@taiki-e taiki-e added O-arm Target: 32-bit Arm processors (armv6, armv7, thumb...), including 64-bit Arm in AArch32 state O-riscv Target: RISC-V architecture O-x86 Target: x86/x64 processors O-mips Target: MIPS processors O-powerpc Target: PowerPC processors O-s390x Target: SystemZ processors (s390x) O-loongarch Target: LoongArch O-hexagon Target: Qualcomm Hexagon O-msp430 Target: MSP430 labels Aug 24, 2023
@taiki-e taiki-e force-pushed the asm-maybe-uninit branch 6 times, most recently from a9462ec to fd6c994 Compare August 29, 2023 15:10
@taiki-e taiki-e force-pushed the asm-maybe-uninit branch 2 times, most recently from 0a195df to 0e7baeb Compare September 11, 2023 18:13
@taiki-e taiki-e force-pushed the asm-maybe-uninit branch 5 times, most recently from 3a1b9d4 to 036bd15 Compare September 24, 2023 18:59
@taiki-e taiki-e force-pushed the asm-maybe-uninit branch 3 times, most recently from 30cfa75 to 0fc10a5 Compare September 24, 2023 19:08
@taiki-e taiki-e force-pushed the asm-maybe-uninit branch 2 times, most recently from 0ebd6ec to 1d513a3 Compare September 25, 2023 12:52
@taiki-e taiki-e merged commit a3ce26c into main Sep 25, 2023
@taiki-e taiki-e deleted the asm-maybe-uninit branch September 25, 2023 13:22
@taiki-e taiki-e added the O-aarch64 Target: Armv8-A, Armv8-R, or later processors in AArch64 mode label Sep 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

O-aarch64 Target: Armv8-A, Armv8-R, or later processors in AArch64 mode O-arm Target: 32-bit Arm processors (armv6, armv7, thumb...), including 64-bit Arm in AArch32 state O-hexagon Target: Qualcomm Hexagon O-loongarch Target: LoongArch O-mips Target: MIPS processors O-msp430 Target: MSP430 O-powerpc Target: PowerPC processors O-riscv Target: RISC-V architecture O-s390x Target: SystemZ processors (s390x) O-x86 Target: x86/x64 processors

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant