diff options
author | Alon Zakai <azakai@google.com> | 2024-09-18 15:55:43 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-18 15:55:43 -0700 |
commit | 5e4a4bae6544eda7d6e5be923bd1086921ffcb1b (patch) | |
tree | 4bc7cf991eb4f4709fcdaf1df33ba5f5ff8fce09 /src/parsing.h | |
parent | b381a8c82030c2be3d1605d6f2854098f039f617 (diff) | |
download | binaryen-5e4a4bae6544eda7d6e5be923bd1086921ffcb1b.tar.gz binaryen-5e4a4bae6544eda7d6e5be923bd1086921ffcb1b.tar.bz2 binaryen-5e4a4bae6544eda7d6e5be923bd1086921ffcb1b.zip |
[NFC + bugfix] Remove BreakTargetLocation from GUFA (#6956)
Before, a br would send its value to a BreakTargetLocation. That would then be
linked to the target:
{ br's value } => BreakTargetLocation(target name) => { location of target }
This PR skips the middle:
{ br's value } => { location of target }
It just connects breaks directly to the targets. We can do that if we keep a
map of the targets as we go.
This is 2% faster as well as simplifies the code, as an NFC refactoring. But it
also fixes a bug: we have handling on ExpressionLocation that filters values as they
come in (they must accord with the expression's type). We were not doing
that on BreakTargetLocation, leading to an assert. Removing
BreakTargetLocation entirely is easier and better than adding filtering logic
for it.
Fixes #6955
Diffstat (limited to 'src/parsing.h')
0 files changed, 0 insertions, 0 deletions