about summary refs log tree commit diff
path: root/library/compiler-builtins/etc
AgeCommit message (Collapse)AuthorLines
2025-08-31Rollup merge of #144443 - WaffleLapkin:integer-target-pointer-width, r=NoratriebMatthias Krüger-1/+1
Make target pointer width in target json an integer r? Noratrieb cc `@RalfJung` (https://github.com/rust-lang/rust/pull/142352/files#r2230380120) try-job: x86_64-rust-for-linux
2025-08-27fix target-pointer-width in testsWaffle Lapkin-1/+1
2025-08-19Fix some typosStefan Schindler-1/+1
2025-07-04Test building custom targets and resolve an issue probing `rustc`Trevor Gross-0/+23
The `rustc` probe done in our build scripts needs to pass `--target` to get the correct configuration, which usually comes from the `TARGET` environment variable. However, for targets specified via a `target.json` file, `TARGET` gets set to the file name without an extension or path. `rustc` will check a search path to attempt to locate the file, but this is likely to fail since the directory where Cargo invokes build scripts (and hence where those scripts invoke `rustc`) might not have any relation to the JSON spec file. Resolve this for now by leaving `f16` and `f128` disabled if the `rustc` command fails. Result of the discussion at CARGO-14208 may eventually provide a better solution. A CI test is also added since custom JSON files are an edge case that could fail in other ways. I verified this fails without the fix here. The JSON file is the output for `thumbv7em-none-eabi`, just renamed so `rustc` doesn't identify it.
2025-05-03Use runtime feature detection for fma routines on x86Trevor Gross-0/+2
Get performance closer to the glibc implementations by adding assembly fma routines, with runtime feature detection so they are used even if not compiled with `+fma` (as the distributed standard library is often not). Glibc uses ifuncs, this implementation stores a function pointer in an atomic. Results of CPU flags are also cached in order to avoid repeating the startup time in calls to different functions. The feature detection code is a slightly simplified version of `std-detect`. Musl sources were used as a reference [1]. Fixes: https://github.com/rust-lang/rust/issues/140452 once synced [1]: https://github.com/bminor/musl/blob/c47ad25ea3b484e10326f933e927c0bc8cded3da/src/math/x32/fma.c
2025-05-03Rename the i686 module to x86Trevor Gross-2/+2
This module is used for both i686 and x86-64.
2025-05-03update-api-list: Match subdirectories within archTrevor Gross-1/+3
2025-04-29Refactor the fma modulesTrevor Gross-1/+1
Move implementations to `generic/` like the other functions. This also allows us to combine the `fma` and `fma_wide` modules.
2025-04-20ci: Remove the old libm workflow fileTrevor Gross-324/+0
All jobs are now run as part of `compiler-builtins`.
2025-04-20ci: Enable testing of `libm` cratesTrevor Gross-186/+0
Update `run.sh` to start testing `libm`. Currently this is somewhat inefficient because `builtins-test` gets run more than once on some targets; this can be cleaned up later.
2025-04-20Enable icount benchmarks in CITrevor Gross-474/+0
2025-04-19Move the libm .editorconfig to rootTrevor Gross-21/+0
2025-04-19Combine the libm .gitignoreTrevor Gross-11/+0
2025-04-19Remove libm CI dockerfilesTrevor Gross-249/+0
These are identical to what already exists in compiler-builtins except for some base image changes, so we can eliminate the duplicates.
2025-04-19Add libm and libm-macros to the workspaceTrevor Gross-37/+0
These should build and test correctly. `libm-test` and others that depend on it are excluded since the necessary CI is not yet set up.
2025-04-19Fix the release-plz jobTrevor Gross-27/+0
2025-04-19libm: Reorganize into compiler-builtinsTrevor Gross-0/+2921
Distribute everything from `libm/` to better locations in the repo. `libm/libm/*` has not moved yet to avoid Git seeing the move as an edit to `Cargo.toml`. Files that remain to be merged somehow are in `etc/libm`.