Skip to content

Latest commit

 

History

History
46 lines (31 loc) · 2.48 KB

README.md

File metadata and controls

46 lines (31 loc) · 2.48 KB

oir

Actions Status

OtakuAssembly Vol.2 第一章『データフロー最適化の実装』サンプル実装

OtakuAssembly Vol.2 OtakuAssembly Vol.2 電子版
book ebook

遊び方

usage: oir [options]

    -i input_file           (default: "-")
    -f input_format         (default: "text")
    -o output_file          (default: "-")
    -g output_format        (default: "text")
    -p passes               (default: "reach,prop,available,cse,live,dce")
    -l number_of_loops      (default: "1")
    -h help                 (default: "false")

oirは入力のOIRに解析や最適化を施して出力するプログラムです。-o-iでそれぞれ出力と入力ファイルを指定できます。指定しない場合は標準入出力がデフォルトで使われます。

-pオプションで入力に施す解析や最適化とその順番をカンマ区切りで指定できます。さらに、-lオプションで-pで指定した手順を指定回数繰り返させることができます。

-gオプションで出力の形式を指定できます。-g textがデフォルトの形式です。-g jsonで、解析結果を含めたOIRについてのほとんどの情報をJSON形式で出力します。-g graphでは、Graphvizのdot形式でOIRのCFGを出力します。出力したdot形式のファイルは、dotコマンドでPDFや画像として見ることができます。

例えば、text/count.oirにデッドコード削除を行った結果のOIRのCFGをcfg.pdfに出力するには、次のようにします:

$ ./build/oir -i text/count.oir -g graph -p live,dce -o cfg.gv
$ dot -Tpdf -o cfg.pdf cfg.gv

テスト

$ make test.docker

報告について

OtakuAssembly Vol.2 第一章『データフロー最適化の実装』について、何か問題や誤植などを見つけた場合は当リポジトリのIssueにて対応いたします。正誤表はこのREADMEに掲載します。その他質問などございましたら、筆者coord_eまでお気軽にご連絡ください。