Skip to content

Conversation

@Gelbpunkt
Copy link
Contributor

The test relies on LLVM not merging all the globals into one and would currently otherwise fail on powerpc64le.

See https://github.com/llvm/llvm-project/blob/release/20.x/llvm/lib/CodeGen/GlobalMerge.cpp and here's the assembly generated prior to disabling the pass:

Expand me
.abiversion 2 .file"cstring_merging.5aa81ea7b99b31fe-cgu.0" .section.text.cstr,"ax",@progbits .globl	cstr .p2align4 .type	cstr,@function cstr: .Lfunc_begin0: .cfi_startproc .Lfunc_gep0: addis 2, 12, .TOC.-.Lfunc_gep0@ha addi 2, 2, .TOC.-.Lfunc_gep0@l .Lfunc_lep0: .localentry	cstr, .Lfunc_lep0-.Lfunc_gep0 addis 3, 2, .L_MergedGlobals@toc@ha li 4, 4 addi 3, 3, .L_MergedGlobals@toc@l addi 3, 3, 4 blr .long0 .quad0 .Lfunc_end0: .size	cstr, .Lfunc_end0-.Lfunc_begin0 .cfi_endproc .section.text.manual_cstr,"ax",@progbits .globl	manual_cstr .p2align4 .type	manual_cstr,@function manual_cstr: .Lfunc_begin1: .cfi_startproc .Lfunc_gep1: addis 2, 12, .TOC.-.Lfunc_gep1@ha addi 2, 2, .TOC.-.Lfunc_gep1@l .Lfunc_lep1: .localentry	manual_cstr, .Lfunc_lep1-.Lfunc_gep1 addis 3, 2, .L_MergedGlobals@toc@ha li 4, 4 addi 3, 3, .L_MergedGlobals@toc@l addi 3, 3, 8 blr .long0 .quad0 .Lfunc_end1: .size	manual_cstr, .Lfunc_end1-.Lfunc_begin1 .cfi_endproc .type	CSTR,@object .section.data.rel.ro.CSTR,"aw",@progbits .globl	CSTR .p2align3, 0x0 CSTR: .quad	.L_MergedGlobals .size	CSTR, 8 .type	.L_MergedGlobals,@object .section.rodata..L_MergedGlobals,"a",@progbits .L_MergedGlobals: .asciz"foo" .asciz"bar" .asciz"baz" .size	.L_MergedGlobals, 12 .set .Lanon.a643e9a6bba67b7953be2b5f96e0e802.0, .L_MergedGlobals .size	.Lanon.a643e9a6bba67b7953be2b5f96e0e802.0, 4 .set .Lanon.a643e9a6bba67b7953be2b5f96e0e802.1, .L_MergedGlobals+4 .size	.Lanon.a643e9a6bba67b7953be2b5f96e0e802.1, 4 .set .Lanon.a643e9a6bba67b7953be2b5f96e0e802.2, .L_MergedGlobals+8 .size	.Lanon.a643e9a6bba67b7953be2b5f96e0e802.2, 4 .ident"rustc version 1.90.0-dev" .section".note.GNU-stack","",@progbits
The test relies on LLVM not merging all the globals into one and would currently otherwise fail on powerpc64le. Signed-off-by: Jens Reidel <adrian@travitia.xyz>
@rustbot
Copy link
Collaborator

rustbot commented Jul 18, 2025

r? @Mark-Simulacrum

rustbot has assigned @Mark-Simulacrum.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Jul 18, 2025
@Mark-Simulacrum
Copy link
Member

@bors r+

@bors
Copy link
Collaborator

bors commented Jul 19, 2025

