-
Notifications
You must be signed in to change notification settings - Fork 324
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
[Calyx] Add Invoke
operation.
#1679
Comments
For reference, here is the PR in the Calyx repo that implemented |
A relevant change that'll show up soon in the Calyx native tree is this: calyxir/calyx#633. Since the |
Just some thought on this: with Invoke, we invoke instances of components. e.g.
In MLIR, we represent instance names as string attributes, which makes it messy to verify that exists. A cleaner option might be to instead use symbols for instance names, with the table living in |
The |
Invoke's also support the new |
@rachitnigam I haven't been studying mlir for long,but i really like mlir,i would love to contribute something to mlir learn more about mlir,i also hope to make some progress with compilers and computer architectures. |
@rachitnigam Can you help me with this problem? I'm working on a calyx dialect multi-component design and I'm researching what kind of IR should be generated for the multi-component design.Thanks! |
@rachitnigam Recently I've been thinking about how to implement invoke. Here are my initial thoughts.
|
Seems reasonable to me. For what its worth, in the native compiler, we have a separate lowering pass called |
I will try to finish it next. |
I am trying to set the style of invoke and finally I think this should be better.
Here are some of my reasons.
|
This is something I'm not quite sure what needs to be done yet, but I think changes need to be made in other operations. |
Here is an example that shows how they work: https://docs.calyxir.org/lang/memories-by-reference.html |
Hello, I seem to have encountered a bit of a problem, I intend to implement the simple invoke part first (the ref part involves the modification of other operations). Here is the problem I have encountered and I would like to have some discussion with you.
At first I thought the port used in the invoke had to be the port of the calling component. |
One more question, I found the following code.
I think |
@rachitnigam Hi, I read your implementation of invokde (I didn't read it because I didn't learn rust before) and I found the shortcomings of my implementation and I think I have the answer to my previous question. Regarding the |
@rachitnigam Sorry to look like I'm bothering you again.No one here seems to review my pr. Can you help me? Thanks! 😄 |
I'm currently traveling so will take a look when I'm back |
Closed by #5558 |
I think this will be useful for lowering any multi-component designs.
The text was updated successfully, but these errors were encountered: