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

Loop Region Code Generation #1597

Merged
merged 109 commits into from
Jul 5, 2024
Merged

Loop Region Code Generation #1597

merged 109 commits into from
Jul 5, 2024

Conversation

phschaad
Copy link
Collaborator

@phschaad phschaad commented Jun 13, 2024

This PR adapts code generation to make use of hierarchical control flow regions, and by extension LoopRegions. This forms the fourth core element of the plan to make loops first class citizens of SDFGs and marks the last element in the architecture.

By extending codegen with the capability of handling hierarchical control flow graphs and SDFGs, a myriad of complexities that come with control flow detection are circumvented, which currently lead to significant issues for certain SDFGs (e.g., #635 and #1586). Making use of control flow regions such as LoopRegions instead allows codegen to be much less 'smart' and behave more akin to a lookup table that decides what code to generate for what SDFG element, making it significantly less error prone.

@phschaad phschaad marked this pull request as ready for review June 26, 2024 09:06
@phschaad phschaad changed the title Loop region codegen Loop Region Codegen Jun 26, 2024
@phschaad phschaad added enhancement New feature or request codegen core labels Jun 26, 2024
@phschaad phschaad requested a review from tbennun June 26, 2024 13:51
@tbennun tbennun changed the title Loop Region Codegen Loop Region Code Generation Jun 27, 2024
dace/codegen/control_flow.py Show resolved Hide resolved
dace/codegen/dispatcher.py Outdated Show resolved Hide resolved
dace/codegen/targets/xilinx.py Outdated Show resolved Hide resolved
dace/transformation/interstate/state_fusion.py Outdated Show resolved Hide resolved
@phschaad phschaad requested a review from tbennun June 28, 2024 11:33
@phschaad phschaad enabled auto-merge June 28, 2024 16:11
@phschaad phschaad disabled auto-merge June 28, 2024 16:12
@phschaad
Copy link
Collaborator Author

phschaad commented Jul 4, 2024

@tbennun ping

Copy link
Collaborator

@tbennun tbennun left a comment

Choose a reason for hiding this comment

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

Very very minor changes

dace/sdfg/analysis/schedule_tree/treenodes.py Show resolved Hide resolved
tests/sdfg/loop_region_test.py Outdated Show resolved Hide resolved
tests/sdfg/loop_region_test.py Outdated Show resolved Hide resolved
tests/sdfg/loop_region_test.py Show resolved Hide resolved
@phschaad phschaad requested a review from tbennun July 5, 2024 13:07
@phschaad phschaad enabled auto-merge July 5, 2024 14:57
@phschaad phschaad added this pull request to the merge queue Jul 5, 2024
Merged via the queue into master with commit adc1f41 Jul 5, 2024
10 checks passed
@phschaad phschaad deleted the loop_region_codegen branch July 5, 2024 16:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
codegen core enhancement New feature or request
Projects
Status: ✅ Done
Development

Successfully merging this pull request may close these issues.

2 participants