CC 1994: Compiler Construction pp 128-142 | Cite as

Global code selection for directed acyclic graphs

  • Andreas Fauth
  • Günter Hommel
  • Alois Knoll
  • Carsten Müller
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 786)

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.

References

  1. 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. 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. 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. 4.
    P. Briggs: Register Allocation via Graph Coloring. Ph. D. Thesis, Rice Univ., Houston, Texas (1992)Google Scholar
  5. 5.
    R.G.G. Cattell: Automatic Derivation of Code Generators from Machine Descriptions. ACM TOPLAS 2:2 (1980) 173–190CrossRefGoogle Scholar
  6. 6.
    J.W. Davidson, C.W. Fraser: Code Selection through Object Code Optimization. ACM TOPLAS 6:4 (1984) 505–526CrossRefGoogle Scholar
  7. 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. 8.
    H. Emmelmann: Code Selection by Regularly Controlled Term Rewriting. Code Generation — Concepts, Tools Techniques, Springer (1992) 3–29Google Scholar
  9. 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. 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. 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. 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. 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. 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. 15.
    M. Freericks: The nML Machine Description Formalism. Technical Report 1991/15, Technische Universität Berlin, Fachbereich 20, Informatik, Berlin (1991)Google Scholar
  16. 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. 17.
    M. Ganapathi, C.N. Fischer: Description-driven code generation using attribute grammars. Proc. of the 9th POPL (1982) 108–119Google Scholar
  18. 18.
    M. Ganapathi, C.N. Fischer, J.L. Hennessy: Retargetable Compiler Code Generation. Computing Surveys 14:4 (1982) 573–592CrossRefGoogle Scholar
  19. 19.
    M. Ganapathi, C.N. Fischer: Affix Grammar Driven Code Generation. ACM TOPLAS 7:4 (1985) 560–599CrossRefGoogle Scholar
  20. 20.
    M. Ganapathi, C.N. Fischer: Integrating Code Generation and Peephole Optimization. Acta Informatica 25 (1988) 85–109CrossRefGoogle Scholar
  21. 21.
    R. Giegerich: Code selection by inversion of order-sorted derivors. Theoretical Computer Science 73 (1990) 177–211CrossRefGoogle Scholar
  22. 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. 23.
    R. Hartmann: Combined scheduling and data routing for programmable ASIC systems. Proc. European Design Automation Conference EDAC'92 (1992)Google Scholar
  24. 24.
    J.L. Hennessy, D.A. Patterson: Computer architecture: a quantitative approach. Morgan Kaufmann Publishers (1990)Google Scholar
  25. 25.
    C.M. Hoffmann, M.J O'Donnell: Pattern Matching in Trees. JACM 29:1 (1982) 68–95CrossRefGoogle Scholar
  26. 26.
    M. Rim, R. Jain: Representing Conditional Branches for High-Level Synthesis Applications. Proc. 29 Design Automation Conf. (1992) 106–111Google Scholar
  27. 27.
    D. Landskov, S. Davidson, B.D. Shriver, P.W. Mallet: Local microcode compaction techniques. Computing Surveys 12:9 (1980) 261–294CrossRefGoogle Scholar
  28. 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. 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. 30.
    T.A. Proebsting: Simple and efficient BURS table generation. Proc. PLDI'92, SIGPLAN Notices 27:6 (1992) 331–340Google Scholar
  31. 31.
    K. Rimey, P.N. Hilfinger: A Compiler for Application-Specific Signal Processors. VLSI Signal Processing III (1988) 341–351Google Scholar
  32. 32.
    K. Rimey, P.N. Hilfinger: Lazy data routing and greedy scheduling. 21st Annual Workshop on Microprogramming MICRO-21 (1988) 111–115Google Scholar
  33. 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

Authors and Affiliations

  • Andreas Fauth
    • 1
  • Günter Hommel
    • 1
  • Alois Knoll
    • 2
  • Carsten Müller
    • 1
  1. 1.Institut für Technische InformatikTechnische Universität BerlinBerlinGermany
  2. 2.Technische FakultätUniversität BielefeldBielefeldGermany

Personalised recommendations