ppc64le: rustc-LLVM ERROR: failed to perform tail call elimination on a call site marked musttail
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 119k
- Forks
- 16.2k
- PR merge metrics
- PR metrics pending
Description
On powerpc64le-unknown-linux-gnu, I get this failure with python3 src/bootstrap/bootstrap.py --stage 1 test library/std --doc:
---- library/std/src/keyword_docs.rs - become_keyword (line 1363) stdout ----
rustc-LLVM ERROR: failed to perform tail call elimination on a call site marked musttail
Couldn't compile the test.
\ (no newline at end of output)
---- library/std/src/keyword_docs.rs - become_keyword (line 1363) stdout end ----
failures:
library/std/src/keyword_docs.rs - become_keyword (line 1363)
test result: FAILED. 1402 passed; 1 failed; 20 ignored; 0 measured; 0 filtered out; finished in 22.99s
I found that the test failure went away when removing the become keyword from this line:
/// [inst, rest @ ..] => become TABLE[*inst as usize](rest, state),
There are other uses of become in this test which seem to have no issue. So it seems the issue can happen when become is used on a function looked up from a table, as opposed to when it is used on a direct call to a function item.
It looks like this would belong as a sub-issue under #112788 . The error appears similar to #148748, so possibly it is related?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the failure with python3 src/bootstrap/bootstrap.py --stage 1 test library/std --doc on powerpc64le-unknown-linux-gnu. Start at library/std/src/keyword_docs.rs line 1363, compare the other become uses in that test, and investigate the rustc/LLVM musttail failure for a function obtained from a table. Done means the documentation test passes without removing the become usage.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100