The OpenModelica compiler currently generates code directly from a syntax tree representation, which leads to inefficient code in several cases. This thesis work introduces a lower-level intermediate representation for the compiler which aims to simplify the compiler back end and enable more optimizations. The resulting design of the representation features flat primitive operations and control flow using basic blocks and terminators. Variables are mutable, unlike SSA-based representations. Introducing the IR did not significantly change the runtime performance of the test programs. The number of lines of code compared to the old back end was reduced to a quarter, this and the simpler representation will help future work on optimization pas...
Nowadays, industrial products are getting increasingly complex, and time-to-market is significantly ...
A program’s execution profile is an increasingly important source of information for optimizations. ...
The OpenModelica Compiler-Compiler parser generator (OMCCp) is an LALR(1) parser generator implement...
The OpenModelica compiler currently generates code directly from a syntax tree representation, which...
Compilers commonly translate an input program into an intermediate representation (IR) before optimi...
This thesis presents the construction and evaluation of an LLVM based codegenerator, an LLVM backend...
High level data structures are a cornerstone of modern programming and at the same time stand in the...
A compiler translates one representation of a software program into another. Beside translation comp...
Abstract. Configurable computing relies on the expression of a computation as a circuit. Its main pu...
Designing compiler intermediate representations (IRs) is often a manual process that makes explorati...
Most compilers have a single core intermediate representation (IR) (e.g., LLVM) sometimes complement...
Modelica is an equation-based object-oriented language (EOO). PELAB at Linköping University along wi...
The intermediate representations (IR) used by most compilers have an operational semantics. The node...
An optimizing compiler consists of a front end parsing a textual programming language into an inter-...
Modelica models often contain functions with algorithmic code. The fraction of algorithmiccode is in...
Nowadays, industrial products are getting increasingly complex, and time-to-market is significantly ...
A program’s execution profile is an increasingly important source of information for optimizations. ...
The OpenModelica Compiler-Compiler parser generator (OMCCp) is an LALR(1) parser generator implement...
The OpenModelica compiler currently generates code directly from a syntax tree representation, which...
Compilers commonly translate an input program into an intermediate representation (IR) before optimi...
This thesis presents the construction and evaluation of an LLVM based codegenerator, an LLVM backend...
High level data structures are a cornerstone of modern programming and at the same time stand in the...
A compiler translates one representation of a software program into another. Beside translation comp...
Abstract. Configurable computing relies on the expression of a computation as a circuit. Its main pu...
Designing compiler intermediate representations (IRs) is often a manual process that makes explorati...
Most compilers have a single core intermediate representation (IR) (e.g., LLVM) sometimes complement...
Modelica is an equation-based object-oriented language (EOO). PELAB at Linköping University along wi...
The intermediate representations (IR) used by most compilers have an operational semantics. The node...
An optimizing compiler consists of a front end parsing a textual programming language into an inter-...
Modelica models often contain functions with algorithmic code. The fraction of algorithmiccode is in...
Nowadays, industrial products are getting increasingly complex, and time-to-market is significantly ...
A program’s execution profile is an increasingly important source of information for optimizations. ...
The OpenModelica Compiler-Compiler parser generator (OMCCp) is an LALR(1) parser generator implement...