- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!GCCのプラグインを試す
GCCのプラグイン用のDSLであるMELTとgcc-python-pluginを試してみるなど.
* MELT http://gcc-melt.org/index.html
** オリジナルLISPでGCCプラグイン開発ができる
* gcc-python-plugin http://gcc-python-plugin.readthedocs.io/en/latest/index.html
** PythonでGCCプラグイン開発ができる
どちらもMacOSX上にビルドしたgccで試そうとしたものの断念して結局VM上のUbuntuで.
...うーん,母艦がMacOSXな意味が... ...
""
MELTのデモは今いち動作がよくわからなかったけど,
gcc-ptyhon-pluginは,
show-gimpleのデモでCFGの可視化ができ,わかりやすくて楽しい.
gfortranでも同様に可視化できることも確認.
たとえば,[sorthalf.f|https://github.com/srinathv/Coding-Examples/blob/master/codingTests/fortran90/sorthalf.f]を,
PYTHONPATH=gcc-python-plugin \
gfortran -fplugin=python \
-fplugin-arg-python-script=gcc-python-plugin/examples/show-ssa.py \
-c sorthalf.f
とすると
{{ref ssort.png}}
のように可視化される.
""
もう少し使ってみるかな.
""
ちなみに,デモやサンプルはビルドしたディレクトリでの実行を想定しているけど
make installすれば,-fplugin=pythonで呼び出せる.
gcc-plugin-testの下のgccutilsが使いたければ,
PYTHONPATH=ビルドしたディレクトリ/gcc-python-plugin \
gcc -fplugin=python -fplugin-arg-python-script=スクリプト \
その他のGCCオプションや対象ファイル
と,PYTHONPATHを指定してやればよい.