Closed Bug 1287224 Opened 8 years ago Closed 8 years ago

Unify MWasmBoundsCheck::redunant_ and needsBoundsCheck

Categories

(Core :: JavaScript Engine: JIT, defect, P3)

defect

Tracking

()

RESOLVED DUPLICATE of bug 1298202

People

(Reporter: lami4ka, Unassigned)

References

Details

The redundant_ flag and mir->needsBoundsCheck() fulfill a very similar role - determining when a bounds check can be removed. They are not yet merged since: 1) needsBoundsCheck() governs the behavior of both AsmJS and Wasm bounds checks. Since those have subtly different semantics, merging them needs to be done carefully 2) As a stylistic nit, needsBoundsCheck() is defined on all MWasmMemory Accesse's, even MWasmLoad and MWasmStore. However it doesn't do anything on MWasmLoad/MWasmStore. On the other hand needsBoundsCheck() (as part of MWasmMemoryAccess) is bundled with fields that DO apply to MWasmLoad and MWasmStore. It would be nice to decouple it, so that its only defined on nodes for which it makes sense.
For 2, we could split the inheritance hierarchy to make clearer which classes use which fields. For 1, AsmJS embeds bounds checks in instructions anyways; asm.js atomics and SIMD memory accesses could maybe use the same mechanism as Wasm, as their behavior on OOB is to just throw, as in wasm. With this in mind, I think we can experiment with merging both fields now.
Priority: -- → P3
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.