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

このWIKIを編集するにはパスワード入力が必要です

認証パスワード