TypeSSA could delete exactness

オープン
#8,694 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
説明が足りない
活発さ
静か
技術スタック
wasm
領域
compilers

調査の方向性

まず TypeSSA パスと TypeGeneralizing パスの実装、および #8002 での以前の議論を読んでください。どのアプローチが意図されているかを判断し、struct.new_desc に流れるディスクリプター型と、パブリック heap 型の exact reference で使用される型について、exactness がどのように扱われているかを確認してください。選択したアプローチで残りのケースをカバーできれば完了です。

索引モデルが issue の本文から書いたものです。

説明

We've previously discussed (e.g. in #8002) that TypeSSA no longer works well now that we automatically refine reference types to be exact wherever possible. The fix we had previously discussed was finishing and using the TypeGeneralizing pass (which might separately be good for code size by reducing the size of the type section) to remove exactness. But we could alternatively have a more crude fix where TypeSSA itself could delete exactness from as many types as possible. The only types for which it would not be able to erase exactness would be descriptor types that may flow into struct.new_desc instructions and any type that appears in an exact reference in a public heap type.

主要言語
WebAssembly
スター
8.6k
フォーク
885
平均マージ
2日 1時間
マージ済み PR(30日)
70

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

WebAssembly/binaryen のほかの issue

WebAssembly/binaryen の issue をすべて見る

似ている issue

Compilers の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。