-
Notifications
You must be signed in to change notification settings - Fork 106
Refactorings for enabling parallel compilation (part 1) #1264
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
The new codegen_and_compile_fn function only calls codegen_fn and then compile_fn. This makes it possible for both parts to be called separately by the driver.
This allows it to be executed on a background thread.
The allocator shim doesn't get reused and the allocator shim is just under 2kb, so reusing it is likely more expensive than regenerating it.
This reduces memory usage and may improve performance slightly.
The copy depends on Session, which is only available on the main thread. As such the copy can't be done on future codegen threads.
Error reporting requires a Session, which isn't available on background threads.
TyCtxt isn't available on background threads.
This was referenced Aug 13, 2022
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
C-cleanup
Category: PRs that clean code up or issues documenting cleanup.
C-enhancement
Category: An issue proposing an enhancement or a PR with one.
compile-time
How fast is the code compiled
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 PR contains a bunch of refactorings to remove dependencies on TyCtxt and Session for various functions that will in the future be called on background threads as those types are only available on the main thread.
While I was working on this refactoring I also managed to remove the partial linking hack previously necessary for allowing incremental compilation and inline assembly to work together. This fixes support for inline assembly on macOS. cc #1204
Part of #652
See #1266 for the next PR in this series.