Form、つまり静的単一代入のことです。各変数が一度のみ代入されるよう定義されたものである。Wikipedia変数は再代入できるプログラミング言語は多いです。nというローカル変数に2回代入しているとします。SSAはこの代入(割り当て)を別々のものに変換します。それぞれn1とn2に割り当てたことにします。イメージとしてはif文はどうでしょうか。n;この10の割り当てと20の割り当てを、nではなくn1/n2としたということです。returnされた結果を後続のブロックが利用する場合、実行ルートによってn1かn2のどちらかを用います。この結果もSSAとしてn3に割り当てたいです。実行時、n1の方の先行ブロックが実行されればn1、n2の方の先行ブロックが実行されればn2がn3に割り当てられます。n3も単一定義できました。functions)と呼ばれるものを使います。ファイ関数が、先行ブロックの結果状態をマージして、次のブロックで利用できるようにします。4.7実際のJavaコードのHIRを見て、ファイ関数を確認してみます。}}pやnに何度も代入があります。以前解説したCFGとc1visualizerを使います。Factorial3628800出力された.cfgファイルをc1visualizerで見ます。i8plhがついたブロックがあります。これはファイ関数があるブロックです。B2i7、i8はファイ関数が適用されます。i8にはi5かi11のどちらかの値が入ります。それは、先行ブロックとしてB0とB2のどちらが実行されたかに依存します。このHIRのCFGを見てみるとわかりやすいです。Time)コンパイルしました。制御フローグラ...2017-11-29Graalのグラフこちらの内容に沿って、Graalの理解を深めています。関西Javaエンジニアの会の代表/発起人です。JVMやJavaについて書きます。(51)スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。