-
Notifications
You must be signed in to change notification settings - Fork 789
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
[WIP] Parallel ILX Codegen #11531
Conversation
…o commit delayed diagnostics
src/fsharp/ParseAndCheckInputs.fs
Outdated
@@ -712,6 +712,9 @@ type TcState = | |||
{ x with tcsTcSigEnv = tcEnvAtEndOfLastInput | |||
tcsTcImplEnv = tcEnvAtEndOfLastInput } | |||
|
|||
member x.RemoveImpl qualifiedNameOfFile = |
There was a problem hiding this comment.
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.
src/fsharp/absil/bytes.fs
Outdated
@@ -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)) |
There was a problem hiding this comment.
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.
@TIHan let me know if you want me to take care of FileSystem changes related merge conflicts. |
Closing as I revived it in a different branch. |
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