Ensure we can optimize out does-nothing drop
s like array::IntoIter<NotNeedsDrop, N>
#139422
Labels
A-mir-opt
Area: MIR optimizations
C-optimization
Category: An issue highlighting optimization opportunities or PRs implementing such
T-compiler
Relevant to the compiler team, which will review and decide on the PR/issue.
Noticed this looking at #139415.
We already do this for
!needs_drop
types, butstd::array::IntoIter<&mut usize, 1>
does have aDrop
, and thusneeds_drop
is true because it's not trivially obvious that theDrop::drop
won't actually do anything.But if you look at https://rust.godbolt.org/z/raWrq6rsY you can see that we're emitting the call to the drop.
This probably is about inlining drop shims in MIR? Might be another way, though, if somehow we could notice in cg_ssa.
The text was updated successfully, but these errors were encountered: