Skip to content

Fix performance of IDL analysis passes #74

@dhower-qc

Description

@dhower-qc

The IDL analysis passes like possible_exceptions are super slow. This is likely caused by a few things:

  • They execute IDL code through the AST value() classes, and rely on ValueError exceptions to catch when values aren't known. That causes a lot of exceptions. We could get a substantial performance improvement by reporting unknown values a different way (converting to throw/catch would take the least amount of work. converting to explicitly checked return values would be best performance but code change)
  • Value calculations are repeated a lot on AstNodes since the result is rarely cached. Caching would help.
  • I think we could probably find ways to get an earlier out from some passes so there is less work done.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions