Skip to content

Sort symbol names by demangled name first to avoid different ordering on hash changes - #162003

Draft
panstromek wants to merge 3 commits into
rust-lang:mainfrom
panstromek:symbol-name-ordering
Draft

Sort symbol names by demangled name first to avoid different ordering on hash changes#162003
panstromek wants to merge 3 commits into
rust-lang:mainfrom
panstromek:symbol-name-ordering

Conversation

@panstromek

@panstromek panstromek commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

View all comments

fixes #152910

For now just experimenting here to see whether this helps rustc-perf noise

@rustbot rustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Aug 30, 2026
@panstromek

Copy link
Copy Markdown
Contributor Author

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Aug 30, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Aug 30, 2026
Sort symbol names by demangled name first to avoid different ordering on hash chanes
@panstromek

Copy link
Copy Markdown
Contributor Author

I'll do initial perf run, and then I'll try to push a few no-op changes and do perf on those (always using the same parent) to see how this affects artifact noise.

@panstromek panstromek changed the title Sort symbol names by demangled name first to avoid different ordering on hash chanes Sort symbol names by demangled name first to avoid different ordering on hash changes Aug 30, 2026
@rust-log-analyzer

This comment has been minimized.

@rust-bors

rust-bors Bot commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 9b041cc (9b041ccfacbdc9bb94384021e11a2192221a0718)
Base parent: 3cabe36 (3cabe36ceb022e2f56d4d330b1e2886f31117f18)

@rust-timer

This comment has been minimized.

@Kobzol

Kobzol commented Aug 30, 2026

Copy link
Copy Markdown
Member

Interested in the perf. here, as this was quite hot on some benchmarks, IIRC (but it only showed in cycles).

@panstromek

panstromek commented Aug 30, 2026

Copy link
Copy Markdown
Contributor Author

I believe this should mostly preserve the properties of the ordering you introduced in #145358. It should effectively just move the crate hash to the end. (unless I messed this up :D)

Not sure about the demangled string and comparison perf, but at the moment I just want to diff this against future runs, so this should be fine for a prototype.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (9b041cc): comparison URL.

Overall result: ❌ regressions - please read:

Benchmarking means the PR may be perf-sensitive. It's automatically marked not fit for rolling up. Overriding is possible but disadvised: it risks changing compiler perf.

Next, please: If you can, justify the regressions found in this try perf run in writing along with @rustbot label: +perf-regression-triaged. If not, fix the regressions and do another perf run. Neutral or positive results will clear the label automatically.

@bors rollup=never rustc-perf
@rustbot label: -S-waiting-on-perf +perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
0.4% [0.1%, 1.3%] 55
Regressions ❌
(secondary)
0.7% [0.1%, 2.1%] 67
Improvements ✅
(primary)
-0.4% [-0.7%, -0.1%] 6
Improvements ✅
(secondary)
-0.4% [-0.7%, -0.2%] 11
All ❌✅ (primary) 0.3% [-0.7%, 1.3%] 61

Max RSS (memory usage)

