-
Notifications
You must be signed in to change notification settings - Fork 397
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
Develop a specification for TR IL #2569
Comments
@vijaysun-omr @mstoodle @andrewcraik @jdmpapin @Leonardo2718 @ymanton @fjeremic @mpirvu @gita-omr @xliang6 A discussion topic for the May 23 Compiler Architecture meeting. |
Unfortunately, I won't be able to attend this meeting. It looks like you've got more than enough to discuss in a single meeting, though :) . Some quick observations:
|
Thanks for your input @mstoodle . Our initial meeting (#2570) is really just to introduce this topic and to get everyone thinking about it. The actual formulation of such a specification is likely to take time (and will be revisted in subsequent arch meetings). I would like to hear thoughts similar to yours on what people think should or should not be part of any specification. |
Hi - is there an update on this? I understood that an initial version of the doc would be available soon? |
I'm expecting to have something describing the structure of the IL and basic concepts by the end of summer (July/August timeframe). It won't land in one blob either--you will see incremental contributions as I have time to add to it. A true specification covering each and every IL opcode in TR IL will take some time though, but I will set a goal of end of year where we will have taken at least a first pass through all the opcodes. Sorry for the delay (usual excuses about other work getting in the way apply). This is a priority for this project and is long overdue for this technology. Your experience integrating the compiler code with your projects and the questions you've asked are very valuable in helping us understand where the weak spots in the documentation are and how the onboarding to new projects can be improved (thank you!). Please keep the questions coming, and we hope to provide quick and meaningful answers to keep you productive! |
As the intermediate representation consumed by the Eclipse OMR compiler technology (known as TR IL) becomes consumed in language runtimes beyond OpenJ9, it is important to ensure its semantics are clearly defined and well understood to prevent inconsistency and ambiguity. This is important not only for consistency between projects consuming OMR but for different architecture backends within a particular project. The goal of this effort is to produce stand-alone documentation (either in the GitHub repo or on the Eclipse OMR website) for TR IL as well as improve the documentation in the code.
Some ideas for content and tasks for this effort include:
Provide a clear definition of what the TR IL is and what its components are:
Define the data types and their semantics
Standardize the rules around how trees are structured
Symbols and SymbolReferences
IL opcodes
IL opcode semantics
Aliasing
IL versioning
How to extend TR IL in consuming projects (?)
Testing
Should Methods and ResolvedMethods be included (?)
The text was updated successfully, but these errors were encountered: