-
Notifications
You must be signed in to change notification settings - Fork 474
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
AVM: Handle Teal programs with manual constant blocks better #4442
Conversation
f09fd44
to
783a9bf
Compare
This PR fixes algorand#4034, by forcing the use of "push*" when mixing manual constant blocks with the int/byte/addr/method pseudo-ops. (And a related disassembly bug). However, to avoid this "deoptimization" when manual blocks are used to add program metadata, deadcode constant blocks are ignored for this check.
783a9bf
to
7990b5c
Compare
Codecov Report
@@ Coverage Diff @@
## master #4442 +/- ##
==========================================
- Coverage 55.24% 55.19% -0.05%
==========================================
Files 398 398
Lines 50165 50196 +31
==========================================
- Hits 27712 27705 -7
- Misses 20144 20176 +32
- Partials 2309 2315 +6
📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
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.
@jannotti Nice work to identify + implement a more correct handling of constant blocks ☕
a976210
to
7893fa4
Compare
This PR fixes #4034, by forcing the use of "push*" when mixing manual
constant blocks with the int/byte/addr/method pseudo-ops. (And a
related disassembly bug).
However, to avoid this "deoptimization" when manual blocks are used to
add program metadata, deadcode constant blocks are ignored for this
check.
Tests for the problems in #4034 and additional tests for the deadcode were added.