Skip to content
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

[WIP] Parallel ILX Codegen #11531

Closed
wants to merge 36 commits into from
Closed

Conversation

TIHan
Copy link
Contributor

@TIHan TIHan commented May 6, 2021

This allows for the ability for the compiler to parallelize ILX codegen by each file's methods/functions. Last I checked, the perf gain was something similar to what we got from parallel parsing.

The one thing we really need to make sure is that the compiler is still deterministic. As an example, we will probably have to make changes to how closure names are generated.

PR Dependencies

Acceptance Criteria

  • Add tests that verify deterministic compilations
  • Add tests that specifically test parallelism of ILX codegen
  • Add performance tests.

@@ -712,6 +712,9 @@ type TcState =
{ x with tcsTcSigEnv = tcEnvAtEndOfLastInput
tcsTcImplEnv = tcEnvAtEndOfLastInput }

member x.RemoveImpl qualifiedNameOfFile =
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The changes made in ParseAndCheckInputs is from #11152 and needs to be removed in this PR.

@@ -439,10 +440,16 @@ type internal ByteBuffer =
let oldBufSize = buf.bbArray.Length
if newSize > oldBufSize then
let old = buf.bbArray
buf.bbArray <- Bytes.zeroCreate (max newSize (oldBufSize * 2))
buf.bbArray <- ArrayPool.Shared.Rent(max newSize (oldBufSize * 2))
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change should not be in this PR.

@vzarytovskii
Copy link
Member

@TIHan let me know if you want me to take care of FileSystem changes related merge conflicts.

@vzarytovskii vzarytovskii marked this pull request as draft September 6, 2022 17:30
@T-Gro T-Gro self-assigned this Oct 24, 2022
@T-Gro T-Gro added this to the November-2022 milestone Nov 3, 2022
@T-Gro T-Gro modified the milestones: December-2022, January-2023, Backlog Jan 9, 2023
@T-Gro
Copy link
Member

T-Gro commented Jan 10, 2023

Closing as I revived it in a different branch.

@T-Gro T-Gro closed this Jan 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

3 participants