-
Notifications
You must be signed in to change notification settings - Fork 12.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix duplicate arcinner_layout_for_value_layout
calls when using the uninit Arc
constructors
#111634
Conversation
r? @thomcc (rustbot has picked a reviewer for you, use r? to override) |
Hey! It looks like you've submitted a new PR for the library teams! If this PR contains changes to any Examples of
|
This basically looks fine to me. There could be a perf impact, but I doubt we use this much in the compiler, so I don't feel compelled to do a perf run first. @bors r+ rollup=never |
☀️ Test successful - checks-actions |
1 similar comment
☀️ Test successful - checks-actions |
Finished benchmarking commit (2fe47b9): comparison URL. Overall result: no relevant changes - no action needed@rustbot label: -perf-regression Instruction countThis benchmark run did not return any relevant results for this metric. Max RSS (memory usage)ResultsThis is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesThis benchmark run did not return any relevant results for this metric. Binary sizeResultsThis is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
Bootstrap: 643.403s -> 643.016s (-0.06%) |
What this fixes is the duplicate calls to
arcinner_layout_for_value_layout
seen here: https://godbolt.org/z/jr5GxozhjThe issue was discovered alongside #111603 but is otherwise unrelated to the duplicate
alloca
s, which remain unsolved. Everything I tried to solve said main issue has failed.As for the duplicate layout calculations, I also tried slapping
#[inline]
and#[inline(always)]
on everything in sight but the only thing that worked in the end is to dedup the calls by hand.