Open Bug 1631650 Opened 4 years ago Updated 2 years ago

Allow fast Ion-to-Wasm calls for functions with I64 stack arguments

Categories

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

task

Tracking

()

People

(Reporter: asumu, Unassigned)

References

(Blocks 1 open bug)

Details

Patches for bug 1608771 make Ion to Wasm calls with BigInt/I64 arguments fast in most cases, but does not optimize calls in which there are I64 arguments that get assigned to the stack.

This bug report documents this limitation, which is due to a check that the register allocator makes to ensure at-start call uses with same type temps are not allowed: https://searchfox.org/mozilla-central/source/js/src/jit/BacktrackingAllocator.cpp#701 (I64 uses have LDefinition::General kind, which is the same as temps)

Status: UNCONFIRMED → NEW
Ever confirmed: true
Priority: -- → P2
Blocks: 1631702
Blocks: 1608770
Severity: -- → N/A

Optimization item, bumping to P3.

No longer blocks: 1608770, 1631702
Type: enhancement → task
OS: Unspecified → All
Priority: P2 → P3
Hardware: Unspecified → All

I think we should still get the jit-entry here so this does not seem critical, it's not like we're forced back to the interpreter entry.

Yury mentions that this might become more interesting with memory64, which will make 64-bit data more common.

Blocks: wasm64
You need to log in before you can comment on or make changes to this bug.