Open Bug 1887052 Opened 1 year ago Updated 11 months ago

Avoid checking for i31ref in pre/post write barriers if the stored ValType does not contain it

Categories

(Core :: JavaScript: WebAssembly, enhancement, P3)

enhancement

Tracking

()

People

(Reporter: rhunt, Unassigned)

References

(Blocks 1 open bug)

Details

EmitWasmPreBarrierGuard and EmitWasmPostBarrierGuard both eventually call branchWasmAnyRefIsGCThing which performs a check to see if the value is an i31ref or not. If we're performing a store to a structref or (ref null 0) field, this check should always fail as those fields cannot contain i31ref. Tracking this type information would help us eliminate this.

Another alternative would be to find a way to optimize branchWasmAnyRefIsGCThing so that the i31ref check is folded into the 'is GC thing' check somehow.

Blocks: wasm-gc-perf
No longer blocks: wasm-gc
You need to log in before you can comment on or make changes to this bug.