| Sparse code motion |
| Full text |
Pdf
(1.67 MB)
|
| Source
|
Annual Symposium on Principles of Programming Languages
archive
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
table of contents
Boston, MA, USA
Pages: 170 - 183
Year of Publication: 2000
ISBN:1-58113-125-9
|
|
Authors
|
|
Oliver Rüthing
|
University of Dortmund, Department of Computer Science, LS 5, D-44221 Dortmund, Germany
|
|
Jens Knoop
|
University of Dortmund, Department of Computer Science, LS 5, D-44221 Dortmund, Germany
|
|
Bernhard Steffen
|
University of Dortmund, Department of Computer Science, LS 5, D-44221 Dortmund, Germany
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 7, Downloads (12 Months): 42, Citation Count: 4
|
|
|
ABSTRACT
In this article, we add a third dimension to partial redundancy elimination by considering code size as a further optimization goal in addition to the more classical consideration of computation costs and register pressure. This results in a family of sparse code motion algorithms coming as modular extensions of the algorithms for busy and lazy code motion. Each of them optimally captures a predefined choice of priority between these three optimization goals, e.g. code size can be minimized while (1) guaranteeing at least the performance of the argument program, or (2) even computational optimality. Each of them can further be refined to simultaneously reduce the lifetimes of temporaries to a minimum. These algorithms are well-suited for size-critical application areas like smart cards and embedded systems, as they provide a handle to control the code replication problem of classical code motion techniques. In fact, we believe that our systematic, priority-based treatment of trade-offs between optimization goals may substantially decrease development costs of size-critical applications: users may “play” with the priorities until the algorithm automatically delivers a satisfactory solution.
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
|
Alfred V. Aho , John E. Hopcroft , Jeffrey Ullman , J. D. Ullman , J. E. Hopcroft, Data Structures and Algorithms, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1983
|
| |
2
|
G. Araujo, S. Devadas, K. Keutzer, S. Liao, S. Malik, A. Sudaxsanam, S. Tjiang, and A. Wang. Challenges in code generation for embedded processors. In P. Marwedel and G. Goossens, editors, Code Generation for Embedded Processors. Kluwer Academic Publishers, 1995.
|
 |
3
|
|
 |
4
|
|
 |
5
|
|
 |
6
|
|
| |
7
|
D. M. Dhamdhere. A new algorithm for composite hoisting and strength reduction optimisation (+ Corrigendum). Int. J. Comp. Math., 27:1 - 14 (-b 31- 32), 1989.
|
 |
8
|
|
 |
9
|
|
 |
10
|
|
 |
11
|
|
 |
12
|
|
 |
13
|
|
| |
14
|
|
| |
15
|
J. E. Hopcroft and R. M. Karp. An n~ algorithm for maximum matchings in bipartite graphs. SIAM Journal of Computing, 2(4):225 - 331, 1973.
|
| |
16
|
|
| |
17
|
Darko Kirovski , Johnson Kin , William H. Mangione-Smith, Procedure based program compression, Proceedings of the 30th annual ACM/IEEE international symposium on Microarchitecture, p.204-213, December 01-03, 1997, Research Triangle Park, North Carolina, United States
|
| |
18
|
J. Knoop. Optimal Interprocedural Program Optimization: A new Framework and its Application. PhD thesis, Univ. of Kiel, Germany, 1993. LNCS Tutorial 1428, Springer-V., 1998.
|
 |
19
|
|
 |
20
|
|
 |
21
|
Jens Knoop , Oliver Rüthing , Bernhard Steffen, Partial dead code elimination, Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation, p.147-158, June 20-24, 1994, Orlando, Florida, United States
|
 |
22
|
|
| |
23
|
|
| |
24
|
|
| |
25
|
J. K. F. Lee and A. J. Smith. Branch prediction strategies and branch target buffer design. IEEE Computer Magazine, pages 6- 22, Jan. 1984.
|
| |
26
|
Charles Lefurgy , Peter Bird , I-Cheng Chen , Trevor Mudge, Improving code density using compression techniques, Proceedings of the 30th annual ACM/IEEE international symposium on Microarchitecture, p.194-203, December 01-03, 1997, Research Triangle Park, North Carolina, United States
|
| |
27
|
|
 |
28
|
|
| |
29
|
L. Lov~sz and M. D. Plummer. Matching theory. Annals o} Discrete Mathematics~ 29, 1986.
|
| |
30
|
B. Marks. Compilation to compact code. IBM J. Research and Development, 24(6):684- 691, 1980.
|
 |
31
|
|
 |
32
|
|
 |
33
|
|
 |
34
|
|
| |
35
|
O. Riithing. Code motion in the presence of critical edges without bidirectional data flow analysis. Science of Computer Programming. Special issue devoted to the 5th Int. Static Analysis Symposium (SAS'98). To appear. 31 pages.
|
| |
36
|
O. Riithing. Interacting Code Motion Transformations: Their Impact and Their Complexity. PhD thesis, Univ. of Kiel, Germany, 1997. LNCS 1539, Springer-V., 1998.
|
| |
37
|
|
| |
38
|
|
 |
39
|
|
| |
40
|
|
 |
41
|
|
INDEX TERMS
Primary Classification:
D.
Software
D.2
SOFTWARE ENGINEERING
Additional Classification:
D.
Software
D.3
PROGRAMMING LANGUAGES
F.
Theory of Computation
F.3
LOGICS AND MEANINGS OF PROGRAMS
General Terms:
Algorithms,
Design,
Languages
Keywords:
busy code motion,
code motion,
code size,
compuational optimality,
embedded processors and systems,
expression motion,
lazy code motion,
life-time optimality,
partial redundancy elimination,
space optimality
|