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

[analysis][NFC] Create a TransferFunction concept #6033

Merged
merged 1 commit into from
Oct 21, 2023
Merged

Conversation

tlively
Copy link
Member

@tlively tlively commented Oct 20, 2023

Factor the static assertions for transfer functions out into a new
transfer-function.h header. The concept requires the getDependents method to
return an input range of basic blocks, and to satisfy that requirement, fix up
_indirect_ptr_iterator in cfg-impl.h so that it is a proper iterator. Remove
part of the lattice fuzzer that was using a placeholder transfer function in a
way that does not satisfy the new type constraints; most of that code will be
overhauled in the future anyway.

Factor the static assertions for transfer functions out into a new
transfer-function.h header. The concept requires the `getDependents` method to
return an input range of basic blocks, and to satisfy that requirement, fix up
_indirect_ptr_iterator in cfg-impl.h so that it is a proper iterator. Remove
part of the lattice fuzzer that was using a placeholder transfer function in a
way that does not satisfy the new type constraints; most of that code will be
overhauled in the future anyway.
@tlively tlively requested review from ashleynh and kripken October 20, 2023 19:19
const CFG& cfg,
BasicBlock* bb,
typename L::Element& elem,
std::queue<const BasicBlock*>& bbq) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🍗

@tlively tlively merged commit 17305e5 into main Oct 21, 2023
14 checks passed
@tlively tlively deleted the txfn-concept branch October 21, 2023 00:22
radekdoulik pushed a commit to dotnet/binaryen that referenced this pull request Jul 12, 2024
Factor the static assertions for transfer functions out into a new
transfer-function.h header. The concept requires the `getDependents` method to
return an input range of basic blocks, and to satisfy that requirement, fix up
_indirect_ptr_iterator in cfg-impl.h so that it is a proper iterator. Remove
part of the lattice fuzzer that was using a placeholder transfer function in a
way that does not satisfy the new type constraints; most of that code will be
overhauled in the future anyway.
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