Simplify code generated for for_each_method_def and for_each_proto_slot #1641
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This change replaces
slice1.iter().chain(slice2)....chain(sliceN).for_each(f)
withf(slice1); f(slice2); ... f(sliceN);
.On a real-world project it significantly reduces number of lines of LLVM code generated by the compiler, with a similar improvement in compilation time.
I adapted the word_count example to add a
#[pyclass]
:According to
cargo llvm-lines --release
, before this change the top 10 functions in the word_count example, by number of LLVM lines, are:And after: