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

[LLHD] Hoist drives out of processes #8302

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

fabianschuiki
Copy link
Contributor

Extend the HoistSignals pass and hoist drives before halt and wait terminators out of the parent process. All drives that have no side-effecting operations in between them and the block's suspending terminator can be hoisted. If the same signal is driven multiple times in the same block, only the last drive is hoisted.

To hoist drives, the pass collects all drives for each driven signal slot and creates new yield operands and process results to carry the drive operands out of the process. Special care is taken to not create unnecessary results for values that are uniform across all drives and available outside the processes.

Extend the `HoistSignals` pass and hoist drives before halt and wait
terminators out of the parent process. All drives that have no
side-effecting operations in between them and the block's suspending
terminator can be hoisted. If the same signal is driven multiple times
in the same block, only the last drive is hoisted.

To hoist drives, the pass collects all drives for each driven signal
slot and creates new yield operands and process results to carry the
drive operands out of the process. Special care is taken to not create
unnecessary results for values that are uniform across all drives and
available outside the processes.
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.

1 participant