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

Studying effects of heuristics in passes #1440

Open
1 of 6 tasks
rachitnigam opened this issue May 4, 2023 · 1 comment
Open
1 of 6 tasks

Studying effects of heuristics in passes #1440

rachitnigam opened this issue May 4, 2023 · 1 comment
Assignees
Labels
Type: Tracker Track various tasks

Comments

@rachitnigam
Copy link
Contributor

rachitnigam commented May 4, 2023

For the Calyx 2.0 paper, I think it would be cool to study the effects of heuristics on the quality of results. Couple of things off the top of my head:

I think having a good study and defaults for heuristics in the compiler moves us that much closer to a serious competitive baseline.

@rachitnigam rachitnigam added the Type: Tracker Track various tasks label May 4, 2023
@rachitnigam rachitnigam added this to the Quality of Results milestone May 4, 2023
@calebmkim
Copy link
Contributor

I've been thinking about

  1. Breaking up FSMs in the style of new_fsm

There's one pretty easy way to do this:
We can just compile static seq { @new_fsm *control1* @new_fsm *control2*} into something like seq { static_group1; static_group2; } in static-inliner, rather than compiling into a single group. When compile-static sees this code, it could handle it, but it would "waste" a cycle between static_group1 and static_group2.

I think there's probably a better way to compile it so that we don't waste a cycle in between groups. Specifically, I don't think the compile-static pass should force all static control to be compiled into a single enable, i.e., it should be able to handle something like static seq { static_group1; static_group2; }.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Tracker Track various tasks
Projects
None yet
Development

No branches or pull requests

3 participants