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

llvm: Refactor and document binding functions #1198

Merged
merged 3 commits into from
Apr 26, 2024

Conversation

langston-barrett
Copy link
Contributor

Binding functions (whether they be translated CFGs or overrides) in the LLVM memory model is a bit more complex than in other frontends. We had organically grown a number of helpers that take care of various parts of this process, without actually documenting what needs to happen for everything to work as expected. This PR collects those helpers into a single module, with a top-level comment that outlines the whole process.

Along the way, it removes some superfluous helpers (bindLLVMFunPtr) and introduces some new ones (bindLLVMCFG).

Binding functions (whether they be translated CFGs or overrides) in the
LLVM memory model is a bit more complex than in other frontends. We had
organically grown a number of helpers that take care of various parts of
this process, without actually documenting what needs to happen for
everything to work as expected. This commit collects those helpers into
a single module, with a top-level comment that outlines the whole
process.

Along the way, it removes some superfluous helpers (`bindLLVMFunPtr`)
and introduces some new ones (`bindLLVMCFG`).
@langston-barrett langston-barrett marked this pull request as ready for review April 26, 2024 13:57
crucible-llvm/CHANGELOG.md Outdated Show resolved Hide resolved
@langston-barrett langston-barrett merged commit a42279a into GaloisInc:master Apr 26, 2024
32 checks passed
@langston-barrett langston-barrett deleted the lb/llvm-bind-fns branch April 26, 2024 15:16
RyanGlScott added a commit that referenced this pull request May 14, 2024
PR #1198 moved `bindLLVMFunPtr` to `Lang.Crucible.LLVM.Functions`, but it did
not export it publicly. This function is used by SAW, so it would be nice to
continue to offer it as part of the public API.
RyanGlScott added a commit that referenced this pull request May 14, 2024
PR #1198 moved `bindLLVMFunPtr` to `Lang.Crucible.LLVM.Functions`, but it did
not export it publicly. This function is used by SAW, so it would be nice to
continue to offer it as part of the public API.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants