Skip to content

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.

{ 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.

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