ABSTRACT
We address the problem of instruction selection for Multi-Output Instructions (MOIs), producing more than one result. Such inherently parallel hardware instructions are very common in the area of Application Specific Instruction Set Processors (ASIPs) and Digital Signal Processors (DSPs) which are frequently used in System-on-Chips as programmable cores. In order to provide high-level programmability, and consequently guarantee widespread acceptance, sophisticated compiler support for these programmable cores is of high importance. Since it is not possible to model Multi-Output Instructions as trees in the compiler's Intermediate Representation (IR), traditional approaches for code selection are not sufficient. Extending traditional code-generation approaches for MOI-selection is essentially a graph covering problem, which is known to be NP-complete. We present a new heuristic algorithm incorporated in a retargetable code-generator generator capable of exploiting arbitrary inherently parallel MOIs. We prove the concept by integrating the tool into the LCC compiler which has been targeted towards different Instruction Set Architectures based on the MIPS architecture. Several network applications as well as some DSP benchmarks were compiled and evaluated to obtain results.
- A. V. Aho, M. Ganapathi, and S. W. K. Tjiang. Code Generation Using Tree Pattern Matching and Dynamic Programing. ACM Transactions on Programming Languages and Systems., 11(4):491--516, Oct. 1989. Google ScholarDigital Library
- G. Araujo, S. Malik, and M. Lee. Using Register Transfer Paths in Code Generation for Heterogeneous Memory Register Architectures . In Proc. of the Design Automation Conference (DAC), pages 591--596, June 1996. Google ScholarDigital Library
- C. Fraser and D. Hanson. A Retargetable C Compiler : Design and Implementation. Benjamin/Cummings Publishing Co., 1994. Google ScholarDigital Library
- N. Clark, A. Hormiri, S. Mahlke, and S. Yehia. Scalable Subgraph Mapping for Acyclic Computation Accelerators. In Proc. of the Conference on Compilers, Architectures and Synthesis for Embedded Systems (CASES), Oct. 2006. Google ScholarDigital Library
- C. Devine. http://xyssl.org, 2007.Google Scholar
- E. Eckstein, O. Koening, and B. Scholz. Code Instruction Selection Based on SSA Graphs. In Proc. of the Workshop on Software and Compilers for Embedded Systems (SCOPES), pages 49--65, Oct. 2003.Google ScholarCross Ref
- M. A. Ertl. Optimal Code Selection in DAGs . In "Principles of Programming Languages (POPL '99)", 1999. Google ScholarDigital Library
- C. W. Fraser, D. R. Hanson, and T. A. Proebsting. Engineering Efficient Code Generators Using Tree Matching and Dynamic Programming. Technical Report TR-386-92, 1992.Google Scholar
- C. W. Fraser, R. R. Henry, and T. A. Proebsting. BURG--fast optimal instruction selection and tree parsing. Technical Report CS-TR-1991-1066, 1991.Google Scholar
- M. R. Garey and D. S. Johnson. A Guide to the Theory of NP-Completeness. W. H. Freeman & CO, New York, 1990. ISBN:0716710455. Google ScholarDigital Library
- A. Halambi, P. Grun, V. Ganesh, A. Khare, N. Dutt, and A. Nicolau. EXPRESSION: A Language for Architecture Exploration through Compiler/Simulator Retargetability. In Proc. of the Conference on Design, Automation & Test in Europe (DATE), Mar. 1999. Google ScholarDigital Library
- A. Hoffmann, H. Meyr, and R. Leupers. Architecture Exploration for Embedded Processors With Lisa. Kluwer Academic Publishers, Jan. 2003. ISBN 1-4020-7338-0. Google ScholarDigital Library
- K. Karuri, M. A. A. Faruque, S. Kraemer, R. Leupers, G. Ascheid., and H. Meyr. Fine-grained Application Source Code Profiling for ASIP Design . In Proc. of the Design Automation Conference (DAC), pages 329--334, 2005. Google ScholarDigital Library
- K. Keutzer and H. M. et. al. Building ASIPs: The Mescal Methodology. Springer, June 2005. ISBN: 0-387-26057-9. Google ScholarDigital Library
- R. Leupers and P. Marwedel. Instruction Selection for Embedded DSPs with Complex Instructions. In Proc. of the European Conference on Design Automation (EDAC), Sept 1996. Google ScholarDigital Library
- S. Liao, S. Devadas, K. Keutzer, and S. Tjiang. Instruction Selection Using Binate Covering for Code Size Optimization. In Proc. of the Int. Conf. on Computer Aided Design (ICCAD), pages 393--399, 1995. Google ScholarDigital Library
- C. Liem, T. May, and P. Paulin. Instruction-set Matching and Selection for DSP and ASIP Code Generation. In Proc. of the European Design and Test Conference (ED & TC), pages 31--37, 1994.Google ScholarCross Ref
- M. Willems and V. "Živojnović. DSP-Compiler: Product Quality for Control-Dominated Applications? In Proc. of the Int. Conf. on Signal Processing Applications and Technology (ICSPAT), Oct. 1996.Google Scholar
- MIPS technologies Inc. MIPS 4Kc Processor Core Datasheet, Jun. 2000.Google Scholar
- S. Kobayashi, Y. Takeuchi, A. Kitajima, M. Imai. Compiler Generation in PEAS-III: an ASIP Development System. In Workshop on Software and Compilers for Embedded Processors (SCOPES), 2001.Google Scholar
- S. Sakai, M.Togasaki, and K. Yamazaki. A Note on Greedy Algorithms for the Maximum Weighted Independent Set Problem. Discrete Applied Mathematics, 126:313--322, 2003. Google ScholarDigital Library
- H. Scharwaechter, D. Kammler, A. Wieferink, M. Hohenauer, J. Zeng, K. Karuri, R. Leupers, G. Ascheid, and H. Meyr. ASIP Architecture Exploration for Efficient IPSec Encryption: A Case Study. ACM Transactions on Embedded Computing Systems (TECS), 6(2), Mai 2007. Google ScholarDigital Library
- S. W. K. Tjiang. An Olive Twig. Technical report, Synopsys Inc., 1993.Google Scholar
- A. Todd. Least-Cost Instruction Selection in DAGs is NP-Complete . In "http://research.microsoft.com/¿toddpro/papers/proof.htm", Feb. 2007.Google Scholar
Index Terms
- A code-generator generator for multi-output instructions
Recommendations
Fast graph-based instruction selection for multi-output instructions
A multi-output instruction (MOI) is an instruction that produces multiple outputs to its destination locations. Such inherently parallel instructions are becoming more and more popular in embedded processors, due to the advances in application-specific ...
A retargetable framework for compiler/architecture co-development
Compiler-in-the-Loop (CiL) architecture exploration is widely accepted as being the right track for fast development of Application Specific Instruction-set Processors (ASIP). In this context, both, automatic application-specific Instruction Set ...
Code Size Reduction in Heterogeneous-Connectivity-Based DSPs Using Instruction Set Extensions
Existing trend of processors shows a progress toward customizable and reconfigurable architectures. In this paper, we study the benefit of combining the architectural design of a VLIW DSP and the concepts of modern customizable processors like ASIPs (...
Comments