Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup of 9 pull requests #128767

Closed
wants to merge 39 commits into from
Closed

Commits on Aug 1, 2024

  1. Specify the integer type of the powi LLVM intrinsic

    Since LLVM <https://reviews.llvm.org/D99439> (4c7f820, "Update
    @llvm.powi to handle different int sizes for the exponent"), the size of
    the integer can be specified for the `powi` intrinsic. Make use of this
    so it is more obvious that integer size is consistent across all float
    types.
    
    This feature is available since LLVM 13 (October 2021). Based on
    bootstrap we currently support >= 17.0, so there should be no support
    problems.
    tgross35 committed Aug 1, 2024
    Configuration menu
    Copy the full SHA
    e6d5702 View commit details
    Browse the repository at this point in the history
  2. Add math intrinsics for f16 and f128

    These already exist in the compiler. Expose them in core so we can add
    their library functions.
    tgross35 committed Aug 1, 2024
    Configuration menu
    Copy the full SHA
    82b40c4 View commit details
    Browse the repository at this point in the history
  3. Add math functions for f16 and f128

    This adds missing functions for math operations on the new float types.
    
    Platform support is pretty spotty at this point, since even platforms
    with generally good support can be missing math functions.
    `std/build.rs` is updated to reflect this.
    tgross35 committed Aug 1, 2024
    Configuration menu
    Copy the full SHA
    fc43c01 View commit details
    Browse the repository at this point in the history
  4. Add core functions for f16 and f128 that require math routines

    `min`, `max`, and similar functions require external math routines. Add
    these under the same gates as `std` math functions (`reliable_f16_math`
    and `reliable_f128_math`).
    tgross35 committed Aug 1, 2024
    Configuration menu
    Copy the full SHA
    e18036c View commit details
    Browse the repository at this point in the history
  5. Update comments for {f16, f32, f64, f128}::midpoint

    Clarify what makes some operations not safe, and correct comment in the
    default branch ("not safe" -> "safe").
    tgross35 committed Aug 1, 2024
    Configuration menu
    Copy the full SHA
    4383642 View commit details
    Browse the repository at this point in the history
  6. Add a disclaimer about x86 f128 math functions

    Due to a LLVM bug, `f128` math functions link successfully but LLVM
    chooses the wrong symbols (`long double` symbols rather than those for
    binary128).
    
    Since this is a notable problem that may surprise a number of users, add
    a note about it.
    
    Link: llvm/llvm-project#44744
    tgross35 committed Aug 1, 2024
    Configuration menu
    Copy the full SHA
    8e2ca0c View commit details
    Browse the repository at this point in the history

Commits on Aug 4, 2024

  1. Configuration menu
    Copy the full SHA
    b46237b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2e5341a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d8c2b76 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    3268b2e View commit details
    Browse the repository at this point in the history

Commits on Aug 5, 2024

  1. Enable msvc for run-make/rust-lld

    This is simply a matter of using the right argument for lld-link.
    ChrisDenton committed Aug 5, 2024
    Configuration menu
    Copy the full SHA
    1737845 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    131d453 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f31f8c4 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    011727f View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    1967951 View commit details
    Browse the repository at this point in the history
  6. rewrite simd-ffi to rmake

    Oneirical committed Aug 5, 2024
    Configuration menu
    Copy the full SHA
    1054054 View commit details
    Browse the repository at this point in the history

Commits on Aug 6, 2024

  1. Configuration menu
    Copy the full SHA
    0ac3d2e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a42ec98 View commit details
    Browse the repository at this point in the history
  3. Fix codegen tests

    calebzulawski committed Aug 6, 2024
    Configuration menu
    Copy the full SHA
    82fd5e9 View commit details
    Browse the repository at this point in the history
  4. Add missing features

    calebzulawski committed Aug 6, 2024
    Configuration menu
    Copy the full SHA
    5077f33 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    a3ffd8d View commit details
    Browse the repository at this point in the history
  6. Bless tests

    calebzulawski committed Aug 6, 2024
    Configuration menu
    Copy the full SHA
    d00d42f View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    0cdc508 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    d327fdb View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    9869a99 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    ee7d957 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    9c00b34 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    a141d76 View commit details
    Browse the repository at this point in the history
  13. Fix typo

    Co-authored-by: Amanieu d'Antras <[email protected]>
    calebzulawski and Amanieu committed Aug 6, 2024
    Configuration menu
    Copy the full SHA
    7a78383 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    4fad881 View commit details
    Browse the repository at this point in the history

