Uh oh!
There was an error while loading. Please reload this page.
Self managing allocations - #55293
Conversation
rust-highfive
commented
Oct 23, 2018
r? @zackmdavis (rust_highfive has picked a reviewer for you, use r? to override) |
rust-highfive
commented
Oct 23, 2018
|
oli-obk
commented
Oct 23, 2018
rust-highfive
commented
Oct 23, 2018
The job Click to expand the log.I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
RalfJung
left a comment
There was a problem hiding this comment.
I expect that the miri submodule update will get messy because we don't know in which order our PRs will land. As long as we have so many miri-breaking PRs in flight, I think it is better to do the submodule updates separately.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
| ) -> EvalResult<'tcx> { | ||
| // Empty accesses don't need to be valid pointers, but they should still be non-NULL | ||
| let align = Align::from_bytes(1, 1).unwrap(); | ||
| if size.bytes() == 0 { |
There was a problem hiding this comment.
Now we check for emptiness twice. I think it should be fine to say that all the methods on an Allocation require an in-bounds ptr, even for size 0 -- then we'd have no special handling for size 0 here at all. All the handling would be in memory.rs where we need it anyway to handle integer pointers.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
oli-obk
commented
Oct 25, 2018
before removing the size==0 checks I was seeing nice perf improvements. Lets see if this was me failing to run perfruns properly. @bors try |
bors
commented
Oct 25, 2018
oli-obk
commented
Oct 25, 2018
@rust-timer build 80add95 |
rust-timer
commented
Oct 25, 2018
Success: Queued 80add95 with parent 3476ac0, comparison URL. |
Uh oh!
There was an error while loading. Please reload this page.
RalfJung
commented
Oct 25, 2018
Do we also want to find a new home for |
oli-obk
commented
Oct 25, 2018
pointer.rs ? |
RalfJung
commented
Oct 25, 2018
What would be in there? Sounds reasonable. |
RalfJung
commented
Oct 25, 2018
r=me if you remove the miri update and perf looks good |
bors
commented
Oct 25, 2018
☔ The latest upstream changes (presumably #55347) made this pull request unmergeable. Please resolve the merge conflicts. |
rust-timer
commented
Oct 25, 2018
Finished benchmarking try commit 80add95 |
oli-obk
commented
Oct 25, 2018
Oh yes! improvements up to 6% across the board. Not fetching those allocations 4x for 4 checks does have an effect. |
fba8adc to
a8b9eecCompareoli-obk
commented
Oct 25, 2018
@bors r=RalfJung |
bors
commented
Oct 25, 2018
📌 Commit a8b9eec4d2ca87ea45edb4f53682394eca7c893d has been approved by |
…rough `.get(alloc_id)`
This reverts commit d50e401.
880ba86 to
0aa2aa8Compareoli-obk
commented
Nov 2, 2018
I am unable to reproduce on x86 linux. I also don't see how these changes could cause changes in the emitted machine code. It's just a refactoring moving functions between modules. I could do this PR in steps by splitting it into smaller PRs |
RalfJung
commented
Nov 2, 2018
I don't have any better idea either. Maybe reduce this one to the most bitrotty "moving stuff around" part ( |
bors
commented
Nov 2, 2018
☔ The latest upstream changes (presumably #55316) made this pull request unmergeable. Please resolve the merge conflicts. |
oli-obk
commented
Nov 8, 2018
blocked on #55674 |
oli-obk
commented
Nov 13, 2018
closing in favour of #55915 |
No description provided.