CC 1994: Compiler Construction pp 128-142 | Cite as
Global code selection for directed acyclic graphs
Conference paper
First Online:
Abstract
We describe a novel technique for code selection based on data-flow graphs, which arise naturally in the domain of digital signal processing. Code selection is the optimized mapping of abstract operations to partial machine instructions. The presented method performs an important task within the retargetable microcode generator CBC, which was designed to cope with the requirements arising in the context of custom digital signal processor (DSP) programming. The algorithm exploits a graph representation in which control-flow is modeled by scopes.
Keywords
Digital Signal Processor Intermediate Representation Register Allocation Attribute Grammar Signal Flow Graph
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.
Download
to read the full conference paper text
References
- 1.A.V. Aho, M. Ganapathi, S.W. Tjiang: Code Generation Using Tree Matching and Dynamic Programming. ACM TOPLAS 11:4 (1989) 491–516CrossRefGoogle Scholar
- 2.D.G. Bradlee, R.R. Henry, S.J. Eggers: The Marion System for Retargetable Instruction Scheduling. Proc. PDLI'91, SIGPLAN Notices 26:6 (1991) 229–240Google Scholar
- 3.D.G. Bradlee, S.J. Eggers, R.R. Henry: Integrating Register Allocation and Instruction Scheduling for RISCs. 4th Int. Conf. on Arch. Support for Prog. Lang. and Operating Systems (1991) 122–131Google Scholar
- 4.P. Briggs: Register Allocation via Graph Coloring. Ph. D. Thesis, Rice Univ., Houston, Texas (1992)Google Scholar
- 5.R.G.G. Cattell: Automatic Derivation of Code Generators from Machine Descriptions. ACM TOPLAS 2:2 (1980) 173–190CrossRefGoogle Scholar
- 6.J.W. Davidson, C.W. Fraser: Code Selection through Object Code Optimization. ACM TOPLAS 6:4 (1984) 505–526CrossRefGoogle Scholar
- 7.H. Emmelmann, F.-W. Schöer, R. Landwehr: BEG — a Generator for Efficient Back Ends. Proc. PLDI89, SIGPLAN Notices 24:7 (1989) 227–237Google Scholar
- 8.H. Emmelmann: Code Selection by Regularly Controlled Term Rewriting. Code Generation — Concepts, Tools Techniques, Springer (1992) 3–29Google Scholar
- 9.A. Fauth, A. Knoll: Automated Generation of DSP Program Development Tools Utilizing a Machine Description Formalism. Technical Report 1992/31, Technische Universität Berlin, Fachbereich 20, Informatik, Berlin (1992)Google Scholar
- 10.A. Fauth, A. Knoll: Automatic-Generation of DSP Program Development Tools Using a Machine Description Formalism. Proc. IEEE Int. Conf. on Acoustics, Speech and Signal Processing (1993) 457–460Google Scholar
- 11.A. Fauth, A. Knoll: Translating Signal Flowcharts into Microcode for Custom Digital Signal Processors. Proc. Int. Conf. on Signal Processing (1993) 65–72Google Scholar
- 12.A. Fauth, M. Freericks, A. Knoll: Generation of Hardware Machine Models from Instruction Set Descriptions. VLSI Signal Processing VI (1993) 242–250CrossRefGoogle Scholar
- 13.C.W. Fraser, R.R. Henry, T.A. Proebsting: BURG — Fast Optimal Instruction Selection and Tree Parsing. ACM SIGPLAN Notices 27:4 (1992) 68–76Google Scholar
- 14.C.W. Fraser, D.R. Hanson, T.A. Proebsting: Engineering a Simple, Efficient Code Generator Generator. ACM Letters on Prog. Lang. and Systems 1:3 (1993) 213–226CrossRefGoogle Scholar
- 15.M. Freericks: The nML Machine Description Formalism. Technical Report 1991/15, Technische Universität Berlin, Fachbereich 20, Informatik, Berlin (1991)Google Scholar
- 16.M. Freericks, A. Knoll: Formally Correct Translation of DSP Algorithms Specified in an Asynchronous Applicative Language. Proc. Int. Conf. on Acoustics, Speech and Signal Processing (1993) 417–420Google Scholar
- 17.M. Ganapathi, C.N. Fischer: Description-driven code generation using attribute grammars. Proc. of the 9th POPL (1982) 108–119Google Scholar
- 18.M. Ganapathi, C.N. Fischer, J.L. Hennessy: Retargetable Compiler Code Generation. Computing Surveys 14:4 (1982) 573–592CrossRefGoogle Scholar
- 19.M. Ganapathi, C.N. Fischer: Affix Grammar Driven Code Generation. ACM TOPLAS 7:4 (1985) 560–599CrossRefGoogle Scholar
- 20.M. Ganapathi, C.N. Fischer: Integrating Code Generation and Peephole Optimization. Acta Informatica 25 (1988) 85–109CrossRefGoogle Scholar
- 21.R. Giegerich: Code selection by inversion of order-sorted derivors. Theoretical Computer Science 73 (1990) 177–211CrossRefGoogle Scholar
- 22.R.S. Glanville, S.L. Graham: A new method for compiler code generation (Extended Abstract). Conf. Record of the 5th POPL (1978) 231–240Google Scholar
- 23.R. Hartmann: Combined scheduling and data routing for programmable ASIC systems. Proc. European Design Automation Conference EDAC'92 (1992)Google Scholar
- 24.J.L. Hennessy, D.A. Patterson: Computer architecture: a quantitative approach. Morgan Kaufmann Publishers (1990)Google Scholar
- 25.C.M. Hoffmann, M.J O'Donnell: Pattern Matching in Trees. JACM 29:1 (1982) 68–95CrossRefGoogle Scholar
- 26.M. Rim, R. Jain: Representing Conditional Branches for High-Level Synthesis Applications. Proc. 29 Design Automation Conf. (1992) 106–111Google Scholar
- 27.D. Landskov, S. Davidson, B.D. Shriver, P.W. Mallet: Local microcode compaction techniques. Computing Surveys 12:9 (1980) 261–294CrossRefGoogle Scholar
- 28.D. Lanneer, F. Catthoor, G. Goossens, M. Pauwels, J. Van Meerbergen, H. De Man: Open-ended System for High-Level Synthesis of Flexible Signal Processors. Proc. European Design Automation Conf. EDAC'90 (1990) 272–276Google Scholar
- 29.G. Meyer-Berg: The Library LIB for the Hardware Independent Compiler CBC. Esprit-II Project 2260 “Sprite” Report CBC.b/Siemens/Y4m12/2 (1992)Google Scholar
- 30.T.A. Proebsting: Simple and efficient BURS table generation. Proc. PLDI'92, SIGPLAN Notices 27:6 (1992) 331–340Google Scholar
- 31.K. Rimey, P.N. Hilfinger: A Compiler for Application-Specific Signal Processors. VLSI Signal Processing III (1988) 341–351Google Scholar
- 32.K. Rimey, P.N. Hilfinger: Lazy data routing and greedy scheduling. 21st Annual Workshop on Microprogramming MICRO-21 (1988) 111–115Google Scholar
- 33.Discussion: Code Generator Specification Techniques. Led by Chris Fraser, Summarized by J. Boyland and H. Emmelmann, Code Generation — Concepts, Tools Techniques, Springer (1992) 66–69Google Scholar
Copyright information
© Springer-Verlag Berlin Heidelberg 1994