Font Size: a A A

Floey, an intermediate language for optimizing compilers

Posted on:2009-08-01Degree:M.ScType:Thesis
University:University of Calgary (Canada)Candidate:Tang, NingFull Text:PDF
GTID:2445390002997906Subject:Computer Science
Abstract/Summary:
In modern optimizing compilers, linear human-readable text representation of a program is first transformed into an abstract syntax tree that represents the structure of that program. Abstract syntax tree is then transformed into intermediate representation (IR), based on which compiler optimizations are accomplished. The optimized IR is sent to the code generator and finally translated into assembly or machine code. Research on IRs has been focused on how they can be designed to facilitate compiler optimizations or more effective code generation on specific architecture.;This thesis presents a mid-level intermediate language, called Floey. In a Floey program, control flowgraphs are separated into different tree-like structures called control expressions. Different control expressions are connected by entries.;On Floey, a machine independent optimization, called the reduction algorithm, is implemented. By comparing the reduction algorithm to various conventional optimizations, we argue that not only Floey facilities compiler optimization design, it also provides a cleaner and uniform perspective on compiler optimizations in general.
Keywords/Search Tags:Compiler, Floey, Intermediate
Related items