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

Merge analysis-devel: Unified CFG and Static Analysis #61

Merged
merged 107 commits into from
Oct 12, 2023
Merged

Conversation

ailrst
Copy link
Contributor

@ailrst ailrst commented Sep 12, 2023

This contains Yousif's masters thesis work and the unified intraprocedural and interprocedural CFG.

We will work on rebasing this branch on main before merging

Thomas-Malcolm and others added 30 commits June 29, 2023 15:23
…temporary structure to avoid compilation errors. Cfg implementation starting as of this commit.
…e to allow for conditional edges, i.e. in the case of GoTos.
…instead. For a lower space complexity we would have to sacrifice computation time for filtering / unioning sets instead. Additonally, functionality for cloning subgraphs of the cfg is implemented.
… need to modify the analyses to support the new cfg. Next commit will incorporate those changes, and then the cfg generation will be tested.
…en intra/inter cfgs) so that the project will now compile and run (when -analyse is not passed, i.e., no cfg generation occurs). Next is testing the cfg.
…ges were also not being stored correctly due to a mismatch in attempting to check a type. This has been fixed now.
… to distinguish between intra/inter, for example, changing edge types for depths > 1 to reflect the context as being inlined. Similarly changing the function call structure to introduce a NOP pivot point before a function call that the interprocedural cfg can follow.
…ication of these so that it's not just a neg(expr)
# Conflicts:
#	src/main/scala/analysis/Analysis.scala
#	src/main/scala/analysis/Cfg.scala
#	src/main/scala/analysis/VSA.scala
#	src/main/scala/analysis/solvers/FixPointSolver.scala
#	src/main/scala/analysis/util/SSA.scala
#	src/main/scala/util/RunUtils.scala
# Conflicts:
#	src/main/scala/util/RunUtils.scala
@l-kent
Copy link
Contributor

l-kent commented Oct 10, 2023

This isn't everything but it's most of it. I want to try to clean up some of the messiness around the types.

@l-kent
Copy link
Contributor

l-kent commented Oct 11, 2023

Handled #95, will merge this soon.

Still some outstanding problems but I'll make tickets for them

@l-kent
Copy link
Contributor

l-kent commented Oct 11, 2023

The non-termination issue with jumptable/jumptable_clang appears to have been resolved, but it still fails to resolve the indirect call.

@l-kent l-kent merged commit 96bc93f into main Oct 12, 2023
1 check 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.

5 participants