Technical reports
The triVM intermediate language reference manual
February 2002, 83 pages
This research was sponsored by a grant from ARM Limited.
DOI: 10.48456/tr-529
Abstract
The triVM intermediate language has been developed as part of a research programme concentrating on code space optimization. The primary aim in developing triVM is to provide a language that removes the complexity of high-level languages, such as C or ML, while maintaining sufficient detail, at as simple a level as possible, to support reseach and experimentation into code size optimization. The basic structure of triVM is a notional Static Single Assignment-based three-address machine. A secondary aim is to develop an intermediate language that supports graph-based translation, using graph rewrite rules, in a textual, human-readable format. Experience has shown that text-format intermediate files are much easier to use for experimentation, while the penalty in translating this human-readable form to the internal data structures used by the software is negligible. Another aim is to provide a flexible language in which features and innovations can be evaluated; for example, this is one of the first intermediate languages directly based on the Static Single Assignment technique, and which explicitly exposes the condition codes as a result of arithmetic operations. While this paper is concerned solely with the description of triVM, we present a brief summary of other research-orientated intermediate languages.
Full text
PDF (0.4 MB)
BibTeX record
@TechReport{UCAM-CL-TR-529, author = {Johnson, Neil}, title = {{The triVM intermediate language reference manual}}, year = 2002, month = feb, url = {https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-529.pdf}, institution = {University of Cambridge, Computer Laboratory}, doi = {10.48456/tr-529}, number = {UCAM-CL-TR-529} }