Understanding How Graal Works - a Java JIT Compiler Written in Java に沿って、Graalの理解を深めてきました。前回はロック粗粒化、記事の最後の解説でした。 jyukutyo.hatenablog.com これからは少しづつ自分で調べていきます。Graalがというかコンパイ…
JJUG CCC 2017 Fallで一番楽しみにしていたセッション(そして素晴らしいセッションでした)"CPUから見たG1GC"で、初めて知ったことがありました。 CPUから見たG1GC from Kenji Kazumura www.slideshare.net JITコンパイルのコードの中に、使っているGCアル…
前回はGraalでの大域的値番号付けでした。 jyukutyo.hatenablog.com こちらの記事に沿ってGraalの理解を深めます。 Understanding How Graal Works - a Java JIT Compiler Written in Java 今回はロック粗粒化(Lock coarsening)です。同一のモニタに対して…
前回はノードの正規化による最適化でした。 jyukutyo.hatenablog.com こちらの記事に沿ってGraalの理解を深めます。 Understanding How Graal Works - a Java JIT Compiler Written in Java 今回は大域的値番号付けです。大域的値番号付け(Global value num…
前回はマシンコードの生成処理を見ました。 jyukutyo.hatenablog.com この記事に沿ってGraalの理解を深めています。 Understanding How Graal Works - a Java JIT Compiler Written in Java 今回はグラフを最適化することでより効率的なコードを生成する、と…
前回はグラフノードの生成を見ました。 jyukutyo.hatenablog.com この記事に沿ってGraalの理解を深めています。 Understanding How Graal Works - a Java JIT Compiler Written in Java 最終的には、グラフにある各ノードに対してマシンコードを生成します(…
前回はGraalのグラフを見ました。 jyukutyo.hatenablog.com 実際にどのようにグラフを作るかという謎はありますが、視点を変えて実際にJavaバイトコードをマシンコードに変換する部分を見てみます。 Chris Seatonさんの記事に沿ってGraalの理解を深めます。 …
こちらの内容に沿って、Graalの理解を深めています。 Understanding How Graal Works - a Java JIT Compiler Written in Java 前回はGraalにJITコンパイルをさせました。 jyukutyo.hatenablog.com 今回はGraalのグラフについてです。いわゆるプログラム依存…
前回JITコンパイラで"コンパイルしたコードは戻り値で返すのではなくコードキャッシュにインストールする"と書きました。 jyukutyo.hatenablog.com ではコードキャッシュとは何でしょう?単純化して言うとJITコンパイル後のマシンコードをキャッシュする場所…
前回ではGraalをJITコンパイラとして使うため、EnableJVMCIでJVMCIを有効にしました。 jyukutyo.hatenablog.com 引き続き Understanding How Graal Works - a Java JIT Compiler Written in Java を参考に、Graalの理解を深めます。 ところでJVMCIとは何なの…
きしださんに教えていただいた、Graalについての非常によい入門記事があります。 Understanding How Graal Works - a Java JIT Compiler Written in Java Graalの上のTruffleでのRuby実装であるTruffleRubyを開発しているChris Seatonさんのブログです。この…
前回のの投稿で、Java 8と9ではjava -XX:+PrintCompilation -XX:CompileOnly=xxxの出力が異なると書きました。 jyukutyo.hatenablog.com すると、OpenJDK Reviewerである末永さんからヒントをいただきました。 Excluding compileって特徴的ですね。これでHot…
Java 9とJava 8では-XX:CompileOnlyでの出力が異なってる…すごく大量に出力されるようになってる。 理由やここに仕様が載ってるよ、という方がいればぜひ教えてください!! 対象クラス class Demo { public static void main(String[] args) { while (true)…
5回目のCCC登壇です! JJUG CCC 2017 Fall オレオレJVM言語を作ってみる from Koichi Sakata www.slideshare.net ソースコードはこちらです。 github.com このブログ投稿で実装した四則演算のTruffleでの言語実装について、セッションという形で話しました。…
Graalはこちらからダウンロードできるのですが、 Oracle Labs GraalVM: Download ソースを読むついでにビルドしました。 Graalとmxが要ります。Graalはバージョン0.29を使います。 $ git clone https://github.com/graalvm/graal.git $ cd ../graal $ git ch…