-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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
interpret: use new OpTy::len for Len rvalue #100085
Conversation
Some changes occurred to the CTFE / Miri engine cc @rust-lang/miri |
r? @lcnr (rust-highfive has picked a reviewer for you, use r? to override) |
This comment has been minimized.
This comment has been minimized.
Ouch, this regresses the lints because we are not conceptually 'reading' from the local rather than 'writing' to it (which is what Uh, how is that sound? If it is okay for |
i can't completely follow what's going on here r? @oli-obk |
Blocked on #100239. |
remove an ineffective check in const_prop Based on rust-lang#100043, only the last two commits are new. ConstProp has a special check when reading from a local that prevents reading uninit locals. However, if that local flows into `force_allocation`, then no check fires and evaluation proceeds. So this check is not really effective at preventing accesses to uninit locals. With rust-lang#100043, `read_immediate` and friends always fail when reading uninit locals, so I don't see why ConstProp would need a separate check. Thus I propose we remove it. This is needed to be able to do rust-lang#100085.
Now that #100239 landed, let's see if this works. |
@bors try @rust-timer queue I don't expect this to affect things, but the stress tests are weird, so let's run perf first. r=me once perf is done (just so we know whether to rollup or never) |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit ea8671e with merge 71d63d591e99dec6d4b2746b88e659e423649409... |
☀️ Try build successful - checks-actions |
Queued 71d63d591e99dec6d4b2746b88e659e423649409 with parent 230a8ee, future comparison URL. |
Finished benchmarking commit (71d63d591e99dec6d4b2746b88e659e423649409): comparison URL. Overall result: ❌ regressions - no action neededBenchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. While you can manually mark this PR as fit for rollup, we strongly recommend not doing so since this PR may lead to changes in compiler perf. @bors rollup=never Instruction countThis is a highly reliable metric that was used to determine the overall result at the top of this comment.
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.
CyclesResultsThis 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.
Footnotes |
@bors r+ rollup |
interpret: use new OpTy::len for Len rvalue This avoids a `force_allocation`.
interpret: use new OpTy::len for Len rvalue This avoids a `force_allocation`.
Failed in rollup: #101218 (comment) @bors r- |
Still rather strange that it would slow down the |
This avoids a `force_allocation`
Some changes occurred in src/tools/clippy cc @rust-lang/clippy |
@bors r=oli-obk rollup=iffy |
☀️ Test successful - checks-actions |
Finished benchmarking commit (9243168): 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.
CyclesResultsThis 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.
Footnotes |
This avoids a
force_allocation
.