  Designing accelerators for resource- and power-constrained applications is a
daunting task. High-level Synthesis (HLS) addresses these constraints through
resource sharing, an optimization at the HLS binding stage that maps multiple
operations to the same functional unit.
  However, resource sharing is often limited to reusing instructions within a
basic block. Instead of searching globally for the best control and dataflow
graphs (CDFGs) to combine, it is constrained by existing instruction mappings
and schedules.
  Coarse-grained function merging (CGFM) at the intermediate representation
(IR) level can reuse control and dataflow patterns without dealing with the
post-scheduling complexity of mapping operations onto functional units, wires,
and registers. The merged functions produced by CGFM can be translated to RTL
by HLS, yielding Coarse Grained Merged Accelerators (CGMAs). CGMAs are
especially profitable across applications with similar data- and control-flow
patterns. Prior work has used CGFM to generate CGMAs without regard for which
CGFM algorithms best optimize area, power, and energy costs.
  We propose Guac, an energy-aware and SSA-based (static single assignment)
CGMA generation methodology. Guac implements a novel ensemble of cost models
for efficient CGMA generation. We also show that CGFM algorithms using SSA form
to merge control- and dataflow graphs outperform prior non-SSA CGFM designs. We
demonstrate significant area, power, and energy savings with respect to the
state of the art. In particular, Guac more than doubles energy savings with
respect to the closest related work while using a strong resource-sharing
baseline.
