Local Code Generation and Compaction in Optimizing Microcode Compilers

Abstract

Horizontal micro-architectures often have features that make it difficult for a compiler to produce good object code from a high-level language. Although the problem of compacting microcode into a near-minimal number of microinstructions has received a great deal of attention, other phases of the compiler have not been studied as thoroughly. This dissertation explores methods of generating quality microcode for horizontal microarchitectures, compacting the microcode, and the interaction between code generation and compaction. There are often several code sequences that perform the same computation for a given micro-architecture. If the code generation and compaction phases of the compiler are executed sequentially, the code generator may not be able to determine the best code, because a code sequence that compacts well in one situation may contain several bottlenecks in another. This dissertation explores three methods of coupling the code generation and compaction phases of the compiler, and concludes that subtle micromachine features make it very difficult to produce good code unless the code generator actually produces several candidate code sequences that are compacted and compared with one another.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Dec 01, 1982
Accession Number
ADA126026

Entities

People

  • Steven R. Vegdahl

Organizations

  • Carnegie Mellon University

Tags

Communities of Interest

  • Energy and Power Technologies

DTIC Thesaurus Topics

  • Artificial Intelligence
  • Automated Speech Recognition
  • C Programming Language
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Debugging
  • High Level Languages
  • Language
  • Law
  • Machine Languages
  • Macroprogramming
  • Microprogramming
  • Object Code
  • Operating Systems
  • Programming Languages

Fields of Study

  • Computer science

Readers

  • Computer Programming and Software Development.
  • Parallel and Distributed Computing.