-
Notifications
You must be signed in to change notification settings - Fork 53
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
Reorder Compaction #1884
Reorder Compaction #1884
Conversation
How does this impact the heuristic defined for promotion? Should we eventually define a threshold for compaction also? Seems like this threshold business might get out of hand soon 😅 |
Yeah, I think there are a few points here.
Footnotes
|
I really like this idea! This can either be a compilation pipeline-level configuration that can be queried by various compiler passes or an analysis of some form. The former idea (compilation-level configuration) seems like a generally useful thing to have; many compiler passes may want to query the same oracle about how to make decisions. Centralizing this configuration somewhere would make maintaining and debugging it much easier! |
* progress * first try at separating passes * use helper function * better tests, cleaner code * existing tests passing * inference * updated code * clippy * clippy is annoying * fixup works now * fixup is fixed up * another fixup test * rewrite tests * cleaner code * commented code * first try working in certain cases * test rewrite * refactored code * small bug fix * add better compaction * tests reflect this * rewrite tests * add more fixups * clippy * documentation * small change * small change + another test case * changed failing tests
Inserts
compaction
pass in betweeninference
andpromotion
. This means thatcompaction
takes@promote_static
blocks of code and converts them tostatic<n>
blocks.Right now the "heuristic" is quite basic: it converts to
static<n>
for anyseq
block that it can compact at all (i.e., the new schedule is at least one cycle shorter than the original schedule).