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

Scala backend & lifter-optimiser bdd copyprop #102

Merged
merged 53 commits into from
Sep 2, 2024
Merged

Conversation

ailrst
Copy link

@ailrst ailrst commented Jul 24, 2024

This adds the Scala backend with a generic unimplemetned IBI. It should be possible for consumers to just use the JAR file, and call the lifter supplying an implementation of that interface to have it emit another IR, e.g. for basil IR

It also includes in the rt_pc and rt-copyprop branches since the scala lifter was developed with these changes

ailrst and others added 30 commits April 2, 2024 12:12
Optional support for offline lifter to specify the PC value
at lifttime.
Optional support for offline lifter to specify the PC value
at lifttime.
Leverage interval information to reduce trivial comparisons
during post-passes, then cleanup in RemoveUnused.
* Add scala backend for BASIL

* Add C++ Backend for LLVM 

* add aslBackwardsVisitor

* aslVisitor: change vstmt to return stmt list

BREAKING!
This change affects the signature of the Asl_visitor.visit_stmt method.
For compatibility, a visit_stmt_single method is provided with
equivalent behaviour to the old visit_stmt. There is also an added
helper function to convert visitActions on single statements to
visitActions on a list of statements.

Both of these compatibility helpers WILL THROW if used with a visitor
that returns non-singleton statement lists.

This gives the user the flexibility to insert new statements or delete
statements entirely. On the other hand, post-functions in
ChangeDoChildrenPost will need to handle lists of functions as well.

This follows the original CIL visitor: https://people.eecs.berkeley.edu/~necula/cil/api/Cil.cilVisitor.html

* fix backwards visitor and rearrange code

it is no longer a good idea for the backwards and forwards visitors to have a subtyping relation.

* support -x 0 to print encoding name. (#78)

this is very useful when looking for the name of an encoding,
without cluttering the output with the disassembly trace.

the default debug_level has been lowered to -1 to support -x 0
as a non-default level. we cannot print by default since that
would clutter stdout when used as a library.



Co-authored-by: rina <[email protected]>
@ailrst
Copy link
Author

ailrst commented Jul 24, 2024

7ee3e4b Is passing offline coverage, so something in 9ed5776 is broken (just disabling the offline-opt copyprop pass doesnt fix it)

There's actually no reason to include rt-copyprop in this change set, I thought it was also part of the initial change, but we only used rt_pc: actually253fbd8 may indicate otherwise

This was just due to a silly mistake in the merge, should all be good now.

@ailrst ailrst changed the title Scala backend & backend opt bdd copyprop Scala backend & lifter-optimiser bdd copyprop Jul 24, 2024
@ailrst ailrst marked this pull request as ready for review July 24, 2024 08:25
@katrinafyi katrinafyi merged commit 6fcda77 into partial_eval Sep 2, 2024
4 checks passed
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