1 / 9

A Brief History of Retargetable Compilers

A Brief History of Retargetable Compilers. Philip Sweany 12/3/15. In the Beginning …. “Compilers” (early 1950s) were basically a group of assembly language instructions that could be “sewn” together Once actual compilers were available, the search for “reusable” compilers started.

rault
Download Presentation

A Brief History of Retargetable Compilers

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A Brief History of Retargetable Compilers Philip Sweany 12/3/15

  2. In the Beginning … • “Compilers” (early 1950s) were basically a group of assembly language instructions that could be “sewn” together • Once actual compilers were available, the search for “reusable” compilers started

  3. The Nirvana of Retargetable Compilers • Start with M languages and N instruction sets • Build M (language dependent) front ends • Build N (machine dependent) back ends • Viola ! – M * N compilers

  4. Alas • No such thing as • Machine independent front-end (parser) • Language independent back-end (code gen) • So, M*N compilers were of poor quality • Portable C compiler (pcc) (1970s) was sort of an example but even then much work needed to retarget

  5. PO, HOP, CHOP • Efforts shifted from retargetable per se to code generation that could “easily” map from one instruction set to another • Portable Optimizer (PO) • CISC architectures • Replace set(s) of N instructions with a set of < N • Long time (and much work) to “target” to new machine • HOP, CHOP were “improvements”

  6. Modern Retargetable Compiler(s) • GCC “solves” retargetable issue, RIGHT? • Well, …, perhaps at the instruction level and with great difficulty • LLVM likely (I guess) less cumbersome but still “only” instruction set OR • ROCKET (1990s) • Arcane (prolog like) machine description of ISA AND microarchitecture. 2000 lines of “description.”

  7. The Problem • We’d LIKE a retargetable compiler that • Targets a new machine quickly, easily • Generates code considering the micro-architecture of the computer, not just the ISA • Are these realisitc goals? Maybe

  8. Hardware/Software Co-Design • A different approach • Use software to design hardware for a specific application (or at least group of applications) • Popular in Europe • Still requires a great deal of human expertise and intervention

  9. Pat Burke’s Dissertation • Design retargetable compiler (or at least the machine description for) a “new” type of processor, namely • Heterogeneous multiprocessing on a chip

More Related