Open
Description
Given that our assembler output tends to have a lot of moves in it and LLVM is bad at optimizing them out, I'm beginning to wonder if we shouldn't take more aggressive steps. For example:
- Convert (non-POD?) by-value move parameters in the Rust ABI to be passed by reference.
- Non-immediate values that go dead by dint of being moved into a new place should not be memcpy'd there.
Any others?
Metadata
Metadata
Assignees
Labels
Area: Code generationArea: MIR optimizationsFixed by the Named Return Value Opt. (NRVO)Category: An issue proposing an enhancement or a PR with one.Issue: Problems and improvements with respect to performance of generated code.Relevant to the compiler team, which will review and decide on the PR/issue.