{"title":"Generation of Compiler Backends from Formal Models of Hardware","authors":"Gus Henry Smith","doi":"arxiv-2408.15429","DOIUrl":null,"url":null,"abstract":"Compilers convert between representations -- usually, from higher-level,\nhuman writable code to lower-level, machine-readable code. A compiler backend\nis the portion of the compiler containing optimizations and code generation\nroutines for a specific hardware target. In this dissertation, I advocate for a\nspecific way of building compiler backends: namely, by automatically generating\nthem from explicit, formal models of hardware using automated reasoning\nalgorithms. I describe how automatically generating compilers from formal\nmodels of hardware leads to increased optimization ability, stronger\ncorrectness guarantees, and reduced development time for compiler backends. As\nevidence, I present two case studies: first, Glenside, which uses equality\nsaturation to increase the 3LA compiler's ability to offload operations to\nmachine learning accelerators, and second, Lakeroad, a technology mapper for\nFPGAs which uses program synthesis and semantics extracted from Verilog to map\nhardware designs to complex, programmable hardware primitives.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2024-08-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"arXiv - CS - Programming Languages","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/arxiv-2408.15429","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
Compilers convert between representations -- usually, from higher-level,
human writable code to lower-level, machine-readable code. A compiler backend
is the portion of the compiler containing optimizations and code generation
routines for a specific hardware target. In this dissertation, I advocate for a
specific way of building compiler backends: namely, by automatically generating
them from explicit, formal models of hardware using automated reasoning
algorithms. I describe how automatically generating compilers from formal
models of hardware leads to increased optimization ability, stronger
correctness guarantees, and reduced development time for compiler backends. As
evidence, I present two case studies: first, Glenside, which uses equality
saturation to increase the 3LA compiler's ability to offload operations to
machine learning accelerators, and second, Lakeroad, a technology mapper for
FPGAs which uses program synthesis and semantics extracted from Verilog to map
hardware designs to complex, programmable hardware primitives.