forked from facebook/redex
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add GlobalTypeAnalyzer::get_replayable_local_analysis() for local ana…
…lysis replay Summary: # Context: The `LocalTypeAnalyzer` by default includes `ClinitFieldAnalyzer` and `CtorFieldAnalyzer` that operate on a field type environment to model the heap when collecting type info for sfields and ifields. This design serves the WholeProgramState aggregation really well to not fall back to the previous global state too quickly. In the end, we aggregate all the field writes in the WholeProgramState, so everything is good. However, after running the global type analysis, when replaying individual local analysis, for each individual field read, we should go straight to the global state. We should in this case, ignore the partial local info, and always go to the global one for completeness. # This Change: In this change, we split up the `LocalTypeAnalyzer` into two. The existing one operating on local field type environment remains the same, and serves WholeProgramState collection in the same way. We add a new one for replay purpose only after the global type analysis. The new replayable local analysis does not feed local field info into the register type environment. It always rely on the WholeProgramState for that. Reviewed By: NTillmann Differential Revision: D51539668 fbshipit-source-id: f765f0b912b286fe604baef95fd6417c5d4799c9
- Loading branch information
1 parent
9a3865e
commit 134979d
Showing
11 changed files
with
65 additions
and
51 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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