-
Notifications
You must be signed in to change notification settings - Fork 327
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
DiagnosticStorage
is being allocated eagerly for every IR
#10727
Comments
Dmitry Bushev reports a new STANDUP for today (2024-08-16): Progress: [10727] Started working on the issue. Reproduced a large number of allocations of Next Day: Next day I will be working on the #10727 task. Continue working on the task |
Dmitry Bushev reports a new STANDUP for yesterday (2024-08-19): Progress: [10727] Implemented lazy diagnostics logic. Implemented lazy diagnostics for all the IR nodes. Started testing It should be finished by 2024-08-23. Next Day: Next day I will be working on the #10727 task. Continue working on the task |
Dmitry Bushev reports a new STANDUP for today (2024-08-20): Progress: [10727] Eliminated instantiations of diagnostics in the GatherDiagnostics compiler pass. Eliminate redundant instantiations during the nodes copying in various compiler passes. Fixed the persistence logic for diagnostics storage. Started fixing the tests It should be finished by 2024-08-23. Next Day: Next day I will be working on the #10727 task. Continue working on the task |
Dmitry Bushev reports a new STANDUP for yesterday (2024-08-21): Progress: [10727] Fixed the serialization tests. Updated the constructor functions for some IR nodes. Fixed tests for GatherDiagnostics compiler pass. Re-viewed and cleaned up the PR. It should be finished by 2024-08-23. Next Day: Next day I will be working on the #10727 task. Continue working on the task |
Dmitry Bushev reports a new STANDUP for today (2024-08-22): Progress: [10727] Refactored the IR interface. Fixing a bunch of merge conflicts. Fixing failing tests on CI. Final clean up and measurements. Undrafted the PR. It should be finished by 2024-08-23. Next Day: Next day I will be working on the #10727 task. Continue working on the task |
close #10727 Changelog: - add: implement lazy allocation of `DiagnosticStorage` objects - update: compiler phases to make sure they don't allocate redundant `DiagnosticStorage` objects - update: cleanup `DiagnosticStorage` class # Important Notes As a result, all 10MB of redundant `DiagnosticStorage` allocations are gone #### Before ![2024-08-21-170148_2092x171_scrot](https://github.com/user-attachments/assets/c1fd34d5-019d-472f-b523-a5c31b87f454) #### After ![2024-08-21-170058_1693x131_scrot](https://github.com/user-attachments/assets/10d71d81-42b7-4b3c-a49f-ca6267bc6ccf)
For a (very) simple Enso program we seem to allocate a lot of
DiagnosticStorage
objects:The allocation could be done lazily as typically we need a very small fraction of those.
The text was updated successfully, but these errors were encountered: