Constellation on master
Getter is called twice in railg… (compare)
Constellation on master
Drop unnecessary typedef (compare)
Constellation on master
Fix ToNumber on Symbols (compare)
Constellation on master
Drop JSReference, it's not used… (compare)
Constellation on master
Drop SipHash, it's not used any… (compare)
Constellation on master
Subsequent SPARC fix, thx id:sy… (compare)
Constellation on master
Enabling a language ASM only wh… (compare)
all-targetsbitwriterlinkeripoinstrumentationsupporttablegenasmparser
となっていたのですが...
あー、だんだんと理解できてきました。
今回のLLVMを用いて作成するJITはTracingJITであるという理解であってますか。そして、TracingJITの目的はHot loopの高速化なので以下のようなコードを高速化します。
function f(x) {
return 1 + x;
}
//しきい値をこえるような大きなsizeのarray
var arr = [1,2,3,...,1.5];
for (var i=0; i<arr.length; ++i) {
f(arr[i]);
}
arrは十分大きなsizeの配列で最後の要素がdoubleで後はintであるとします。ループの途中でOSRで飛んでintに最適化されたコードを生成し、以降はそのコードを使って実行します。しかし、最後にdoubleが入力されてきてguardがfailしてしまい、deoptimizationする必要がある。
この理解であってますか?