explicit tail calls: ignore some tests on unsupported LLVM targets#156585
explicit tail calls: ignore some tests on unsupported LLVM targets#156585InvalidPathException wants to merge 1 commit into
Conversation
|
Some changes occurred in src/tools/compiletest cc @jieyouxu |
|
My apologies for leaving the issue around - I've been waiting to see what happens to LLVM but it seems like we will not get support on these too soon, maybe it's better to just ignore these for now so they stop troubling folks... |
692d509 to
dc90e01
Compare
|
The rustc-dev-guide subtree was changed. If this PR only touches the dev guide consider submitting a PR directly to rust-lang/rustc-dev-guide otherwise thank you for updating the dev guide with your changes. |
| // See https://github.com/rust-lang/rust/issues/148748 for the target test matrix. | ||
| // See https://github.com/llvm/llvm-project/issues/63214 for AIX and PowerPC. | ||
| // See https://github.com/llvm/llvm-project/issues/57795 for MIPS and MIPS64. | ||
| // See https://github.com/llvm/llvm-project/issues/73167 for Thumb. |
There was a problem hiding this comment.
if you actually read that thread, it seems like tail calls actually do/should work at this point for thumb, at least for recent versions?
| // See https://github.com/llvm/llvm-project/pull/170547 for the RISC-V fix. | ||
| // See https://github.com/llvm/llvm-project/pull/191508 for the RISC-V revert. |
There was a problem hiding this comment.
just linking this llvm/llvm-project#185094 which fixes the riscv issue (and extends functionality too). Should be in LLVM 23, and I suspect loongarch will basically copy this approach.
Fixes #148748
Add ignore derivatives to two tests that cause the most platforms to fail, there are two reasons:
All tests involving
musttailshould fail on these platforms due to poor support overall by LLVM, but since they have low usage and supposedly already have many tests failing we limit ignores to the two "worst" tests.aix/powerpc issue: llvm/llvm-project#187119
thumb issue: llvm/llvm-project#73167
mips has been fixed but it is in a different LLVM version than what is pinned by Rust: llvm/llvm-project#57795
These were caused by argument/returns that do not fit in registers (e.g., indirect), they had a fix but were reverted due to lifetime issues:
RISC-V had a fix which got reverted: llvm/llvm-project#191508
LoongArch fix also got reverted: llvm/llvm-project#191525
Also add missing compiletest directive names for
ignore-csky,ignore-mips, andignore-mips64.r? folkertdev