ConstraintAnalysis: Handle fallthrough values - #9000
Conversation
| // not change while falling through. For a local, the only way for the | ||
| // local to change while falling through is to go through a tee of that | ||
| // local - but that would keep the same value there anyhow. That is: |
There was a problem hiding this comment.
It would be good to explain in the comment why it is not a problem if there is a tee to a different local.
There was a problem hiding this comment.
What did you have in mind? A tee of another local is like a write to linear memory, i.e., not relevant for that local - at least I'm not sure what you are suggesting to clarify here, sorry.
There was a problem hiding this comment.
If we have something like this:
(local.set $x
(local.tee $y
(i32.const $z)
)
)
Then it would be good for the comment to explain that we won't miss collecting $y == $z because it will be visited separately.
Also, do we miss collecting $x == $y in this case?
There was a problem hiding this comment.
We handle tees since #8998
The basic block looks like
i32.const
local.set $y
local.set $x
so we just execute those in sequence, not missing anything.
I added a comment on tees as you suggest.
No description provided.