[前][次][番号順一覧][スレッド一覧][生データ]

yarv-dev:443

From: Minero Aoki <aamine loveruby.net>
Date: Sun, 6 Mar 2005 12:52:15 +0900
Subject: [yarv-dev:443] Re: [ANN] YARV - Yet Another RubyVM 0.2.0

青木です。

  In mail "[yarv-dev:437] Re: [ANN] YARV - Yet Another RubyVM 0.2.0"
  SASADA Koichi <ko1 atdot.net> wrote:

>  ささだです。

> >   tunami:~/src/yarv-0.2.0 % gcc --version
> >   gcc (GCC) 3.4.3

>  うーん、3.4 系は試していないのだけれど、なんか思い通りのア
> センブル結果になっていないような・・・。なんでだろ。私も 3.4
> 系で試してみないと駄目かな。

-mcpu=ev6 あたりが変なことをしてるのやもしれません。
今度起動したときにでもいくつかフラグを試しときます。

# ちなみに以前「Alpha だと gcc は遅くて」とか言いましたが、
# その後の調べによると、少なくとも Ruby に関しては
# ccc (COMPAQ cc) と gcc 3.4 は速度差がないことがわかってます。


>  ちなみに、ia32 系(と x86-64系)では、program counter をレ
> ジスタに割り付けています。その辺が結構効いているのではないかと
> 思います> alpha であんまり速くなってない
> 
>  他の VM の仮想レジスタ類も、マシンレジスタに割り付けてしまえば
> きっともっと速くなると思います。でも、gcc のバグか何か知らないけ
> ど、上書きしちゃいけないレジスタに上書きするようなコード吐いてく
> れるので、安全側に倒して、現状では PC 一個だけを対象にしています。
> (x86-64 で、もうちょっとレジスタに置いてみたんだけどあんまり速
> くならんかったという経緯もあるんですが)
> 
>  alpha って何個レジスタ持ってるんですか?

物理的には 32 個ですが、当然ながら calling convention で
いくらか制限がかかります。"Alpha Architecture Reference Manual"
II-B DIGITAL UNIX Software によると、

  * アキュミュレータ 1
  * 関数呼び出しで無効 12
  * 関数呼び出しをまたいで有効 6

となってます (もちろん fp とか sp は別にある)。
Linux とか NetBSD のような他の UNIX 系 OS も
digital UNIX 互換なので同様です。


>  あと、GC がどうの、という話ですが、現状では(malloc した)
> スタックの領域をすべて mark するようにしているので、遅いです。
> もちろん、使っていないスタック領域をマークする意味は無いのですが、
> その「何処まで使っている」というのを厳密に管理するのがめんどーで、
> さぼっています。それも、直さないと。

そうかあ、YARV に GC は関係ないような気がしてたんですが、
管理データで GC が関ってくるわけですね。大変だなあ。
-------------------------------------------------------------------
青木峰郎

--
ML: yarv-dev quickml.atdot.net
使い方: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]

       432 2005-03-04 16:02 [ko1 atdot.net       ] [ANN] YARV - Yet Another RubyVM 0.2.0   
       433 2005-03-04 18:15 ┗[aamine loveruby.net ]                                       
       434 2005-03-04 19:16  ┗[ko1 atdot.net       ]                                     
       435 2005-03-04 20:44   ┗[aamine loveruby.net ]                                   
       437 2005-03-05 20:03    ┗[ko1 atdot.net       ]                                 
->     443 2005-03-06 12:52     ┗[aamine loveruby.net ]                               
       446 2005-03-06 17:06      ┣[ko1 atdot.net       ]                             
       449 2005-03-06 19:22      ┃┗[ko1 atdot.net       ]                           
       450 2005-03-06 19:51      ┗[shiro lava.net      ]                             
       451 2005-03-06 20:13       ┗[ko1 atdot.net       ] GC on stack (was: Re: [ANN] YARV - Yet Another RubyVM 0.2.0)