-
Notifications
You must be signed in to change notification settings - Fork 149
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
Performance #66
Comments
The new plan is not to do A normal form, since the JVM bytecode is stack based, and that is easier to generate straight from an AST. I am going to be creating and moving some more complete programs, to experiment on, into the These should make for good compilation targets. |
I want to give a few pointers on what I think is important for the CodeGen:
Less important, but "nice-to-have" in the future:
|
Oh, and I forgot, and this is important: Make sure the CodeGen is functional. Thus, I think it is better to explicitly pass around the Class/Method visitors. Unless you see a strong reason not to. |
I'll need to look into this (maybe later), but it seems that the stack and frame computation runs after the
I don't see a reason not to, but I'm curious, what's the reason for explicitly passing the visitors around? |
Mostly to ensure that Flix can be instantiated multiple times in the same JVM, and in the future to ensure that we can even run the same Flix instance in parallel. Thus staying as close as possible to functional programming is preferable. |
I think we will have the following (backend) IRs:
|
(Note to self: Where are the data types packed? In the ReducedIR or in a separate IR?) |
I think we can get rid of We will still have ExecutableIR though, which should be the output of the CodeGen phase. Lets make this change together. |
Closing this and opening fine-grained issues instead. |
The text was updated successfully, but these errors were encountered: