Stream: git-wasmtime

Topic: wasmtime / Issue #1028 Spillling for branch instructions ...


view this post on Zulip Wasmtime GitHub notifications bot (Feb 03 2021 at 19:57):

bjorn3 commented on Issue #1028:

I don't think this is still relevant for the new backend framework.

view this post on Zulip Wasmtime GitHub notifications bot (Feb 03 2021 at 20:10):

cfallin closed Issue #1028:

There seems to be a problems with branch instructions that take register operands from a constrained register class. The problem is the global values live across the branch into the destination EBB. These values can't be temporarily moved because the destination EBB expects them in their global registers.

Normally, the spiller will make sure that there are enough free registers for the branch instruction's own operands, but it can't guarantee that there are registers free in a constrained register class.

An example is an Intel brnz.b1 instruction whose controlling b1 operand is constrained to the ABCD register class. We can't currently guarantee the live-ins for the destination EBB are not taking up the whole ABCD register class.


Last updated: Oct 23 2024 at 20:03 UTC