
Research Article
ASIF: An Internal Representation Suitable for Program Transformation and Parallel Conversion
@INPROCEEDINGS{10.1007/978-3-030-79276-3_12, author={Sesha Kalyur and G. S. Nagaraja}, title={ASIF: An Internal Representation Suitable for Program Transformation and Parallel Conversion}, proceedings={Ubiquitous Communications and Network Computing. 4th EAI International Conference, UBICNET 2021, Virtual Event, March 2021, Proceedings}, proceedings_a={UBICNET}, year={2021}, month={7}, keywords={Optimization Transformation Parallelization Internal representation IR Three address format Instruction set architecture ISA}, doi={10.1007/978-3-030-79276-3_12} }
- Sesha Kalyur
G. S. Nagaraja
Year: 2021
ASIF: An Internal Representation Suitable for Program Transformation and Parallel Conversion
UBICNET
Springer
DOI: 10.1007/978-3-030-79276-3_12
Abstract
Adding the Transformation and Parallelization capabilities to a compiler requires selecting a suitable language for representing the given program internally. The higher level language used to develop the code is an obvious choice but supporting the transformations at that level would require major rework to support other higher languages. The other choice is to use the assembly representation of the given program for implementing transformations. But this would require rework when supporting multiple targets. These considerations lead to the development of an internal representation that is not tied to any specific higher level language or hardware architecture. However, creating a new Internal Representation for a compiler that ultimately determines the quality and the capabilities of the compiler offers challenges of its own. Here we explore the design choices that determine the flavor of a representation, and propose a representation that includes, Instructions and Annotations that together effectively represent a given program internally. The instruction set has operators that most resemble a Reduced Instruction Set architecture format, and use three explicit memory operands which are sufficient for translation purposes and also simplify Symbolic Analysis. In addition to instructions, we support Annotations which carry additional information about the given program in the form of Keyword-Value pairs. Together instructions and annotations contain all the information necessary to support Analysis, Transformation and Parallel Conversion processes. ASIF which stands for Asterix Intermediate Format, at the time of writing is comparable to the cutting-edge-solutions offered by the competition and in many instances such as suitability for Program Analysis is superior.