Inlining Functions - 2022.1 English

Vitis High-Level Synthesis User Guide (UG1399)

Document ID
UG1399
Release Date
2022-06-07
Version
2022.1 English

Sub-functions can optionally be inlined to merge their logic with the logic of the surrounding function. While inlining functions can result in better optimizations, it can also increase compile time as more logic must be kept in memory and analyzed. Inlined functions cannot be shared, while a non-inlined function that is called twice in a sequence may be shared to save resources.

Tip: Vitis HLS can perform automatic inlining of small functions. To disable automatic inlining of a small function, set the inline directive to off for that function.

If a function is inlined, there is no report or separate RTL file for that function. The logic and loops of the sub-function are merged with the higher-level function in the hierarchy.