mirror of
https://github.com/GaloisInc/macaw.git
synced 2024-11-23 16:35:02 +03:00
e024646860
This commit updates macaw-refinement to work with the latest macaw/crucible and makes a few improvements along the way. The major changes involved in this are: * Block labels were removed from macaw, so we had to come up with an alternative approach to making synthetic blocks to represent dispatch resolved by macaw-refinement that is not really a jump table. We considered adding a new terminator that encoded "computed IP-based dispatch", but there was concern about the impact on client code. Instead, we added a field to the `DiscoveryFunInfo` that records "external" resolutions to indirect control flow (e.g., as by an SMT solver in macaw-refinement). The hook by which we feed SMT-based resolutions back into macaw was modified accordingly (`addDiscoveredFunctionBlockTargets`). * Solver invocation changed to allow solver selection and parallel solver application. * Logging is now done via the `lumberjack` library. * macaw-symbolic now uses the "external" resolutions in `DiscoveryFunInfo` while building crucible CFGs. * The path creation code in macaw-refinement was simplified significantly and the approach to path creation has been documented. * The run-refinement tool is now more featureful. * The test suite is a bit more structured and no longer depends on the printed output of the discovery process. |
||
---|---|---|
.. | ||
crucible@3db599ec92 | ||
dismantle@2178d3ead8 | ||
dwarf@4fd4eb28f5 | ||
elf-edit@31a4d5a3a8 | ||
flexdis86@c26387185e | ||
llvm-pretty@0a4a21c6e8 | ||
llvm-pretty-bc-parser@25edd30d06 | ||
macaw-loader@c5ba9f048e | ||
parameterized-utils@8117a3b47c | ||
semmc@6530da6b73 | ||
what4@5f6352c355 |