RevisionLog10000以前
Rev9979
vm/symbolが新規作成、全体をvm/symbol向けにリファクタリング。
FlowGraphAllocatorの修正が多くて SpillとLiveRangeのSplitが実装完。
SSA LinerScanの機能は一通り完成と。
dartvm aobenchが12秒から10秒に改善されてる。
このへんはFlowGraphCompilerの成果か、もしくはintrinsicの改善あたりか。
また、実行を繰り返すごとに遅くなるバグも改善されたっぽい。
これはメモリ周りが悪かったのだろうか。
Rev9886
flow graph allocatorの変更点が多い。ssaベースのIRのまま、レジスタ割り付けを行うみたい。
あと気になってるのは、ParallelMoveResolverって奴と大量に追加されたintrinsics。
twitterからのメモ書き
...
そのうち内容を整理して書き直す予定。
2012/06くらいは、aobenchが12秒弱だった。
aobenchでcに対してjavaが3倍弱、v8で1.5倍って考えたら、luajitの2倍はかなり速いかも。
aobenchで比較ではないから詳しくはわからないけど。ちなみにdartvmはcの15倍です。。
dartのコンストラクタで初期化されるメンバがfinalだった場合、クラス自体を特殊化できるはず。
この場合IC でコンストラクタの引数をプロファイル取れば、自動で特殊化いけるか。。
dartvmのx64版ではNewCompilerに切り替わっているらしく、5月からFlowGraphOptimizerというクラスが追加されている。
Srdjan Mitrovic氏のコメントが随所に、、TODO(srdjan): Implement this.
dartのstringの+廃止はoperator overloadを考慮してstringconcatの最適化をするのが面倒だから、かなと、適当に予想。
- 最終更新:2012-09-26 23:36:06