Results (primary 0.7%, secondary -2.0%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
2.8% [2.4%, 3.2%] 2
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-3.6% [-3.6%, -3.6%] 1
Improvements ✅
(secondary)
-2.0% [-2.0%, -2.0%] 1
All ❌✅ (primary) 0.7% [-3.6%, 3.2%] 3

Cycles

Results (primary 2.6%, secondary 2.4%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
2.6% [2.6%, 2.6%] 1
Regressions ❌
(secondary)
2.4% [2.3%, 2.6%] 3
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 2.6% [2.6%, 2.6%] 1

Binary size

Results (primary -0.0%, secondary -0.0%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.0% [0.0%, 0.1%] 19
Regressions ❌
(secondary)
0.0% [0.0%, 0.1%] 23
Improvements ✅
(primary)
-0.1% [-0.3%, -0.0%] 14
Improvements ✅
(secondary)
-0.1% [-0.6%, -0.0%] 6
All ❌✅ (primary) -0.0% [-0.3%, 0.1%] 33

Bootstrap: 475.389s -> 477.502s (0.44%)
Artifact size: 402.85 MiB -> 402.81 MiB (-0.01%)

@rustbot rustbot added perf-regression Performance regression. and removed S-waiting-on-perf Status: Waiting on a perf run to be completed. labels Aug 30, 2026
@rustbot rustbot added the A-meta Area: Issues & PRs about the rust-lang/rust repository itself label Aug 30, 2026
@panstromek

Copy link
Copy Markdown
Contributor Author

Interesting, that's quite an impact. Anyway, let's try the no-op change.

@bors try parent=9b041ccfacbdc9bb94384021e11a2192221a0718
@rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Aug 30, 2026
rust-bors Bot pushed a commit that referenced this pull request Aug 30, 2026
Sort symbol names by demangled name first to avoid different ordering on hash changes
@rust-log-analyzer

This comment has been minimized.

@rust-bors

rust-bors Bot commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: fc7d1f2 (fc7d1f2ff50c0f99e7e96f8bdf291d9a4c5fdcd9)
Base parent: 9b041cc (9b041ccfacbdc9bb94384021e11a2192221a0718)

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (fc7d1f2): comparison URL.

Overall result: no relevant changes - no action needed

Benchmarking means the PR may be perf-sensitive. Consider adding rollup=never if this change is not fit for rolling up.

@rustbot label: -S-waiting-on-perf -perf-regression

Instruction count

This perf run didn't have relevant results for this metric.

Max RSS (memory usage)

Results (primary -0.4%, secondary -0.1%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.9% [0.4%, 5.0%] 17
Regressions ❌
(secondary)
0.9% [0.4%, 2.7%] 42
Improvements ✅
(primary)
-1.2% [-6.7%, -0.4%] 30
Improvements ✅
(secondary)
-0.9% [-4.8%, -0.4%] 50
All ❌✅ (primary) -0.4% [-6.7%, 5.0%] 47

Cycles

Results (primary -0.1%, secondary -0.2%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.9% [0.4%, 2.8%] 59
Regressions ❌
(secondary)
1.2% [0.4%, 7.3%] 114
Improvements ✅
(primary)
-0.9% [-2.9%, -0.4%] 75
Improvements ✅
(secondary)
-1.9% [-15.7%, -0.4%] 94
All ❌✅ (primary) -0.1% [-2.9%, 2.8%] 134

Binary size

This perf run didn't have relevant results for this metric.

Bootstrap: 477.502s -> 476.641s (-0.18%)
Artifact size: 402.81 MiB -> 400.85 MiB (-0.49%)

@rustbot rustbot removed the perf-regression Performance regression. label Aug 30, 2026
@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Aug 30, 2026
@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job aarch64-gnu-llvm-21-1 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
-    |
- LL |     intrinsics::simd::simd_add(a, b)
-    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- 
7 error[E0511]: invalid monomorphization of `cttz` intrinsic: expected basic integer type, found `Foo`
8   --> $DIR/bad-intrinsic-monomorphization.rs:16:5
9    |

10 LL |     intrinsics::cttz(v)
11    |     ^^^^^^^^^^^^^^^^^^^
---
14 

Note: some mismatched output was normalized before being compared
-   --> /checkout/tests/ui/intrinsics/bad-intrinsic-monomorphization.rs:16:5
+ error[E0511]: invalid monomorphization of `cttz` intrinsic: expected basic integer type, found `Foo`
+   --> $DIR/bad-intrinsic-monomorphization.rs:16:5
+    |
+ LL |     intrinsics::cttz(v)
+    |     ^^^^^^^^^^^^^^^^^^^
+ 
---
To only update this specific test, also pass `--test-args intrinsics/bad-intrinsic-monomorphization.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/intrinsics/bad-intrinsic-monomorphization.rs" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/intrinsics/bad-intrinsic-monomorphization" "-Znext-solver=coherence" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers"
stdout: none
--- stderr -------------------------------
error[E0511]: invalid monomorphization of `cttz` intrinsic: expected basic integer type, found `Foo`
##[error]  --> /checkout/tests/ui/intrinsics/bad-intrinsic-monomorphization.rs:16:5
   |
LL |     intrinsics::cttz(v)
   |     ^^^^^^^^^^^^^^^^^^^

---

- error[E0511]: invalid monomorphization of `atomic_load` intrinsic: expected basic integer or pointer type, found `&dyn Fn()`
-   --> $DIR/non-integer-atomic.rs:55:5
-    |
- LL |     intrinsics::atomic_load::<_, { SeqCst }, false>(p);
-    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- 
- error[E0511]: invalid monomorphization of `atomic_xchg` intrinsic: expected basic integer or pointer type, found `&dyn Fn()`
-   --> $DIR/non-integer-atomic.rs:65:5
-    |
- LL |     intrinsics::atomic_xchg::<_, { SeqCst }>(p, v);
-    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- 
- error[E0511]: invalid monomorphization of `atomic_load` intrinsic: expected basic integer or pointer type, found `Foo`
-   --> $DIR/non-integer-atomic.rs:35:5
-    |
- LL |     intrinsics::atomic_load::<_, { SeqCst }, false>(p);
-    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- 
- error[E0511]: invalid monomorphization of `atomic_xchg` intrinsic: expected basic integer or pointer type, found `Foo`
-   --> $DIR/non-integer-atomic.rs:45:5
-    |
- LL |     intrinsics::atomic_xchg::<_, { SeqCst }>(p, v);
-    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- 
25 error[E0511]: invalid monomorphization of `atomic_cxchg` intrinsic: expected basic integer or pointer type, found `&dyn Fn()`
26   --> $DIR/non-integer-atomic.rs:70:5
27    |

28 LL |     intrinsics::atomic_cxchg::<_, { SeqCst }, { SeqCst }>(p, v, v);
29    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
30 
+ error[E0511]: invalid monomorphization of `atomic_load` intrinsic: expected basic integer or pointer type, found `&dyn Fn()`
+   --> $DIR/non-integer-atomic.rs:55:5
+    |
+ LL |     intrinsics::atomic_load::<_, { SeqCst }, false>(p);
+    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ 
31 error[E0511]: invalid monomorphization of `atomic_store` intrinsic: expected basic integer or pointer type, found `&dyn Fn()`
32   --> $DIR/non-integer-atomic.rs:60:5
33    |

34 LL |     intrinsics::atomic_store::<_, { SeqCst }, false>(p, v);
35    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
36 
+ error[E0511]: invalid monomorphization of `atomic_xchg` intrinsic: expected basic integer or pointer type, found `&dyn Fn()`
+   --> $DIR/non-integer-atomic.rs:65:5
+    |
+ LL |     intrinsics::atomic_xchg::<_, { SeqCst }>(p, v);
+    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ 
37 error[E0511]: invalid monomorphization of `atomic_cxchg` intrinsic: expected basic integer or pointer type, found `Foo`
38   --> $DIR/non-integer-atomic.rs:50:5
39    |

40 LL |     intrinsics::atomic_cxchg::<_, { SeqCst }, { SeqCst }>(p, v, v);
41    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
42 
+ error[E0511]: invalid monomorphization of `atomic_load` intrinsic: expected basic integer or pointer type, found `Foo`
+   --> $DIR/non-integer-atomic.rs:35:5
+    |
+ LL |     intrinsics::atomic_load::<_, { SeqCst }, false>(p);
+    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ 
43 error[E0511]: invalid monomorphization of `atomic_store` intrinsic: expected basic integer or pointer type, found `Foo`
44   --> $DIR/non-integer-atomic.rs:40:5
45    |

46 LL |     intrinsics::atomic_store::<_, { SeqCst }, false>(p, v);
47    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
48 
- error[E0511]: invalid monomorphization of `atomic_load` intrinsic: expected basic integer or pointer type, found `[u8; 100]`
-   --> $DIR/non-integer-atomic.rs:75:5
+ error[E0511]: invalid monomorphization of `atomic_xchg` intrinsic: expected basic integer or pointer type, found `Foo`
+   --> $DIR/non-integer-atomic.rs:45:5
51    |
- LL |     intrinsics::atomic_load::<_, { SeqCst }, false>(p);
-    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- 
- error[E0511]: invalid monomorphization of `atomic_xchg` intrinsic: expected basic integer or pointer type, found `[u8; 100]`
-   --> $DIR/non-integer-atomic.rs:85:5
-    |
58 LL |     intrinsics::atomic_xchg::<_, { SeqCst }>(p, v);
59    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
60 

- error[E0511]: invalid monomorphization of `atomic_load` intrinsic: expected basic integer or pointer type, found `bool`
-   --> $DIR/non-integer-atomic.rs:15:5
-    |
- LL |     intrinsics::atomic_load::<_, { SeqCst }, false>(p);
-    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- 
- error[E0511]: invalid monomorphization of `atomic_xchg` intrinsic: expected basic integer or pointer type, found `bool`
-   --> $DIR/non-integer-atomic.rs:25:5
-    |
- LL |     intrinsics::atomic_xchg::<_, { SeqCst }>(p, v);
-    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- 
73 error[E0511]: invalid monomorphization of `atomic_cxchg` intrinsic: expected basic integer or pointer type, found `[u8; 100]`
74   --> $DIR/non-integer-atomic.rs:90:5
75    |

76 LL |     intrinsics::atomic_cxchg::<_, { SeqCst }, { SeqCst }>(p, v, v);
77    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
78 
+ error[E0511]: invalid monomorphization of `atomic_load` intrinsic: expected basic integer or pointer type, found `[u8; 100]`
+   --> $DIR/non-integer-atomic.rs:75:5
+    |
+ LL |     intrinsics::atomic_load::<_, { SeqCst }, false>(p);
+    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ 
79 error[E0511]: invalid monomorphization of `atomic_store` intrinsic: expected basic integer or pointer type, found `[u8; 100]`
80   --> $DIR/non-integer-atomic.rs:80:5
81    |

82 LL |     intrinsics::atomic_store::<_, { SeqCst }, false>(p, v);
83    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
84 
+ error[E0511]: invalid monomorphization of `atomic_xchg` intrinsic: expected basic integer or pointer type, found `[u8; 100]`
+   --> $DIR/non-integer-atomic.rs:85:5
+    |
+ LL |     intrinsics::atomic_xchg::<_, { SeqCst }>(p, v);
+    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ 
85 error[E0511]: invalid monomorphization of `atomic_cxchg` intrinsic: expected basic integer or pointer type, found `bool`
86   --> $DIR/non-integer-atomic.rs:30:5
87    |

88 LL |     intrinsics::atomic_cxchg::<_, { SeqCst }, { SeqCst }>(p, v, v);
89    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
90 
+ error[E0511]: invalid monomorphization of `atomic_load` intrinsic: expected basic integer or pointer type, found `bool`
+   --> $DIR/non-integer-atomic.rs:15:5
+    |
+ LL |     intrinsics::atomic_load::<_, { SeqCst }, false>(p);
+    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ 
91 error[E0511]: invalid monomorphization of `atomic_store` intrinsic: expected basic integer or pointer type, found `bool`
92   --> $DIR/non-integer-atomic.rs:20:5
93    |

94 LL |     intrinsics::atomic_store::<_, { SeqCst }, false>(p, v);
95    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ 
+ error[E0511]: invalid monomorphization of `atomic_xchg` intrinsic: expected basic integer or pointer type, found `bool`
+   --> $DIR/non-integer-atomic.rs:25:5
+    |
+ LL |     intrinsics::atomic_xchg::<_, { SeqCst }>(p, v);
+    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
96 
97 error: aborting due to 16 previous errors
98 

---
-   --> /checkout/tests/ui/intrinsics/non-integer-atomic.rs:75:5
-   --> /checkout/tests/ui/intrinsics/non-integer-atomic.rs:80:5
-   --> /checkout/tests/ui/intrinsics/non-integer-atomic.rs:30:5
-   --> /checkout/tests/ui/intrinsics/non-integer-atomic.rs:20:5
+ error[E0511]: invalid monomorphization of `atomic_cxchg` intrinsic: expected basic integer or pointer type, found `&dyn Fn()`
+   --> $DIR/non-integer-atomic.rs:70:5
+    |
+ LL |     intrinsics::atomic_cxchg::<_, { SeqCst }, { SeqCst }>(p, v, v);
+    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ 
+ error[E0511]: invalid monomorphization of `atomic_store` intrinsic: expected basic integer or pointer type, found `&dyn Fn()`
+   --> $DIR/non-integer-atomic.rs:60:5
+    |
+ LL |     intrinsics::atomic_store::<_, { SeqCst }, false>(p, v);
+    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ 
+ error[E0511]: invalid monomorphization of `atomic_cxchg` intrinsic: expected basic integer or pointer type, found `Foo`
+   --> $DIR/non-integer-atomic.rs:50:5
+    |
+ LL |     intrinsics::atomic_cxchg::<_, { SeqCst }, { SeqCst }>(p, v, v);
+    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ 
+ error[E0511]: invalid monomorphization of `atomic_store` intrinsic: expected basic integer or pointer type, found `Foo`
+   --> $DIR/non-integer-atomic.rs:40:5
+    |
+ LL |     intrinsics::atomic_store::<_, { SeqCst }, false>(p, v);
+    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ 
+ error[E0511]: invalid monomorphization of `atomic_cxchg` intrinsic: expected basic integer or pointer type, found `[u8; 100]`
+   --> $DIR/non-integer-atomic.rs:90:5
+ error[E0511]: invalid monomorphization of `atomic_load` intrinsic: expected basic integer or pointer type, found `[u8; 100]`
+   --> $DIR/non-integer-atomic.rs:75:5
+ LL |     intrinsics::atomic_load::<_, { SeqCst }, false>(p);
+    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ error[E0511]: invalid monomorphization of `atomic_store` intrinsic: expected basic integer or pointer type, found `[u8; 100]`
+   --> $DIR/non-integer-atomic.rs:80:5
+ error[E0511]: invalid monomorphization of `atomic_cxchg` intrinsic: expected basic integer or pointer type, found `bool`
+   --> $DIR/non-integer-atomic.rs:30:5
+    |
+ LL |     intrinsics::atomic_cxchg::<_, { SeqCst }, { SeqCst }>(p, v, v);
+    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ 
+ error[E0511]: invalid monomorphization of `atomic_store` intrinsic: expected basic integer or pointer type, found `bool`
+   --> $DIR/non-integer-atomic.rs:20:5
+    |
+ LL |     intrinsics::atomic_store::<_, { SeqCst }, false>(p, v);
+    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ 


The actual stderr differed from the expected stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args intrinsics/non-integer-atomic.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/intrinsics/non-integer-atomic.rs" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/intrinsics/non-integer-atomic" "-Znext-solver=coherence" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers"
stdout: none
--- stderr -------------------------------
error[E0511]: invalid monomorphization of `atomic_cxchg` intrinsic: expected basic integer or pointer type, found `&dyn Fn()`
##[error]  --> /checkout/tests/ui/intrinsics/non-integer-atomic.rs:70:5
   |
LL |     intrinsics::atomic_cxchg::<_, { SeqCst }, { SeqCst }>(p, v, v);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0511]: invalid monomorphization of `atomic_load` intrinsic: expected basic integer or pointer type, found `&dyn Fn()`
##[error]  --> /checkout/tests/ui/intrinsics/non-integer-atomic.rs:55:5
   |
LL |     intrinsics::atomic_load::<_, { SeqCst }, false>(p);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0511]: invalid monomorphization of `atomic_store` intrinsic: expected basic integer or pointer type, found `&dyn Fn()`
##[error]  --> /checkout/tests/ui/intrinsics/non-integer-atomic.rs:60:5
   |
LL |     intrinsics::atomic_store::<_, { SeqCst }, false>(p, v);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0511]: invalid monomorphization of `atomic_xchg` intrinsic: expected basic integer or pointer type, found `&dyn Fn()`
##[error]  --> /checkout/tests/ui/intrinsics/non-integer-atomic.rs:65:5
   |
LL |     intrinsics::atomic_xchg::<_, { SeqCst }>(p, v);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0511]: invalid monomorphization of `atomic_cxchg` intrinsic: expected basic integer or pointer type, found `Foo`
##[error]  --> /checkout/tests/ui/intrinsics/non-integer-atomic.rs:50:5
   |
LL |     intrinsics::atomic_cxchg::<_, { SeqCst }, { SeqCst }>(p, v, v);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0511]: invalid monomorphization of `atomic_load` intrinsic: expected basic integer or pointer type, found `Foo`
##[error]  --> /checkout/tests/ui/intrinsics/non-integer-atomic.rs:35:5
   |
LL |     intrinsics::atomic_load::<_, { SeqCst }, false>(p);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0511]: invalid monomorphization of `atomic_store` intrinsic: expected basic integer or pointer type, found `Foo`
##[error]  --> /checkout/tests/ui/intrinsics/non-integer-atomic.rs:40:5
   |
LL |     intrinsics::atomic_store::<_, { SeqCst }, false>(p, v);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0511]: invalid monomorphization of `atomic_xchg` intrinsic: expected basic integer or pointer type, found `Foo`
##[error]  --> /checkout/tests/ui/intrinsics/non-integer-atomic.rs:45:5
   |
LL |     intrinsics::atomic_xchg::<_, { SeqCst }>(p, v);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0511]: invalid monomorphization of `atomic_cxchg` intrinsic: expected basic integer or pointer type, found `[u8; 100]`
##[error]  --> /checkout/tests/ui/intrinsics/non-integer-atomic.rs:90:5
   |
LL |     intrinsics::atomic_cxchg::<_, { SeqCst }, { SeqCst }>(p, v, v);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0511]: invalid monomorphization of `atomic_load` intrinsic: expected basic integer or pointer type, found `[u8; 100]`
##[error]  --> /checkout/tests/ui/intrinsics/non-integer-atomic.rs:75:5
   |
LL |     intrinsics::atomic_load::<_, { SeqCst }, false>(p);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0511]: invalid monomorphization of `atomic_store` intrinsic: expected basic integer or pointer type, found `[u8; 100]`
##[error]  --> /checkout/tests/ui/intrinsics/non-integer-atomic.rs:80:5
   |
LL |     intrinsics::atomic_store::<_, { SeqCst }, false>(p, v);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0511]: invalid monomorphization of `atomic_xchg` intrinsic: expected basic integer or pointer type, found `[u8; 100]`
##[error]  --> /checkout/tests/ui/intrinsics/non-integer-atomic.rs:85:5
   |
LL |     intrinsics::atomic_xchg::<_, { SeqCst }>(p, v);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0511]: invalid monomorphization of `atomic_cxchg` intrinsic: expected basic integer or pointer type, found `bool`
##[error]  --> /checkout/tests/ui/intrinsics/non-integer-atomic.rs:30:5
   |
LL |     intrinsics::atomic_cxchg::<_, { SeqCst }, { SeqCst }>(p, v, v);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0511]: invalid monomorphization of `atomic_load` intrinsic: expected basic integer or pointer type, found `bool`
##[error]  --> /checkout/tests/ui/intrinsics/non-integer-atomic.rs:15:5
   |
LL |     intrinsics::atomic_load::<_, { SeqCst }, false>(p);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0511]: invalid monomorphization of `atomic_store` intrinsic: expected basic integer or pointer type, found `bool`
##[error]  --> /checkout/tests/ui/intrinsics/non-integer-atomic.rs:20:5
   |
LL |     intrinsics::atomic_store::<_, { SeqCst }, false>(p, v);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0511]: invalid monomorphization of `atomic_xchg` intrinsic: expected basic integer or pointer type, found `bool`
##[error]  --> /checkout/tests/ui/intrinsics/non-integer-atomic.rs:25:5
   |
LL |     intrinsics::atomic_xchg::<_, { SeqCst }>(p, v);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to 16 previous errors

For more information about this error, try `rustc --explain E0511`.

@panstromek

Copy link
Copy Markdown
Contributor Author

@bors try parent=fc7d1f2ff50c0f99e7e96f8bdf291d9a4c5fdcd9
@rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Aug 30, 2026
rust-bors Bot pushed a commit that referenced this pull request Aug 30, 2026
Sort symbol names by demangled name first to avoid different ordering on hash changes
@rust-bors

rust-bors Bot commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: d6cf21d (d6cf21dfb294e70b68e0b9d16e097a6d53652706)
Base parent: fc7d1f2 (fc7d1f2ff50c0f99e7e96f8bdf291d9a4c5fdcd9)

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (d6cf21d): comparison URL.

Overall result: ❌ regressions - no action needed

Benchmarking means the PR may be perf-sensitive. Consider adding rollup=never if this change is not fit for rolling up.

@rustbot label: -S-waiting-on-perf -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
0.3% [0.3%, 0.3%] 5
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary 0.5%, secondary 0.1%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
1.1% [0.4%, 5.8%] 48
Regressions ❌
(secondary)
1.1% [0.4%, 7.5%] 68
Improvements ✅
(primary)
-0.8% [-1.3%, -0.4%] 21
Improvements ✅
(secondary)
-1.0% [-4.9%, -0.4%] 61
All ❌✅ (primary) 0.5% [-1.3%, 5.8%] 69

Cycles

Results (primary 0.2%, secondary 0.1%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.8% [0.4%, 2.0%] 94
Regressions ❌
(secondary)
1.3% [0.4%, 9.4%] 123
Improvements ✅
(primary)
-0.8% [-2.4%, -0.4%] 48
Improvements ✅
(secondary)
-1.3% [-7.1%, -0.4%] 105
All ❌✅ (primary) 0.2% [-2.4%, 2.0%] 142

Binary size

This perf run didn't have relevant results for this metric.

Bootstrap: 476.641s -> 482.1s (1.15%)
Artifact size: 400.85 MiB -> 402.86 MiB (0.50%)

@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Aug 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-meta Area: Issues & PRs about the rust-lang/rust repository itself S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Symbol order in executable unstable with v0 mangling when -Cmetadata changes

5 participants