Skip to content

Pass struct types by pointer, drop arguments in the caller#849

Closed
marijnh wants to merge 2 commits intorust-lang:masterfrom
marijnh:caller-drop
Closed

Pass struct types by pointer, drop arguments in the caller#849
marijnh wants to merge 2 commits intorust-lang:masterfrom
marijnh:caller-drop

Conversation

@marijnh
Copy link
Contributor

@marijnh marijnh commented Aug 19, 2011

The first nail in the coffin of tail calls. It passes all tests, but I don't want to land it right away because some people might still believe in tail calls. So if you object, speak now or forever hold your peace. If no discussion is forthcoming (I'll post a heads-up on the mailing list), I'll merge this myself in a few days.

If we lose tail calls, this is possible. It simplifies things a lot.

Direct motivation: We want ivecs with pointers pointing into
themselves. When copying those, the pointers have to be adjusted. It
is impossible to this when copying them with Load/Store.
This makes it easier for the caller to optimize the take/drop away for
temporary values, and opens up new possibilities for alias handling.

Breaks tail calls.
@marijnh
Copy link
Contributor Author

marijnh commented Aug 22, 2011

Integrated.

@marijnh marijnh closed this Aug 22, 2011
keeperofdakeys pushed a commit to keeperofdakeys/rust that referenced this pull request Dec 12, 2017
Separate and Update Fuchsia

The first commit pulls Fuchsia out into its own directory, while the second commit updates the "open" flags as in rust-lang#848.

cc @smklein, @alexcrichton
ZuseZ4 pushed a commit to EnzymeAD/rust that referenced this pull request Mar 7, 2023
* Add atomic fadd for reverse mode

* Fix lower version

* Fix for version

* add maybealign
celinval pushed a commit to celinval/rust-dev that referenced this pull request Jun 4, 2024
GuillaumeGomez pushed a commit to GuillaumeGomez/rust that referenced this pull request Feb 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant