Get 20M+ Full-Text Papers For Less Than $1.50/day. Start a 14-Day Trial for You or Your Team.

Learn More →

Integrated Code Generation for Loops

Integrated Code Generation for Loops Integrated Code Generation for Loops MATTIAS ERIKSSON and CHRISTOPH KESSLER, Link ping University o Code generation in a compiler is commonly divided into several phases: instruction selection, scheduling, register allocation, spill code generation, and, in the case of clustered architectures, cluster assignment. These phases are interdependent; for instance, a decision in the instruction selection phase affects how an operation can be scheduled We examine the effect of this separation of phases on the quality of the generated code. To study this we have formulated optimal methods for code generation with integer linear programming; rst for acyclic code and then we extend this method to modulo scheduling of loops. In our experiments we compare optimal modulo scheduling, where all phases are integrated, to modulo scheduling, where instruction selection and cluster assignment are done in a separate phase. The results show that, for an architecture with two clusters, the integrated method nds a better solution than the nonintegrated method for 27% of the instances. Categories and Subject Descriptors: D.3.4 [Programming Languages]: Processors ”Code generation, optimization General Terms: Algorithms, Experimentation, Performance, Theory Additional Key Words and Phrases: Code generation, clustered VLIW architectures, modulo scheduling ACM Reference Format: Eriksson, M. and Kessler, http://www.deepdyve.com/assets/images/DeepDyve-Logo-lg.png ACM Transactions on Embedded Computing Systems (TECS) Association for Computing Machinery

Loading next page...
 
/lp/association-for-computing-machinery/integrated-code-generation-for-loops-8W0SYvTz9g

References

References for this paper are not available at this time. We will be adding them shortly, thank you for your patience.

Publisher
Association for Computing Machinery
Copyright
Copyright © 2012 by ACM Inc.
ISSN
1539-9087
DOI
10.1145/2180887.2180896
Publisher site
See Article on Publisher Site

Abstract

Integrated Code Generation for Loops MATTIAS ERIKSSON and CHRISTOPH KESSLER, Link ping University o Code generation in a compiler is commonly divided into several phases: instruction selection, scheduling, register allocation, spill code generation, and, in the case of clustered architectures, cluster assignment. These phases are interdependent; for instance, a decision in the instruction selection phase affects how an operation can be scheduled We examine the effect of this separation of phases on the quality of the generated code. To study this we have formulated optimal methods for code generation with integer linear programming; rst for acyclic code and then we extend this method to modulo scheduling of loops. In our experiments we compare optimal modulo scheduling, where all phases are integrated, to modulo scheduling, where instruction selection and cluster assignment are done in a separate phase. The results show that, for an architecture with two clusters, the integrated method nds a better solution than the nonintegrated method for 27% of the instances. Categories and Subject Descriptors: D.3.4 [Programming Languages]: Processors ”Code generation, optimization General Terms: Algorithms, Experimentation, Performance, Theory Additional Key Words and Phrases: Code generation, clustered VLIW architectures, modulo scheduling ACM Reference Format: Eriksson, M. and Kessler,

Journal

ACM Transactions on Embedded Computing Systems (TECS)Association for Computing Machinery

Published: Jun 1, 2012

There are no references for this article.