-
Notifications
You must be signed in to change notification settings - Fork 24
Add live variables analysis before type inference #267
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
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
detekt found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.
d5d9536
to
878dd37
Compare
981b4ed
to
71892b4
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice!
usvm-ts-dataflow/src/test/kotlin/org/usvm/dataflow/ts/test/EtsTypeResolverPerformanceTest.kt
Outdated
Show resolved
Hide resolved
usvm-ts-dataflow/src/main/kotlin/org/usvm/dataflow/ts/util/EtsTraits.kt
Outdated
Show resolved
Hide resolved
usvm-ts-dataflow/src/main/kotlin/org/usvm/dataflow/ts/infer/TypeInferenceManager.kt
Outdated
Show resolved
Hide resolved
usvm-ts-dataflow/src/main/kotlin/org/usvm/dataflow/ts/infer/ForwardAnalyzer.kt
Outdated
Show resolved
Hide resolved
usvm-ts-dataflow/src/main/kotlin/org/usvm/dataflow/ts/infer/ForwardAnalyzer.kt
Outdated
Show resolved
Hide resolved
usvm-ts-dataflow/src/main/kotlin/org/usvm/dataflow/ts/infer/Alias.kt
Outdated
Show resolved
Hide resolved
d205ad5
to
a04e483
Compare
@MForest7 thanks for your great work! 🇨🇳 🍜 🐼 |
ForwardAnalyzer
stores facts about the variable immediately after the last instruction where the variable was used andForwardFlowFunction
drops facts about dead variables. This pre-analysis slightly increases the total performance without loss of precision.ForwardAnalyzer
andForwardFlowFunctions
to enable/disable pre-analysis (alias and/or liveness)