Advanced compiler design and implementation
Advanced compiler design and implementation
An Algorithm for Structuring Flowgraphs
Journal of the ACM (JACM)
Data Flow Analysis for Procedural Languages
Journal of the ACM (JACM)
Letters to the editor: go to statement considered harmful
Communications of the ACM
LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
SEC'13 Proceedings of the 22nd USENIX conference on Security
Hi-index | 0.00 |
Modern compilers parse their input, which usually is a high-level programming language, and then convert the resulting parse tree into an intermediate representation (IR). This IR has the important property of being source language and target processor independent, which allows for generalized optimizations. This flexibility, however, also discards some of the high-level properties of the source language. In this paper we present an analysis that can extract most of the control flow structures typically found in the C programming language from a medium level IR. Mirtoc is an implementation of this analysis for the specific case of CCMIR, the IR used in ACE's CoSy® compiler framework. A compiler based on mirtoc is able to emit C code that is well structured, readable by a human and can be compiled by a back end compiler with relatively low overhead. This enables the use of optimizers based on medium level IRs in a source-to-source flow.