tests/assembly-llvm: pin frame pointer in issue-141649 aarch64 test#159328
Conversation
|
r? @jieyouxu rustbot has assigned @jieyouxu. Use Why was this reviewer chosen?The reviewer was selected based on:
|
This comment has been minimized.
This comment has been minimized.
|
@rustbot reroll |
|
Reminder, once the PR becomes ready for a review, use |
|
@rustbot author |
|
Also please note that AI-generated PR descriptions are frowned upon in this project (and generally I think it is good etiquette to get explicit consent from people before confronting them with AI-generated text, or to hide all such text behind a "further LLVM-generated details you can freely skip"). The point of a PR description is for you to describe your motivation and understanding of this change. During the PR review process we expect to interact with a human who has a genuine interest in understanding how to fix this issue properly, and as part of that we expect the PR description to be written by said human. |
|
I'm surprised that this is the root cause. LLVM should produce the same result regardless of the optimization level used to build it. Could you explaina bit more? |
|
Thank you all for the feedback. I apologize for the AI-generated description, that was a mistake on my part. Let me provide the proper explanation based on my investigation. Root cause: The failure occurs in OE-core (OpenEmbedded/Yocto) builds where Rust is compiled against an external system LLVM and tests are run against a custom target The built-in
I confirmed this by changing I think both the values are correct. Please let me know what I need to do now. Whether I can update the commit message with the same fix what we have in this PR or shall I update the testcase with Let me know which approach you'd prefer and I'll update the PR accordingly. |
|
I'd prefer the variant using |
The `scoped_two_small_structs` test expects `sub sp, sp, rust-lang#48` on aarch64, which assumes the frame pointer (x29) is saved. Custom targets that don't set `frame-pointer: non-leaf` (e.g., OpenEmbedded/Yocto's `aarch64-poky-linux-gnu`) omit x29, producing `sub sp, sp, rust-lang#32` instead. Add `-Cforce-frame-pointers=yes` to the aarch64 revision so the test produces consistent codegen regardless of the target's default frame pointer policy. Signed-off-by: Deepesh Varatharajan <[email protected]>
0cb43cc to
9e0664a
Compare
|
|
@rustbot ready |
…arch64-stack-check, r=mati865 tests/assembly-llvm: pin frame pointer in issue-141649 aarch64 test The `scoped_two_small_structs` test expects `sub sp, sp, rust-lang#48` on aarch64, which assumes the frame pointer (x29) is saved. Custom targets that don't set `frame-pointer: non-leaf` (e.g., OpenEmbedded/Yocto's `aarch64-poky-linux-gnu`) omit x29, producing `sub sp, sp, rust-lang#32` instead. Add `-Cforce-frame-pointers=yes` to the aarch64 revision so the test produces consistent codegen regardless of the target's default frame pointer policy.
…uwer Rollup of 5 pull requests Successful merges: - #159189 (Account for type alias projections in E0308 "expected/found" shortening logic) - #158545 (Move `std::io::read_to_string` to `alloc::io`) - #159328 (tests/assembly-llvm: pin frame pointer in issue-141649 aarch64 test) - #159470 (Fix string indexing in diagnostic format strings) - #159500 (Move compiletest CLI parsing to `cli.rs`)
…arch64-stack-check, r=mati865 tests/assembly-llvm: pin frame pointer in issue-141649 aarch64 test The `scoped_two_small_structs` test expects `sub sp, sp, rust-lang#48` on aarch64, which assumes the frame pointer (x29) is saved. Custom targets that don't set `frame-pointer: non-leaf` (e.g., OpenEmbedded/Yocto's `aarch64-poky-linux-gnu`) omit x29, producing `sub sp, sp, rust-lang#32` instead. Add `-Cforce-frame-pointers=yes` to the aarch64 revision so the test produces consistent codegen regardless of the target's default frame pointer policy.
…uwer Rollup of 5 pull requests Successful merges: - #159467 (Add explicit `Iterator::count` impl for `str::EncodeUtf16`) - #158545 (Move `std::io::read_to_string` to `alloc::io`) - #159328 (tests/assembly-llvm: pin frame pointer in issue-141649 aarch64 test) - #159470 (Fix string indexing in diagnostic format strings) - #159500 (Move compiletest CLI parsing to `cli.rs`)
…uwer Rollup of 8 pull requests Successful merges: - #159425 (Windows: add context when opening NUL for child stdio fails) - #159467 (Add explicit `Iterator::count` impl for `str::EncodeUtf16`) - #157860 (Move rustdoc run-make tests into new `tests/run-make/rustdoc/`) - #158545 (Move `std::io::read_to_string` to `alloc::io`) - #159328 (tests/assembly-llvm: pin frame pointer in issue-141649 aarch64 test) - #159459 (Detect when trait bound requires closure to return itself) - #159470 (Fix string indexing in diagnostic format strings) - #159500 (Move compiletest CLI parsing to `cli.rs`)
Rollup merge of #159328 - DeepeshWR:fix/issue-141649-relax-aarch64-stack-check, r=mati865 tests/assembly-llvm: pin frame pointer in issue-141649 aarch64 test The `scoped_two_small_structs` test expects `sub sp, sp, #48` on aarch64, which assumes the frame pointer (x29) is saved. Custom targets that don't set `frame-pointer: non-leaf` (e.g., OpenEmbedded/Yocto's `aarch64-poky-linux-gnu`) omit x29, producing `sub sp, sp, #32` instead. Add `-Cforce-frame-pointers=yes` to the aarch64 revision so the test produces consistent codegen regardless of the target's default frame pointer policy.
…uwer Rollup of 8 pull requests Successful merges: - rust-lang/rust#159425 (Windows: add context when opening NUL for child stdio fails) - rust-lang/rust#159467 (Add explicit `Iterator::count` impl for `str::EncodeUtf16`) - rust-lang/rust#157860 (Move rustdoc run-make tests into new `tests/run-make/rustdoc/`) - rust-lang/rust#158545 (Move `std::io::read_to_string` to `alloc::io`) - rust-lang/rust#159328 (tests/assembly-llvm: pin frame pointer in issue-141649 aarch64 test) - rust-lang/rust#159459 (Detect when trait bound requires closure to return itself) - rust-lang/rust#159470 (Fix string indexing in diagnostic format strings) - rust-lang/rust#159500 (Move compiletest CLI parsing to `cli.rs`)
The
scoped_two_small_structstest expectssub sp, sp, #48onaarch64, which assumes the frame pointer (x29) is saved. Custom targets
that don't set
frame-pointer: non-leaf(e.g., OpenEmbedded/Yocto'saarch64-poky-linux-gnu) omit x29, producingsub sp, sp, #32instead.Add
-Cforce-frame-pointers=yesto the aarch64 revision so the testproduces consistent codegen regardless of the target's default frame
pointer policy.