diff options
author | Heejin Ahn <aheejin@gmail.com> | 2020-02-05 15:40:04 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-05 15:40:04 -0800 |
commit | aab75ed890a3e491d00e652bbfbe19edd17d38cb (patch) | |
tree | 324d482c863119bb19defe3cc8b5b638f6bc7be1 /src/parsing.h | |
parent | 7be22c4d68270573ee010938aa8cd06be89e54d2 (diff) | |
download | binaryen-aab75ed890a3e491d00e652bbfbe19edd17d38cb.tar.gz binaryen-aab75ed890a3e491d00e652bbfbe19edd17d38cb.tar.bz2 binaryen-aab75ed890a3e491d00e652bbfbe19edd17d38cb.zip |
Fix LocalCSE's usable local selection (#2638)
Now that we have subtypes, we cannot reuse any local that contains the
same expression, because that local's type can be a supertype. For
example:
```
(local $0 anyref)
(local $1 nullref)
...
(local.set $0 (ref.null))
(local.set $1 (ref.null)) ;; cannot be replaced with (local.get $0)
```
This extends `usables` map's key to contain both `HashedExpression` and
the local's type, so we can get the right usable local in presence of
subtypes.
Diffstat (limited to 'src/parsing.h')
0 files changed, 0 insertions, 0 deletions