-
-
Notifications
You must be signed in to change notification settings - Fork 823
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
feat: Implement target constrained venom jump instruction #3687
Conversation
add_instruction methods
adopted a shorted name for frequently used methods
Refactored append instructions into a single append_instruction() method with named arguments for returning or not a variable
Until now log instructions where pass through. Now we have a log instruction in venom that takes the first argument to be the topic count (in shape of doing table jmp etc in the future -essentialy have instructions that require manipulation of operants before emit)
Remove output argument append_instruction() in IRBasicBlock now the method decides by itself if there is an output value
normalization pass
Codecov ReportAttention:
❗ Your organization needs to install the Codecov GitHub app to enable full functionality. Additional details and impacted files@@ Coverage Diff @@
## master #3687 +/- ##
==========================================
- Coverage 83.98% 83.94% -0.05%
==========================================
Files 92 92
Lines 13046 13056 +10
Branches 2928 2932 +4
==========================================
+ Hits 10957 10960 +3
- Misses 1657 1663 +6
- Partials 432 433 +1 ☔ View full report in Codecov by Sentry. |
8b06837
to
e9d7030
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.
i think this will be cleaner if we have a new dedicated instruction for this (in both IRs) as i want to reduce the amount of things we put in passthrough_metadata
as opposed to increasing! it could be jump_indirect
(a la LLVM), jumptable
, jumpv
or switch
- remove experimental codegen flag passing - rewrite a bit of code in module.py - add the code generator in old IR
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.
looks nice -- especially with that new djmp
instruction! ;)
What I did
This PR augments the venom jump instruction to require the possible jump targets as arguments when it is jumping to a dynamic location. This removes all the workarounds that we had to implement in the normalization pass and the cfg calculations.
How I did it
I passed the jump table data thought the ir_node to the translator. Then the translator can emit the proper venom instruction.
How to verify it
Commit message
Description for the changelog
Cute Animal Picture