  The emergence of machine learning, image and audio processing on edge devices
has motivated research towards power efficient custom hardware accelerators.
Though FPGAs are an ideal target for energy efficient custom accelerators, the
difficulty of hardware design and the lack of vendor agnostic, standardized
hardware compilation infrastructure has hindered their adoption.
  This paper introduces HIR, an MLIR-based intermediate representation (IR) to
describe hardware accelerator designs. HIR combines high level language
features, such as loops and multi-dimensional tensors, with programmer defined
explicit scheduling, to provide a high-level IR suitable for DSL compiler
pipelines without compromising control over the micro-architecture of the
accelerator. HIR's explicit schedules allow it to express fine-grained,
synchronization-free parallelism and optimizations such as retiming and
pipelining. Built as a dialect in MLIR, it draws from best IR practices learnt
from communities like those of LLVM. While offering rich optimization
opportunities and a high level abstraction, HIR enables sharing of
optimizations, utilities and passes with software compiler infrastructure.
  Our implementation shows that the code generation time of the HIR code
generator is on average 1112x lower than that of Xilinx Vivado HLS on a range
of kernels without a compromise on the quality of the generated hardware. We
believe that these are significant steps forward in the design of IRs for
hardware synthesis and in equipping domain-specific languages with a productive
and performing compilation path to custom hardware acceleration.
