Skip to content
/ oir Public

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

License

Notifications You must be signed in to change notification settings

coord-e/oir

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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までお気軽にご連絡ください。

About

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

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published