Commits on Aug 7, 2024

  1. Rollup merge of rust-lang#128107 - Oneirical:tomato-hartester, r=jiey…

    …ouxu
    
    Migrate `raw-dylib-alt-calling-convention`, `raw-dylib-c` and `redundant-libs` `run-make` tests to rmake
    
    Part of rust-lang#121876 and the associated [Google Summer of Code project](https://blog.rust-lang.org/2024/05/01/gsoc-2024-selected-projects.html).
    
    Please try:
    
    // try-job: x86_64-msvc
    // try-job: x86_64-mingw
    // try-job: i686-msvc
    try-job: x86_64-gnu-llvm-17
    try-job: aarch64-apple
    tgross35 authored Aug 7, 2024
    Configuration menu
    Copy the full SHA
    e4f1b6c View commit details
    Browse the repository at this point in the history
  2. Rollup merge of rust-lang#128221 - calebzulawski:implied-target-featu…

    …res, r=Amanieu
    
    Add implied target features to target_feature attribute
    
    See [zulip](https://rust-lang.zulipchat.com/#narrow/stream/208962-t-libs.2Fstdarch/topic/Why.20would.20target-feature.20include.20implied.20features.3F) for some context.  Adds implied target features, e.g. `#[target_feature(enable = "avx2")]` acts like `#[target_feature(enable = "avx2,avx,sse4.2,sse4.1...")]`.  Fixes rust-lang#128125, fixes rust-lang#128426
    
    The implied feature sets are taken from [the rust reference](https://doc.rust-lang.org/reference/attributes/codegen.html?highlight=target-fea#x86-or-x86_64), there are certainly more features and targets to add.
    
    Please feel free to reassign this to whoever should review it.
    
    r? ``@Amanieu``
    tgross35 authored Aug 7, 2024
    Configuration menu
    Copy the full SHA
    9c09e87 View commit details
    Browse the repository at this point in the history
  3. Rollup merge of rust-lang#128362 - folkertdev:naked-function-symbol-v…

    …isibility, r=bjorn3
    
    add test for symbol visibility of `#[naked]` functions
    
    tracking issue: rust-lang#90957
    
    This test is extracted from rust-lang#128004
    
    That PR attempts to generated naked functions as an extern function declaration, combined with a global asm block that provides the implementation for that declaration.
    
    In order to link declaration and definition together, some flavor of external linking must be used: LLVM will error for other linkage types. Specifically the allowed options are `#[linkage = "external"]` and `#[linkage = "extern_weak"]`. That is kind of an implementation detail though: to the user, a naked function should just behave like a normal function.
    
    Hence it should be visible to the linker under the same circumstances as a normal, vanilla function and have the same attributes (Weak, External). Getting this behavior right will require some care, so I think it's a good idea to lock it in now, before making any changes, to make sure we don't regress.
    
    Are there any interesting cases that I missed here? E.g. is checking on different architectures worth it? I don't think the other binary types (rlib etc) are relevant here, but may be missing something.
    
    r? `@bjorn3`
    tgross35 authored Aug 7, 2024
    Configuration menu
    Copy the full SHA
    2e45a70 View commit details
    Browse the repository at this point in the history
  4. Rollup merge of rust-lang#128417 - tgross35:f16-f128-math, r=dtolnay

    Add `f16` and `f128` math functions
    
    This adds intrinsics and math functions for `f16` and `f128` floating point types. Support is quite limited and some things are broken so tests don't run on many platforms, but this provides a starting point.
    tgross35 authored Aug 7, 2024
    Configuration menu
    Copy the full SHA
    6329d89 View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#128638 - ChrisDenton:link-dedup, r=jieyouxu

    run-make: enable msvc for `link-dedup`
    
    This is just a case of differing style of linker arguments.
    
    I also cleaned up a bit where we were running the same command three times in a row. Instead I reused the output.
    
    One thing that confused me is why we were testing for the same lib three times in a row but not two. After figuring that out I added a note to hopefully save future readers some confusion.
    
    try-job: x86_64-msvc
    try-job: i686-msvc
    tgross35 authored Aug 7, 2024
    Configuration menu
    Copy the full SHA
    fd1bbf6 View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#128647 - ChrisDenton:link-args-order, r=jie…

    …youxu
    
    Enable msvc for link-args-order
    
    I could not see any reason in rust-lang#70665 why this test needs to specifically use `ld`. Maybe to provide a consistent linker input line? In any case, the test does work for the MSVC linker.
    
    try-job: i686-msvc
    try-job: x86_64-msvc
    tgross35 authored Aug 7, 2024
    Configuration menu
    Copy the full SHA
    38ebf04 View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#128649 - ChrisDenton:param-passing, r=jieyouxu

    run-make: Enable msvc for `no-duplicate-libs` and `zero-extend-abi-param-passing`
    
    The common thing between these two tests is to use `#[link(..., kind="static")]` so that it doesn't try to do a DLL import.
    
    `zero-extend-abi-param-passing` also needs to have an optimized static library but there's only helper function for a non-optimized version. Rather than copy/pasting the code (and adding the optimization flag) I reused the same code so that it more easily be kept in sync.
    
    try-job: i686-msvc
    try-job: x86_64-msvc
    tgross35 authored Aug 7, 2024
    Configuration menu
    Copy the full SHA
    5d986d7 View commit details
    Browse the repository at this point in the history
  8. Rollup merge of rust-lang#128656 - ChrisDenton:rust-lld, r=lqd

    Enable msvc for run-make/rust-lld
    
    This is simply a matter of using the right argument for lld-link.
    
    As a bonus, I also fixed a typo.
    
    try-job: i686-msvc
    try-job: x86_64-msvc
    tgross35 authored Aug 7, 2024
    Configuration menu
    Copy the full SHA
    fc593bf View commit details
    Browse the repository at this point in the history
  9. Rollup merge of rust-lang#128700 - Oneirical:i-ffind-these-tests-quit…

    …e-simdple, r=jieyouxu
    
    Migrate `simd-ffi` `run-make` test to rmake
    
    Part of rust-lang#121876 and the associated [Google Summer of Code project](https://blog.rust-lang.org/2024/05/01/gsoc-2024-selected-projects.html).
    
    try-job: x86_64-msvc
    try-job: x86_64-mingw
    try-job: i686-msvc
    try-job: armhf-gnu
    try-job: test-various
    try-job: aarch64-apple
    try-job: x86_64-gnu-llvm-17
    tgross35 authored Aug 7, 2024
    Configuration menu
    Copy the full SHA
    76169ec View commit details
    Browse the repository at this point in the history