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

Populate the CurrentBlockAnalysisData's _reachingWrites when creating an OperationTreeAnalysis. #73244

Commits on Apr 26, 2024

  1. Populate the CurrentBlockAnalysisData's _reachingWrites when creating…

    … an OperationTreeAnalysis.
    
    This is similar to what FlowGraphAnalysisData does upon inspecting a new block.
    
    Inspection of the lightbulb speedometer test demonstrated that a significant portion of CPU (~8%) in our OOP was spent in AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer. Looking at the code a bit indicated that the expensive calls to create/invoke the ControlFlowGraph weren't being short-circuited properly in the trivial cases I tried locally.
    
    When a read operation is encountered, the code looks at all writes that are still unread. For each of these, it upates the map to indicate that the write has now been read. However, this wasn't working for parameters as the _reachingWrites collection didn't account for them.
    ToddGrun committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    842d111 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e2bd051 View commit details
    Browse the repository at this point in the history