Skip to content

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

Merged
tlively merged 1 commit into
mainfrom
txfn-concept
Oct 21, 2023
Merged

[analysis][NFC] Create a TransferFunction concept#6033
tlively merged 1 commit into
mainfrom
txfn-concept

Conversation

@tlively

Copy link
Copy Markdown
Member

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.
const CFG& cfg,
BasicBlock* bb,
typename L::Element& elem,
std::queue<const BasicBlock*>& bbq) {

Copy link
Copy Markdown
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 mainOct 21, 2023
@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 freeto 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

@tlively@ashleynh