| Generalized instruction selection using SSA-graphs |
| Full text |
Pdf
(525 KB)
|
Source
|
Language, Compiler and Tool Support for Embedded Systems
archive
Proceedings of the 2008 ACM SIGPLAN-SIGBED conference on Languages, compilers, and tools for embedded systems
table of contents
Tucson, AZ, USA
SESSION: Timing analysis and compiler optimization
table of contents
Pages 31-40
Year of Publication: 2008
ISBN:978-1-60558-104-0
Also published in ...
|
|
Authors
|
|
Dietmar Ebner
|
Vienna University of Technology, Vienna, Austria
|
|
Florian Brandner
|
Vienna University of Technology, Vienna, Austria
|
|
Bernhard Scholz
|
University of Sydney, Sydney, Australia
|
|
Andreas Krall
|
Vienna University of Technology, Vienna, Austria
|
|
Peter Wiedermann
|
Vienna University of Technology, Vienna, Austria
|
|
Albrecht Kadlec
|
Vienna University of Technology, Vienna, Austria
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 13, Downloads (12 Months): 148, Citation Count: 0
|
|
|
ABSTRACT
Instruction selection is a well-studied compiler phase that translates the compiler's intermediate representation of programs to a sequence of target-dependent machine instructions optimizing for various compiler objectives (e.g. speed and space). Most existing instruction selection techniques are limited to the scope of a single statement or a basic block and cannot cope with irregular instruction sets that are frequently found in embedded systems. We consider an optimal technique for instruction selection that uses Static Single Assignment (SSA) graphs as an intermediate representation of programs and employs the Partitioned Boolean Quadratic Problem (PBQP) for finding an optimal instruction selection. While existing approaches are limited to instruction patterns that can be expressed in a simple tree structure, we consider complex patterns producing multiple results at the same time including pre/post increment addressing modes, div-mod instructions, and SIMD extensions frequently found in embedded systems. Although both instruction selection on SSA-graphs and PBQP are known to be NP-complete, the problem can be solved efficiently - even for very large instances. Our approach has been implemented in LLVM for an embedded ARMv5 architecture. Extensive experiments show speedups of up to 57% on typical DSP kernels and up to 10% on SPECINT 2000 and MiBench benchmarks. All of the test programs could be compiled within less than half a minute using a heuristic PBQP solver that solves 99.83% of all instances optimally.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Warren P. Adams and Richard J. Forrester. A simple recipe for concise mixed 0-1 linearizations. Oper. Res. Lett., 33(1):55--61, 2005.
|
 |
2
|
|
| |
3
|
|
 |
4
|
|
| |
5
|
João Dias and Norman Ramsey. Converting intermediate code to assembly code using declarative machine descriptions. In Alan Mycroft and Andreas Zeller, editors, CC, volume 3923 of Lecture Notes in Computer Science, pages 217--231. Springer, 2006.
|
| |
6
|
Erik Eckstein. Code Optimization for Digital Signal Processors. PhD Thesis. TU Wien, November 2003.
|
| |
7
|
Erik Eckstein, Oliver König, and Bernhard Scholz. Code Instruction Selection Based on SSA-Graphs. In Andreas Krall, editor, SCOPES, volume 2826 of Lecture Notes in Computer Science, pages 49--65. Springer, 2003.
|
 |
8
|
|
 |
9
|
|
 |
10
|
|
 |
11
|
|
 |
12
|
|
 |
13
|
|
| |
14
|
J. Guo, T. Limberg, E. Matus, B. Mennenga, R. Klemm, and G. Fettweis. Code generation for STA architecture. In Proc. of the 12th European Conference on Parallel Computing (Euro-Par'06). Springer LNCS, 2006.
|
| |
15
|
Lang Hames and Bernhard Scholz. Nearly optimal register allocation with PBQP. In David E. Lightfoot and Clemens A. Szyperski, editors, JMLC, volume 4228 of Lecture Notes in Computer Science, pages 346--361. Springer, 2006.
|
| |
16
|
Hannes Jakschitsch. "Befehlsauswahl auf SSA-Graphen". Master's thesis, Fakultät für Informatik, Universität Karlsruhe (TH),Germany, 2004.
|
| |
17
|
SPEC2000 Website. http://www.spec.org.
|
| |
18
|
|
 |
19
|
|
| |
20
|
Stan Liao , Srinivas Devadas , Kurt Keutzer , Steve Tjiang, Instruction selection using binate covering for code size optimization, Proceedings of the 1995 IEEE/ACM international conference on Computer-aided design, p.393-399, November 05-09, 1995, San Jose, California, United States
|
| |
21
|
MiBench Website. http://www.eecs.umich.edu/mibench/.
|
| |
22
|
Albert Nymeyer and Joost-Pieter Katoen. Code generation based on formal BURS therory and heuristic search. Acta Inf., 34(8):597--635, 1997.
|
| |
23
|
Todd A. Proebsting. Least-Cost Instruction Selection in DAGs is NP-Complete. http://research.microsoft.com/~toddpro/papers/proof.htm, 1998.
|
 |
24
|
|
 |
25
|
|
| |
26
|
Vojin živojnovi#263;, Juan M. Velarde, Christian Schläger, and Heinrich Meyr. DSPSTONE: A DSP-oriented benchmarking methodology. In Proceedings of the International Conference on Signal Processing and Technology (ICSPAT'94), 1994.
|
|