yarv-dev:521
From: SASADA Koichi <ko1 atdot.net>
Date: Wed, 29 Jun 2005 14:16:22 +0900
Subject: [yarv-dev:521] Re: Optimal code generation on Stack Caching
ささだです。 shudo computer.org wrote: > 首藤です。 > > >> ささだです。 > > >> 命令ハンドラ中に分岐がある場合、gcc だとブロックを明後日の場所において > > ^^^^^^^^^^^^ 「VM命令のインスタンス」ですよね? IBM の論文に命令ハンドらって書いてあったので、ひきづられてしまいました。 > >>しまうことがあるので、追うのが大変なんですよね。だから dynamic >>superinstruction (selective inlining) も出来ない。なんとかする方法はある >>んだろうか。 > > > 1つの VM 命令インスタンスが 方々にバラまかれてしまったら、 > dynamic だけじゃなくて static superinstructions もかなり困難ではないかと。 > 制御フローを解析して、かき集めて、ジャンプ先の解決をする?????????? > なんとかバラまかれないようにできればいいのですが、 > 別の関数に閉じ込める (→空間コストが unacceptable)、くらいしか > 方法が思い付きません。 -fno-reorder-blocks を付けたら、ばら撒かれないようになりました。失礼し ました。前に試したときには駄目だった記憶があるんですが、何かの勘違いだっ たようで。 > > VM 命令インスタンスを C 言語で記述することで割と高い移植性が得られる > わけだけど、上記の点とか、 > 変数のレジスタへの割り当てが自由にならないなどの残念な点もあるわけで。 まったくそのとおりですね。 > Ertl 先生の研究では、TOS (top of stack) (や PC?) の > レジスタへの割り当てはどう制御してるんでしょうか? > vmgen がうまいことやってくれるんでしょうか。 なんとなく、最近は gcc カスタム for インタプリタ、みたいなものを作るし かないのかなぁ、とか思っています。いや、そこまでやるかは微妙ですが。 -- // SASADA Koichi at atdot dot net // -- ML: yarv-dev quickml.atdot.net 使い方: http://www.atdot.net/~ko1/quickml
512 2005-06-28 16:03 [ko1 atdot.net ] Optimal code generation on Stack Caching 513 2005-06-28 17:08 ┗[maeda-yarv atusi.org] 516 2005-06-28 20:16 ┗[ko1 atdot.net ] 518 2005-06-29 10:45 ┗[shudo computer.org ] 519 2005-06-29 10:51 ┣[shudo computer.org ] 522 2005-06-29 14:17 ┃┗[ko1 atdot.net ] -> 521 2005-06-29 14:16 ┗[ko1 atdot.net ] 523 2005-06-29 14:45 ┗[ko1 atdot.net ]