📌 Commit 2d51acd has been approved by Mark-Simulacrum

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jul 19, 2025
GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this pull request Jul 20, 2025
…lacrum tests: assembly: cstring-merging: Disable GlobalMerge pass The test relies on LLVM not merging all the globals into one and would currently otherwise fail on powerpc64le. See https://github.com/llvm/llvm-project/blob/release/20.x/llvm/lib/CodeGen/GlobalMerge.cpp and here's the assembly generated prior to disabling the pass: <details> <summary>Expand me</summary> ```asm	.abiversion 2	.file	"cstring_merging.5aa81ea7b99b31fe-cgu.0"	.section	.text.cstr,"ax",`@progbits`	.globl	cstr	.p2align	4	.type	cstr,`@function` cstr: .Lfunc_begin0:	.cfi_startproc .Lfunc_gep0:	addis 2, 12, .TOC.-.Lfunc_gep0@ha	addi 2, 2, .TOC.-.Lfunc_gep0@l .Lfunc_lep0:	.localentry	cstr, .Lfunc_lep0-.Lfunc_gep0	addis 3, 2, .L_MergedGlobals@toc@ha	li 4, 4	addi 3, 3, .L_MergedGlobals@toc@l	addi 3, 3, 4	blr	.long	0	.quad	0 .Lfunc_end0:	.size	cstr, .Lfunc_end0-.Lfunc_begin0	.cfi_endproc	.section	.text.manual_cstr,"ax",`@progbits`	.globl	manual_cstr	.p2align	4	.type	manual_cstr,`@function` manual_cstr: .Lfunc_begin1:	.cfi_startproc .Lfunc_gep1:	addis 2, 12, .TOC.-.Lfunc_gep1@ha	addi 2, 2, .TOC.-.Lfunc_gep1@l .Lfunc_lep1:	.localentry	manual_cstr, .Lfunc_lep1-.Lfunc_gep1	addis 3, 2, .L_MergedGlobals@toc@ha	li 4, 4	addi 3, 3, .L_MergedGlobals@toc@l	addi 3, 3, 8	blr	.long	0	.quad	0 .Lfunc_end1:	.size	manual_cstr, .Lfunc_end1-.Lfunc_begin1	.cfi_endproc	.type	CSTR,`@object`	.section	.data.rel.ro.CSTR,"aw",`@progbits`	.globl	CSTR	.p2align	3, 0x0 CSTR:	.quad	.L_MergedGlobals	.size	CSTR, 8	.type	.L_MergedGlobals,`@object`	.section	.rodata..L_MergedGlobals,"a",`@progbits` .L_MergedGlobals:	.asciz	"foo"	.asciz	"bar"	.asciz	"baz"	.size	.L_MergedGlobals, 12 .set .Lanon.a643e9a6bba67b7953be2b5f96e0e802.0, .L_MergedGlobals	.size	.Lanon.a643e9a6bba67b7953be2b5f96e0e802.0, 4 .set .Lanon.a643e9a6bba67b7953be2b5f96e0e802.1, .L_MergedGlobals+4	.size	.Lanon.a643e9a6bba67b7953be2b5f96e0e802.1, 4 .set .Lanon.a643e9a6bba67b7953be2b5f96e0e802.2, .L_MergedGlobals+8	.size	.Lanon.a643e9a6bba67b7953be2b5f96e0e802.2, 4	.ident	"rustc version 1.90.0-dev"	.section	".note.GNU-stack","",`@progbits` ``` </details>
bors added a commit that referenced this pull request Jul 20, 2025
Rollup of 9 pull requests Successful merges: - #143282 (Add `uX::strict_sub_signed`) - #143423 (address clippy formatting nits) - #143720 (Allow `Rvalue::Repeat` to return true in `rvalue_creates_operand` too) - #144011 (bootstrap: Don't trigger an unnecessary LLVM build from check builds) - #144112 (bootstrap: Ignore `rust.debuginfo-level-tests` for codegen tests) - #144125 (Add new `ignore-backends` and `needs-backends` tests annotations) - #144143 (Fix `-Ctarget-feature`s getting ignored after `crt-static`) - #144150 (tests: assembly: cstring-merging: Disable GlobalMerge pass) - #144190 (Give a message with a span on MIR validation error) r? `@ghost` `@rustbot` modify labels: rollup
@bors bors merged commit 8e7601e into rust-lang:master Jul 20, 2025
11 checks passed
@rustbot rustbot added this to the 1.90.0 milestone Jul 20, 2025
rust-timer added a commit that referenced this pull request Jul 20, 2025
Rollup merge of #144150 - Gelbpunkt:globalmerge, r=Mark-Simulacrum tests: assembly: cstring-merging: Disable GlobalMerge pass The test relies on LLVM not merging all the globals into one and would currently otherwise fail on powerpc64le. See https://github.com/llvm/llvm-project/blob/release/20.x/llvm/lib/CodeGen/GlobalMerge.cpp and here's the assembly generated prior to disabling the pass: <details> <summary>Expand me</summary> ```asm	.abiversion 2	.file	"cstring_merging.5aa81ea7b99b31fe-cgu.0"	.section	.text.cstr,"ax",``@progbits``	.globl	cstr	.p2align	4	.type	cstr,``@function`` cstr: .Lfunc_begin0:	.cfi_startproc .Lfunc_gep0:	addis 2, 12, .TOC.-.Lfunc_gep0@ha	addi 2, 2, .TOC.-.Lfunc_gep0@l .Lfunc_lep0:	.localentry	cstr, .Lfunc_lep0-.Lfunc_gep0	addis 3, 2, .L_MergedGlobals@toc@ha	li 4, 4	addi 3, 3, .L_MergedGlobals@toc@l	addi 3, 3, 4	blr	.long	0	.quad	0 .Lfunc_end0:	.size	cstr, .Lfunc_end0-.Lfunc_begin0	.cfi_endproc	.section	.text.manual_cstr,"ax",``@progbits``	.globl	manual_cstr	.p2align	4	.type	manual_cstr,``@function`` manual_cstr: .Lfunc_begin1:	.cfi_startproc .Lfunc_gep1:	addis 2, 12, .TOC.-.Lfunc_gep1@ha	addi 2, 2, .TOC.-.Lfunc_gep1@l .Lfunc_lep1:	.localentry	manual_cstr, .Lfunc_lep1-.Lfunc_gep1	addis 3, 2, .L_MergedGlobals@toc@ha	li 4, 4	addi 3, 3, .L_MergedGlobals@toc@l	addi 3, 3, 8	blr	.long	0	.quad	0 .Lfunc_end1:	.size	manual_cstr, .Lfunc_end1-.Lfunc_begin1	.cfi_endproc	.type	CSTR,``@object``	.section	.data.rel.ro.CSTR,"aw",``@progbits``	.globl	CSTR	.p2align	3, 0x0 CSTR:	.quad	.L_MergedGlobals	.size	CSTR, 8	.type	.L_MergedGlobals,``@object``	.section	.rodata..L_MergedGlobals,"a",``@progbits`` .L_MergedGlobals:	.asciz	"foo"	.asciz	"bar"	.asciz	"baz"	.size	.L_MergedGlobals, 12 .set .Lanon.a643e9a6bba67b7953be2b5f96e0e802.0, .L_MergedGlobals	.size	.Lanon.a643e9a6bba67b7953be2b5f96e0e802.0, 4 .set .Lanon.a643e9a6bba67b7953be2b5f96e0e802.1, .L_MergedGlobals+4	.size	.Lanon.a643e9a6bba67b7953be2b5f96e0e802.1, 4 .set .Lanon.a643e9a6bba67b7953be2b5f96e0e802.2, .L_MergedGlobals+8	.size	.Lanon.a643e9a6bba67b7953be2b5f96e0e802.2, 4	.ident	"rustc version 1.90.0-dev"	.section	".note.GNU-stack","",``@progbits`` ``` </details>
github-actions bot pushed a commit to rust-lang/rustc-dev-guide that referenced this pull request Jul 21, 2025
Rollup of 9 pull requests Successful merges: - rust-lang/rust#143282 (Add `uX::strict_sub_signed`) - rust-lang/rust#143423 (address clippy formatting nits) - rust-lang/rust#143720 (Allow `Rvalue::Repeat` to return true in `rvalue_creates_operand` too) - rust-lang/rust#144011 (bootstrap: Don't trigger an unnecessary LLVM build from check builds) - rust-lang/rust#144112 (bootstrap: Ignore `rust.debuginfo-level-tests` for codegen tests) - rust-lang/rust#144125 (Add new `ignore-backends` and `needs-backends` tests annotations) - rust-lang/rust#144143 (Fix `-Ctarget-feature`s getting ignored after `crt-static`) - rust-lang/rust#144150 (tests: assembly: cstring-merging: Disable GlobalMerge pass) - rust-lang/rust#144190 (Give a message with a span on MIR validation error) r? `@ghost` `@rustbot` modify labels: rollup
github-actions bot pushed a commit to rust-lang/miri that referenced this pull request Jul 21, 2025
Rollup of 9 pull requests Successful merges: - rust-lang/rust#143282 (Add `uX::strict_sub_signed`) - rust-lang/rust#143423 (address clippy formatting nits) - rust-lang/rust#143720 (Allow `Rvalue::Repeat` to return true in `rvalue_creates_operand` too) - rust-lang/rust#144011 (bootstrap: Don't trigger an unnecessary LLVM build from check builds) - rust-lang/rust#144112 (bootstrap: Ignore `rust.debuginfo-level-tests` for codegen tests) - rust-lang/rust#144125 (Add new `ignore-backends` and `needs-backends` tests annotations) - rust-lang/rust#144143 (Fix `-Ctarget-feature`s getting ignored after `crt-static`) - rust-lang/rust#144150 (tests: assembly: cstring-merging: Disable GlobalMerge pass) - rust-lang/rust#144190 (Give a message with a span on MIR validation error) r? `@ghost` `@rustbot` modify labels: rollup
Muscraft pushed a commit to Muscraft/rust that referenced this pull request Jul 21, 2025
…lacrum tests: assembly: cstring-merging: Disable GlobalMerge pass The test relies on LLVM not merging all the globals into one and would currently otherwise fail on powerpc64le. See https://github.com/llvm/llvm-project/blob/release/20.x/llvm/lib/CodeGen/GlobalMerge.cpp and here's the assembly generated prior to disabling the pass: <details> <summary>Expand me</summary> ```asm	.abiversion 2	.file	"cstring_merging.5aa81ea7b99b31fe-cgu.0"	.section	.text.cstr,"ax",``@progbits``	.globl	cstr	.p2align	4	.type	cstr,``@function`` cstr: .Lfunc_begin0:	.cfi_startproc .Lfunc_gep0:	addis 2, 12, .TOC.-.Lfunc_gep0@ha	addi 2, 2, .TOC.-.Lfunc_gep0@l .Lfunc_lep0:	.localentry	cstr, .Lfunc_lep0-.Lfunc_gep0	addis 3, 2, .L_MergedGlobals@toc@ha	li 4, 4	addi 3, 3, .L_MergedGlobals@toc@l	addi 3, 3, 4	blr	.long	0	.quad	0 .Lfunc_end0:	.size	cstr, .Lfunc_end0-.Lfunc_begin0	.cfi_endproc	.section	.text.manual_cstr,"ax",``@progbits``	.globl	manual_cstr	.p2align	4	.type	manual_cstr,``@function`` manual_cstr: .Lfunc_begin1:	.cfi_startproc .Lfunc_gep1:	addis 2, 12, .TOC.-.Lfunc_gep1@ha	addi 2, 2, .TOC.-.Lfunc_gep1@l .Lfunc_lep1:	.localentry	manual_cstr, .Lfunc_lep1-.Lfunc_gep1	addis 3, 2, .L_MergedGlobals@toc@ha	li 4, 4	addi 3, 3, .L_MergedGlobals@toc@l	addi 3, 3, 8	blr	.long	0	.quad	0 .Lfunc_end1:	.size	manual_cstr, .Lfunc_end1-.Lfunc_begin1	.cfi_endproc	.type	CSTR,``@object``	.section	.data.rel.ro.CSTR,"aw",``@progbits``	.globl	CSTR	.p2align	3, 0x0 CSTR:	.quad	.L_MergedGlobals	.size	CSTR, 8	.type	.L_MergedGlobals,``@object``	.section	.rodata..L_MergedGlobals,"a",``@progbits`` .L_MergedGlobals:	.asciz	"foo"	.asciz	"bar"	.asciz	"baz"	.size	.L_MergedGlobals, 12 .set .Lanon.a643e9a6bba67b7953be2b5f96e0e802.0, .L_MergedGlobals	.size	.Lanon.a643e9a6bba67b7953be2b5f96e0e802.0, 4 .set .Lanon.a643e9a6bba67b7953be2b5f96e0e802.1, .L_MergedGlobals+4	.size	.Lanon.a643e9a6bba67b7953be2b5f96e0e802.1, 4 .set .Lanon.a643e9a6bba67b7953be2b5f96e0e802.2, .L_MergedGlobals+8	.size	.Lanon.a643e9a6bba67b7953be2b5f96e0e802.2, 4	.ident	"rustc version 1.90.0-dev"	.section	".note.GNU-stack","",``@progbits`` ``` </details>
Muscraft pushed a commit to Muscraft/rust that referenced this pull request Jul 21, 2025
…llaumeGomez Rollup of 9 pull requests Successful merges: - rust-lang#143282 (Add `uX::strict_sub_signed`) - rust-lang#143423 (address clippy formatting nits) - rust-lang#143720 (Allow `Rvalue::Repeat` to return true in `rvalue_creates_operand` too) - rust-lang#144011 (bootstrap: Don't trigger an unnecessary LLVM build from check builds) - rust-lang#144112 (bootstrap: Ignore `rust.debuginfo-level-tests` for codegen tests) - rust-lang#144125 (Add new `ignore-backends` and `needs-backends` tests annotations) - rust-lang#144143 (Fix `-Ctarget-feature`s getting ignored after `crt-static`) - rust-lang#144150 (tests: assembly: cstring-merging: Disable GlobalMerge pass) - rust-lang#144190 (Give a message with a span on MIR validation error) r? `@ghost` `@rustbot` modify labels: rollup
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

4 participants