-
Notifications
You must be signed in to change notification settings - Fork 3.7k
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
[compiler-v2][decompiler] Pulling fat-loop algorithm out of the prover #14488
Conversation
⏱️ 1h 12m total CI duration on this PR
|
This stack of pull requests is managed by Graphite. Learn more about stacking. |
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.
@gedigi FYI regards ongoing discussion
@meng-xu-cs nice piece of code!
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #14488 +/- ##
===========================================
- Coverage 71.9% 59.8% -12.1%
===========================================
Files 2395 852 -1543
Lines 482134 207466 -274668
===========================================
- Hits 346822 124219 -222603
+ Misses 135312 83247 -52065
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
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.
Why do you call this a "fat loop"?
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.
Oh, I see "fat loop" was in the old code. I suppose it is intended to mean a loop with possibly multiple back-edges to the header. Looks good.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
The prover actually has a full-fledged loop analysis for stackless bytecode for loop invariant instrumentation and unrolling. This loop analysis is a major part of the logic for decompilation. This PR pulls out this functionality in a new general purpose module, `fat_loop`. Its mostly a refactoring of existing code.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
✅ Forge suite
|
✅ Forge suite
|
✅ Forge suite
|
Description
The prover actually has a full-fledged loop analysis for stackless bytecode for loop invariant instrumentation and unrolling. This loop analysis is a major part of the logic for decompilation. This PR pulls out this functionality in a new general purpose module,
fat_loop
. Its mostly a refactoring of existing code.Type of Change
Which Components or Systems Does This Change Impact?
How Has This Been Tested?
Existing prover tests