1
Fork 0
rust/compiler/rustc_target/src
Jubilee 322af5c274
Rollup merge of #125980 - kjetilkjeka:nvptx_remove_direct_passmode, r=davidtwco
Nvptx remove direct passmode

This PR does what should have been done in #117671. That is fully avoid using the `PassMode::Direct` for `extern "C" fn` for `nvptx64-nvidia-cuda` and enable the compatibility test. `@RalfJung` [pointed me in the right direction](https://github.com/rust-lang/rust/issues/117480#issuecomment-2137712501) for solving this issue.

There are still some ABI bugs after this PR is merged. These ABI tests are created based on what is actually correct, and since they continue passing with even more of them enabled things are improving. I don't have the time to tackle all the remaining issues right now, but I think getting these improvements merged is very valuable in themselves and plan to tackle more of them long term.

This also doesn't remove the use of `PassMode::Direct` for `extern "ptx-kernel" fn`. This was also not trivial to make work. And since the ABI is hidden behind an unstable feature it's less urgent.

I don't know if it's correct to request `@RalfJung` as a reviewer (due to team structures), but he helped me a lot to figure out this stuff. If that's not appropriate then `@davidtwco` would be a good candidate since he know about this topic from #117671

r​? `@RalfJung`
2024-06-12 03:57:20 -07:00
..
abi Rollup merge of #125980 - kjetilkjeka:nvptx_remove_direct_passmode, r=davidtwco 2024-06-12 03:57:20 -07:00
asm Remove extern crate rustc_macros from numerous crates. 2024-04-29 10:21:54 +10:00
spec Improve naming and path operations in crate loader 2024-06-06 21:53:29 +02:00
json.rs Add metadata to targets 2024-03-10 20:46:08 +01:00
lib.rs Improve naming and path operations in crate loader 2024-06-06 21:53:29 +02:00
target_features.rs Stop using the avx512er and avx512pf x86 target features 2024-05-24 20:12:42 +02:00
tests.rs Use serde_json for target spec json 2022-06-03 16:46:19 +00:00