1 / 9

A Brief History of Retargetable Compilers

An exploration of the history and development of retargetable compilers from the early days of assembly language instructions to modern challenges and advancements in targeting new machines quickly and efficiently. The journey from machine-dependent back-ends to portable optimizers like PO and HOP, leading to contemporary examples like LLVM and Rocket. The debate on the realism of goals and the emergence of hardware/software co-design approaches, as discussed in Pat Burke’s pioneering dissertation on heterogeneous multiprocessing.

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