We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
For loops whose bounds are not constant are not inlined. Consider, for instance:
export fn main (reg u64 io) -> reg u64 { inline int i; reg u64 res; for i = 0 to (int)io { res = i; } return res; }
The problem is that some later passes assume that all for loops have been inlined. This program, for instance, is rejected with error:
Fatal error: exception File "src/liveness.ml", line 58, characters 14-20: Assertion failed
I think we should either support this kind of for loops or reject them directly during unrolling.
The text was updated successfully, but these errors were encountered:
I think it is hard to do it during unrolling (it is an iterative process). But we can add a check after unrolling.
Sorry, something went wrong.
Check that no for loops remain after unrolling
93e35ed
Fixes #29
a3566f5
No branches or pull requests
For loops whose bounds are not constant are not inlined. Consider, for instance:
The problem is that some later passes assume that all for loops have been inlined. This program, for instance, is rejected with error:
I think we should either support this kind of for loops or reject them directly during unrolling.
The text was updated successfully, but these errors were encountered: