Hatena::ブログ(Diary)

PB memo このページをアンテナに追加 RSSフィード

2018-09-14 ruby-trunk-changes r64735 - r64740

[][]ruby-trunk-changes r64735 - r64740

今日は VM 命令の PC 操作を極力共通部分にまとめる最適化リトライなどがありました。

k0kubun: r64735 2018-09-13 21:29:57 +0900

OPT_CALL_FASTPATH というマクロを 0 にすると CI_SET_FASTPASS() が効果を持たなくなるという意図で存在してましたが、実際には既に 0 にすると動かなくなる状態だったのでこのマクロでの on/off はなくしています。

k0kubun: r64736 2018-09-13 22:59:25 +0900

ISeq の binary dump/load の関数 iseq_ibf_dump() と iseq_ibf_load()、ibf_load_iseq_complete() といった関数は static ではないので rb_ の prefix を追加しています。

shyouhei: r64737 2018-09-14 16:44:44 +0900

r62051 で試したものの revert された ADD_PC を VM 命令の個別の処理から最後の共通部分に移動する最適化を、r64677 で導入した VM 命令の leaf フラグを利用して再度実装しています。コードサイズ削減と PC 操作を極力まとめてするようにして cache hit 率を上げるための最適化のようです。

svn: r64738 2018-09-14 16:44:45 +0900

version.h の日付更新。

shyouhei: r64739 2018-09-14 16:57:19 +0900

r64737 でインデントにタブを使ってたので、新規部分はスペースを使う方針に合わせてスペースに変換しています。

shyouhei: r64740 2018-09-14 17:27:44 +0900

r64712 および r64731 で警告除去のために引数に cast 追加してた hrtime_update_expire() のデバッグメッセージ出力ですが、フォーマット指示子に PRI_64_PREFIX の後に "u" をつけてましたが、それを PRIu64 というマクロを使うようにしています。PRIu64 というマクロは C99 で導入されてるので、なかったら自前で定義しておくようにしています。

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。

トラックバック - http://d.hatena.ne.jp/nagachika/20180914/ruby_trunk_changes_64735_64740