-
Notifications
You must be signed in to change notification settings - Fork 52
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
Attributes everywhere #311
Comments
Nice. This is a cool idea. And I like the implicit proposal that we could use this for an optional "overlay" type system that actually represents data types. |
would be a useful debugging tool as well. for an analysis like live-range-analysis, it would be super useful to be able to annotate the things live at each group |
An annotation called
|
Another idea is following LLVM's opaque pointer approach, i.e., give types to reads/writes instead of the underlying memory. This is similar to what our binary operators currently do, and would ensure we don't have type clashing for the memory, which will likely be reinterpreted many different ways.
|
Attribute annotations are currently limited to just groups. This proposal makes them available to cells, ports, and components. Attributes should become a general mechanism to attach extra information to various parts of the IL.
As a starting example, consider a type recovery pass that walks over cells and ports and tries to come up with
signed
orunsigned
type for each:Following the principle laid out in #270 ("everything that is solved for groups must be solved for components"), we can attach
"static"
information to a component and change the compilation ofinvoke
(#273) to generate a faster FSM.The text was updated successfully, but these errors were encountered: