Jicchoの箱

コンピュータサイエンス,特にコンパイラの話が多め.

MENU

コンパイラ

LLVM IRからGPUの実行可能ファイルを出力するコンパイルフローのまとめ

研究の過程で,cudaコードをclangに与えて出力されるLLVM IRを,GPUの実行可能ファイルまでコンパイルする必要があったので,そのコンパイルフローをまとめる. 環境 コンパイルフロー cu --> ll device.ll --> ptx ptx -> .o ptx, o --> fatbin fatbin, hos…

GPU向けコンパイラの最適化の紹介と論文のサーベイ

この記事では,私の研究分野であるGPU向けコンパイラの最適化の紹介と論文のサーベイを行う. 以下,随時更新. 分岐発散 (Branch Divergence) 分岐発散とは Independent Thread Scheduling 分岐発散に対する最適化 Software based approaches Hardware ba…

CFG,トポロジカルソート,Bit Vector,ワークリストアルゴリズム

はじめに Control Flow Graph(CFG) 基本ブロック(basic block) 基本ブロックのトポロジカルソート Bit Vector ワークリストアルゴリズム 参考記事 はじめに この記事は,以前に私がQiitaに投稿した記事である. ふと,はてなブログにも残しておきたいと思っ…

Dead Code Elimination(無用コード除去, DCE)

はじめに Liveness analysis 概要 アルゴリズム DCEの注意点 参考記事 はじめに この記事は,以前に私がQiitaに投稿した記事である. ふと,はてなブログにも残しておきたいと思ったので,移植する. Liveness analysis そのまま日本語に訳すと、生存解析。…

Common Sub-expression Elimination(共通部分式削除,CSE)

はじめに Available expressions 概要 アルゴリズム 参考記事 はじめに この記事は,以前に私がQiitaに投稿した記事である. ふと,はてなブログにも残しておきたいと思ったので,移植する. Available expressions 日本語に訳すと、利用可能な式。つまり、…

Reaching Definition

はじめに 最適化とは Reaching Definition 概要 アルゴリズム 参考記事 はじめに この記事は,以前に私がQiitaに投稿した記事である. ふと,はてなブログにも残しておきたいと思ったので,移植する. 最適化とは コンパイラは、フロントエンドで字句解析、…

Lazy Code Motion

この記事は,言語実装 Advent Calendar 2020の11日目の記事です.前回はDrumatoさんのRust製のパーサコンビネータcombineを覗き見する(v4.4.0),次回はalgon_320さんのELVM Scratch 3.0 backendです. この記事では,コンパイラの代表的なコード最適化手法の…

コンパイラのコード最適化や解析手法の論文のサーベイ

この記事では,自分が最適化コンパイラの研究をする上で読んできた論文をまとめていこうと思う. まとめることで,自分のためにもなるだろうし,読んだ人のためにもなれたら嬉しい. 以下,随時更新. 部分冗長除去法(Partial Redundancy Elimination, PRE) …