On Improving the HLS Compatibility of Large C/C++ Code Regions

Heterogeneous CPU-FPGA C/C++ applications may rely on High-level Synthesis (HLS) tools to generate hardware for critical code regions. As typical HLS tools have several restrictions in terms of supported language features, to increase the size and variety of offloaded regions, we propose several code transformations to improve synthesizability. Such code transformations include: struct and array flattening; moving dynamic memory allocations out of a region; transforming dynamic memory allocations into static; and asynchronously executing host functions, e.g., printf(). We evaluate the impact of these transformations on code region size using three real-world applications whose critical regions are limited by non-synthesizable C/C++ language features.

Authors

Institutions

Publication Details

Published
2025-05-04
DOI
https://doi.org/10.1109/fccm62733.2025.00054
Citations
1
Primary Topic
Distributed and Parallel Computing Systems
Type
article
Field-Weighted Citation Impact
1.49
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

On Improving the HLS Compatibility of Large C/C++ Code Regions

João M. P. Cardoso, João Bispo, Juanita Hoe, Tiago Santos
1 citations
Distributed and Parallel Computing Systems
1.49
article

On Improving the HLS Compatibility of Large C/C++ Code Regions

João M. P. Cardoso, João Bispo, Juanita Hoe, Tiago Santos
article en
1 citations

Abstract

Heterogeneous CPU-FPGA C/C++ applications may rely on High-level Synthesis (HLS) tools to generate hardware for critical code regions. As typical HLS tools have several restrictions in terms of supported language features, to increase the size and variety of offloaded regions, we propose several code transformations to improve synthesizability. Such code transformations include: struct and array flattening; moving dynamic memory allocations out of a region; transforming dynamic memory allocations into static; and asynchronously executing host functions, e.g., printf(). We evaluate the impact of these transformations on code region size using three real-world applications whose critical regions are limited by non-synthesizable C/C++ language features.

Universidade do Porto (PT), INESC TEC (PT), Carnegie Mellon University (US)
Openalex Percentile: Top 17%
Distributed and Parallel Computing Systems
1.49
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.