Abstract
The code quality of many high-level language compilers in the field of digital signal processing is not satisfactory. This is mostly due to the complexity of the code generation problem together with the irregularity of typical DSP architectures. Since digital signal processors mostly are traded on the high volume consumer market, they are subject to serious cost constraints. On the other hand, many embedded applications demand high performance capacities. Thus, it is very important that the features of the processor are exploited as efficiently as possible. By using integer linear programming (ILP), the deficiencies of the decoupling of different code generation phases can be removed, since it is possible to integrate instruction scheduling and register assignment in one homogeneous problem description. This way, optimal solutions can be found-albeit at the cost of high compilation times. Our experiments show, that approximations based on integer linear programming can provide a better solution quality than classical code generation algorithms in acceptable runtime for medium sized code sequences. The experiments were performed for a modern DSP, the Analog Devices ADSP-2106x.
Chapter PDF
Similar content being viewed by others
Keywords
- Integer Linear Programming
- Digital Signal Processor
- Resource Type
- Code Optimization
- Very Large Scale Integration
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Analog Devices. ADSP-2106x SHARC User’s Manual (1995)
Arya, S.: An Optimal Instruction Scheduling Model for a Class of Vector Processors. IEEE Transactions on Computers C-34 (November 1985)
Bieker, U., Bashford, S.: Scheduling, Compaction and Binding in a Retargetable Code Generator Using Constraint Logic Programming. In: 4. GI/ITG/GME Workshop ”Methoden des Entwurfs und der Verifikation digitaler Systeme”, Kreischa, Germany (March 1996)
Bradlee, D.G.: Retargetable Instruction Scheduling for Pipelined Processors. Phd thesis, Technical Report 91-08-07, University of Washington (1991)
Briggs, P., Cooper, K., Torczon, L.: Improvements to Graph Coloring Register Allocation. ACM Transactions on Programming Languages and Systems 16(3), 428–455 (1994)
Callahan, D., Koblenz, B.: Register Allocation via Hierarchical Graph Coloring. In: Proceedings of the ACM PLDI Conference, pp. 192–202 (1991)
Chaudhuri, S., Walker, R.A., Mitchell, J.E.: Analyzing and Exploiting the Structure of the Constraints in the ILP-Approach to the Scheduling Problem. IEEE Transactions on Very Large Scale Integration (VLSI) System 2(4), 456–471 (1994)
Fisher, J.A.: Trace Scheduling: A Technique for Global Microcode Compaction. IEEE Transactions on Computers C-30(7), 478–490 (1981)
Gebotys, C.H., Elmasry, M.I.: Optimal VLSI Architectural Synthesis. Kluwer Academic, Dordrecht (1992)
Gebotys, C.H., Elmasry, M.I.: Global Optimization Aproach for Architectural Synthesis. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems CAD-12(9), 1266–1278 (1993)
Govindarajan, R., Altman, E.R., Gao, G.R.: A Framework for Resource Constrained Rate Optimal Software Pipelining. IEEE Transactions on Parallel and Distributed Systems 7(11) (November 1996)
Gupta, R., Soffa, M.L.: Region scheduling: An approach for detecting and redistributing parallelism. IEEE Transactions on Software Engineering 16(4), 421–431 (1990)
Hanono, S., Devadas, S.: Instruction Scheduling, Resource Allocation, and Scheduling in the AVIV Retargetable Code Generator. In: Proceedings of the DAC 1998, San Francisco, California. ACM, New York (1998)
Kästner, D.: Instruktionsanordnung und Registerallokation auf der Basis ganzzahliger linearer Programmierung für den digitalen Signalprozessor ADSP-2106x. Master’s thesis, University of the Saarland (1997)
Kästner, D., Langenbach, M.: Integer Linear Programming vs. Graph Based Methods in Code Generation. Technical Report A/01/98, University of the Saarland, Saarbrücken, Germany (January 1998)
Landskov, D., Davidson, S., Shriver, B., Mallet, P.W.: Local Microcode Compaction Techniques. ACM Computing Surveys 12(3), 261–294 (1980)
Langenbach, M.: Instruktionsanordnung unter Verwendung graphbasierter Algorithmen für den digitalen Signalprozessor ADSP-2106x. Master’s thesis, University of the Saarland (1997)
Leupers, R.: Retargetable Code Generation for Digital Signal Processors. Kluwer Academic Publishers, Dordrecht (1997)
Nemhauser, G.L., Rinnooy Kan, A.H.G., Todd, M.J. (eds.): Handbooks in Operations Research and Management Science, vol. 1. North-Holland, Amsterdam (1989)
Nemhauser, G.L., Wolsey, L.A.: Integer and Combinatorial Optimization. John Wiley and Sons, New York (1988)
Nicolau, A.: Uniform parallelism exploitation in ordinary programs. In: International Conference on Parallel Processing, pp. 614–618. IEEE Computer Society Press, Los Alamitos (1985)
Papadimitriou, C.H., Steiglitz, K.: Combinatorial Optimization, Algorithms and Complexity. Prentice-Hall, Englewood Cliffs (1982)
Papadimitriou, C.H., Steiglitz, K.: Combinatorial Optimization, Algorithms and Complexity, ch-13, pp. 318–322. Prentice-Hall, Englewood Cliffs (1982)
Ruttenberg, J., Gao, G.R., Stoutchinin, A., Lichtenstein, W.: Software Pipelining Showdown: Optimal vs. Heuristic Methods in a Production Compiler. In: Proceedings of the 1996 ACM SIGPLAN Conference on Programming Languages Design and Implementation (PLDI 1996), vol. 31(5), May 1996, pp. 1–11 (1996)
Saghir, M.A.R., Chow, P., Lee, C.G.: Exploiting Dual Data-Memory Banks in Digital Signal Processors (1996), http://www.eecg.toronto.edu/~saghir/papers/asplos7.ps
SPAM Research Group, http://www.ee.princeton.edu/spam SPAM Compiler User’s Manual (September 1997)
Sudarsanam, A.: Code Optimization Libraries for Retargetable Compilation for Embedded Digital Signal Processors. PhD thesis, University of Princeton (November 1998)
Wilson, T., Grewal, G., Henshall, S., Banerji, D.: An ILP-Based Approach to Code Generation. In: Marwedel, P., Goossens, G. (eds.) Code Generation for Embedded Processors, ch. 6, pp. 103–118. Kluwer, Dordrecht (1995)
Zhang, L.: SILP. Scheduling and Allocating with Integer Linear Programming. PhD thesis, University of the Saarland, Technical Faculty (1996)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kästner, D., Langenbach, M. (1999). Code Optimization by Integer Linear Programming. In: Jähnichen, S. (eds) Compiler Construction. CC 1999. Lecture Notes in Computer Science, vol 1575. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-49051-7_9
Download citation
DOI: https://doi.org/10.1007/978-3-540-49051-7_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-65717-0
Online ISBN: 978-3-540-49051-7
eBook Packages: Springer Book Archive