コンパイラ
研究の過程で,cudaコードをclangに与えて出力されるLLVM IRを,GPUの実行可能ファイルまでコンパイルする必要があったので,そのコンパイルフローをまとめる. 環境 コンパイルフロー cu --> ll device.ll --> ptx ptx -> .o ptx, o --> fatbin fatbin, hos…
この記事では,私の研究分野であるGPU向けコンパイラの最適化の紹介と論文のサーベイを行う. 以下,随時更新. 分岐発散 (Branch Divergence) 分岐発散とは Independent Thread Scheduling 分岐発散に対する最適化 Software based approaches Hardware ba…
はじめに Control Flow Graph(CFG) 基本ブロック(basic block) 基本ブロックのトポロジカルソート Bit Vector ワークリストアルゴリズム 参考記事 はじめに この記事は,以前に私がQiitaに投稿した記事である. ふと,はてなブログにも残しておきたいと思っ…
はじめに Liveness analysis 概要 アルゴリズム DCEの注意点 参考記事 はじめに この記事は,以前に私がQiitaに投稿した記事である. ふと,はてなブログにも残しておきたいと思ったので,移植する. Liveness analysis そのまま日本語に訳すと、生存解析。…
はじめに Available expressions 概要 アルゴリズム 参考記事 はじめに この記事は,以前に私がQiitaに投稿した記事である. ふと,はてなブログにも残しておきたいと思ったので,移植する. Available expressions 日本語に訳すと、利用可能な式。つまり、…
はじめに 最適化とは Reaching Definition 概要 アルゴリズム 参考記事 はじめに この記事は,以前に私がQiitaに投稿した記事である. ふと,はてなブログにも残しておきたいと思ったので,移植する. 最適化とは コンパイラは、フロントエンドで字句解析、…
この記事は,言語実装 Advent Calendar 2020の11日目の記事です.前回はDrumatoさんのRust製のパーサコンビネータcombineを覗き見する(v4.4.0),次回はalgon_320さんのELVM Scratch 3.0 backendです. この記事では,コンパイラの代表的なコード最適化手法の…
この記事では,自分が最適化コンパイラの研究をする上で読んできた論文をまとめていこうと思う. まとめることで,自分のためにもなるだろうし,読んだ人のためにもなれたら嬉しい. 以下,随時更新. 部分冗長除去法(Partial Redundancy Elimination, PRE) …