下記のアップデートしました。
普段、H/W用のCソースコードを書くときはreturn値は使わないので実装してなかったのです。
メモリにベースアドレスを付けたので、内部&外部メモリに対応できたと思う。
ついでに、メモリI/Fを無条件で実装していたのを使用しない場合は、削除するようにしてみた。 本当に計算だけのソースコードの場合、スッキリしたVerilog HDLが出力されます。
ただ、配列や構造体を使用したら、確実にメモリI/Fが出来上がります。 もはやメモリに支配されているプロセッサ向け言語の宿命ですね。
デバッグ用に-dオプションを追加して、分離した関数のCソースコードとLLVM-IRを残すようにしてみた。 どんなソースコードを書くと、LLVMがどのように最適化するか勉強するには調度良いかな? これわかってるとVivado HLSやSDK for OpenCLの展開がわかっていいかも・・・