perf: tagged values can be interpreted as borrowed#13152
Conversation
|
!bench |
|
Benchmark results for 958d50d against c71a0ea are in. Significant changes detected! @hargoniX
Large changes (1✅)
Medium changes (2✅, 1🟥)
Small changes (10✅, 8🟥)
|
|
Mathlib CI status (docs):
|
|
Reference manual CI status:
|
958d50d to
357c671
Compare
357c671 to
e486d31
Compare
|
!bench |
|
Benchmark results for e486d31 against e06fc0b are in. Significant changes detected! @hargoniX
Large changes (2✅)
Medium changes (2✅)
Small changes (8✅, 7🟥)
|
|
!bench |
|
Benchmark results for 9ba9497 against e06fc0b are in. Significant changes detected! @hargoniX
No significant changes detected. |
|
!bench |
|
Benchmark results for ab77b10 against e06fc0b are in. Significant changes detected! @hargoniX
No significant changes detected. |
bfc3e6f to
88fb9b1
Compare
|
!bench |
|
Benchmark results for 88fb9b1 against 79ac2d9 are in. Significant changes detected! @hargoniX
Large changes (1✅)
Medium changes (2✅)
Small changes (8✅, 3🟥)
|
edd1afa to
f994159
Compare
This PR informs the RC optimizer that tagged values can also be considered as "borrowed" in the sense that we do not need to consider them as owned values for the borrow analysis (they do of course not have an allocation they actually borrow from). Implementation note: For the derived borrows analysis we instead just disregard parents that are tagged. Note that we cannot match on types in passes before boxing as the IR might still be type incorrect at that point.
This PR informs the RC optimizer that tagged values can also be considered as "borrowed" in the sense that we do not need to consider them as owned values for the borrow analysis (they do of course not have an allocation they actually borrow from).
Implementation note: For the derived borrows analysis we instead just disregard parents that are tagged. Note that we cannot match on types in passes before boxing as the IR might still be type incorrect at that point.