タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

データフロー解析に関するkopan580のブックマーク (2)

  • コンパイラバックエンド処理 データフロー解析 : Reaching Definition - Qiita

    はじめに Qiitaでは、コンパイラの最適化の話が少ないな~と思ったので、コンパイラのバックエンドの話をしようかと思います。 自分はCOINS(コンパイラ共通インフラストラクチャ)や、Ocelotで実装したことがあります。COINSはJavaで、OcelotはC++です。 まぁ、もちろん自作したコンパイラ上に実装しても良いと思いますが、今の時代に一人で現実的なコンパイラを作るのはナンセンスですからね。素直に共通インフラストラクチャとか使うのが良いと思います。 最適化とは コンパイラは、フロントエンドで字句解析、構文解析などをして、バックエンドでCFG(Control Flow Graph、制御フローグラフ)作成、各種最適化、レジスタ割り付け、実行可能コードの出力などの処理を行います。 今回は、そのうちの最適化の話です。最適化とは、簡単に言ってしまえば、より早く、より効率的にプログラムが動作

    コンパイラバックエンド処理 データフロー解析 : Reaching Definition - Qiita
  • コンパイラバックエンド処理 データフロー解析④:CFG, Bit Vector, トポロジカルソートなど - Qiita

    コンパイラバックエンド処理 データフロー解析④:CFG, Bit Vector, トポロジカルソートなどアルゴリズムコンパイラ最適化バックエンド計算機科学 はじめに 今回は、データフロー解析において基的な知識であるControl Flow Graph(CFG)やBit Vector、CFGのノードの辿り方などを書いていきたいと思います。 データフロー解析の具体的な手法については、以下の記事を参考にしてみてください。 Reaching Definition Available expressions Liveness analysis Control Flow Graph(CFG) CFGとは、基ブロック(basic block)をノードとするグラフのことで、少し計算機科学の分野をかじったことがある人なら聞いたことがあると思います。 まず、基ブロックとは何かというところから説明したいと

    コンパイラバックエンド処理 データフロー解析④:CFG, Bit Vector, トポロジカルソートなど - Qiita
  • 1