Skip to content
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

Truly Universal Flow Transformer 🎉 #84

Merged

Conversation

EpicPlayerA10
Copy link
Collaborator

@EpicPlayerA10 EpicPlayerA10 commented Aug 30, 2024

Changes

Created own JumpPredictingAnalyzer

The secret behind why universal flow transformer is now truly universal is that, the jumps are now predicted at the analyzing time! This means that we can actually detect which blocks are really unreachable and remove them using DeadCodeCleanTransformer! See tests results if you cant believe :D

OriginalSourceValue now have a constantValue field

A constantValue is a calculated value from instructions such as IMUL, LDIV etc. Mainly used inside the JumpPredictingAnalyzer. See javadoc of this field for more details.

@EpicPlayerA10 EpicPlayerA10 marked this pull request as ready for review August 30, 2024 14:10
@narumii narumii merged commit e703928 into narumii:master Aug 31, 2024
1 of 2 checks passed
* 7: }
* </pre>
*
* In line 2, the constant value is 12L. In line 3, the constant value is 12L / 2L = 6L. In line 4,
Copy link
Contributor

@Janmm14 Janmm14 Aug 31, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

example misses loading constant 2 for division

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, you are right. I will add it to my existing PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants