[wasm] [jiterp] Use wasm if opcode for null checks and conditional branches #88114
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Right now conditional branches look like:
and null checks look like
Since wasm doesn't have branch hinting, it's hard to be sure how to properly hint an unlikely branch. I suspect that using different opcode layouts might produce better performance here, so this PR changes the generated code for both kinds of branches and moves more of the codegen into the Cfg class.
Local benchmarking results were inconclusive, but that's to be expected. The impact of this would likely appear in browser-bench and the perf autofiling if it appears anywhere. On the bright side it also makes null checks and branches much easier to spot in traces, so that's nice.