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

represents ARM conditionals with ite-expressions #990

Conversation

ivg
Copy link
Member

@ivg ivg commented Sep 10, 2019

So far we were using it/then/else statements to represent conditional
movements in ARM, which were, in turn, translated into 3 basic blocks.

This patch will translate them into ite expressions which leads to a
much more compact representation, especially in optimized ARM code,
which uses a lot of conditional moves.

In the implementation we predicate only moves to physical registers,
and leave temporary variables as it is, since we expect that the
temporary variable won't escape the scope of the predicated
instruction.

So far we were using it/then/else statements to represent conditional
movements in ARM, which were, in turn, translated into 3 basic blocks.

This patch will translate them into ite expressions wich leads to a
much more compact representation, especially in optimized ARM code,
which uses a lot of conditional moves.

In the implementation we predicate only moves to physical registers,
and leave temporary variables as it is, since we expect that the
temporary variable won't escape the scope of the predicated
instruction.
@ivg ivg requested a review from gitoleg September 10, 2019 20:10
@gitoleg gitoleg merged commit 16d64fa into BinaryAnalysisPlatform:master Sep 11, 2019
@ivg ivg deleted the refies-conditional-moves-as-ite-on-arm branch June 10, 2020 12:35
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.

2 participants