Can we convert arbitrary or legacy programs to hardware ? Not very well in general.
Can we write new C programs that compile to good hardware ? Yes. But we must stick to the supported subset for synthesis.
Typical HLS restrictions:
An early example » DJG C-To-V compiler from 1995. » Bubble Sorter Example
Today commercial HLS tools are widely available : SystemCrafter, Catapult, SimVision, CoCentric, C-to-Verilog.com, Vivado HLS, ... others.
And research HLS tools, such as Kiwi and LegUp, support floating point, pointers and some dynamic storage allocation using DRAM banks as necessary,
|15: (C) 2012-17, DJ Greaves, University of Cambridge, Computer Laboratory.|