Enable `outline-atomics` by default on more AArch64 platforms The baseline Armv8.0 ISA doesn't have atomics instructions, but in practice most hardware is at least Armv8.1-A (2014), which includes single-instruction atomics as part of the LSE feature. As a performance optimization for these cases, GCC and LLVM have the `-moutline-atomics` flag to turn atomic operations into calls to symbols like `__aarch64_cas1_acq`. These can do runtime feature detection and use the LSE instructions if available, falling back to more portable load-exclusive/store-exclusive loops. Since the recent |
||
|---|---|---|
| .. | ||
| .github/workflows | ||
| builtins-shim | ||
| builtins-test | ||
| builtins-test-intrinsics | ||
| ci | ||
| compiler-builtins | ||
| crates | ||
| etc | ||
| libm | ||
| libm-test | ||
| .editorconfig | ||
| .git-blame-ignore-revs | ||
| .gitignore | ||
| .rustfmt.toml | ||
| Cargo.toml | ||
| CONTRIBUTING.md | ||
| josh-sync.toml | ||
| LICENSE.txt | ||
| PUBLISHING.md | ||
| README.md | ||
| rust-version | ||
| triagebot.toml | ||
compiler-builtins and libm
This repository contains two main crates:
compiler-builtins: symbols that the compiler expects to be available at link timelibm: a Rust implementation of C math libraries, used to provide implementations incore.
More details are at compiler-builtins/README.md and libm/README.md.
For instructions on contributing, see CONTRIBUTING.md.
License
libmmay be used under the MIT Licensecompiler-builtinsmay be used under the MIT License and the Apache License, Version 2.0 with the LLVM exception.- All original contributions must be under all of: the MIT license, the Apache-2.0 license, and the Apache-2.0 license with the LLVM exception.
More details are in LICENSE.txt and libm/LICENSE.txt.