[wasm] Avoid zero extension after truncate
In wasm code, we sometimes see the pattern <some 64 bit expression> i32.wrap/i64 i32.load where we generate an instruction to extend the 32 bit offset into a zero extended 64 bit value for the actual load. However, the preceeding truncate already yields a zero extended 32 bit value, so the extra instruction is not needed. Even more, it might get in the way of munching more computation into the final load. This change adds information about the zero extending behavior to the existing optimization that avoids the zero extension. Bug: chromium:853685 Change-Id: Iab9179379923ecb88651df6091b3d9408341cf4c Reviewed-on: https://chromium-review.googlesource.com/c/1421839Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Stephan Herhut <herhut@chromium.org> Cr-Commit-Position: refs/heads/master@{#58998}
Showing
Please
register
or
sign in
to comment