Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inst のメモリレイアウトをまともにする #3

Open
nojima opened this issue Nov 2, 2014 · 1 comment
Open

Inst のメモリレイアウトをまともにする #3

nojima opened this issue Nov 2, 2014 · 1 comment
Assignees

Comments

@nojima
Copy link
Owner

nojima commented Nov 2, 2014

現在の VM は Inst 一つ一つにメモリを個別に割り当てているため、非常に効率が悪い。配列上に一列に並べるべき。

設計

  • 現在、Inst が仮想関数を持っているが、これを排除して仮想関数を持たないようにする。
  • どの Inst であるかどうかを判定するための kind メンバを持たせる。dispatch は、kind に対する switch で行う。
  • code は Inst を vector の上に隙間なく敷き詰めるようなレイアウトにする。
  • Inst の具体クラスのサイズは 8 の倍数になるように注意しないといけない。そういないとアライメントが狂う。
  • 現在 ip++ としているところは、ip += sizeof(...) という形になる。
  • 現在 dynamic_cast で Inst の種類を判定しているところは、kind の比較に置き換える。
@nojima
Copy link
Owner Author

nojima commented Nov 6, 2014

LLVM の InstVisitor を参考にするとよいかも。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant