1
0
mirror of https://github.com/google/comprehensive-rust.git synced 2025-12-02 17:33:34 +02:00
Files
comprehensive-rust/src/borrowing
Gergely Risko 889a4cbbee Fix the debug exercise in the "Borrowing a Value" section (#2083)
Trying to reproduce this RVO shows that actually the optimization that
is used here is simple inlining. Once inlining is disabled, the
addresses change, even with `-O -C opt-level=3`.

The return of the values is also never changed to an "efficient memcpy",
but instead was returned on eax+edx, although this result is of course
specific to the calling convention of the platform ABI, but no memcpy on
the most popular amd64 architecture.

I don't think it's educationally important to teach RVO here, so I
didn't go into any length trying to force Rust to do a real RVO (passing
Point address into the function on the assembly level, so the function
can fill in the addition). In my opinion the only important thing is,
that if a student is actually clicking the Playground link and looks
into the assembly, then our description should match the generated code.
That's why I just fixed the content instead of trying to fix the example
to be RVO.
2024-05-17 10:07:47 -04:00
..
2023-11-29 16:39:24 +01:00
2023-11-29 16:39:24 +01:00