Commit e83af22
committed
Checker: process defs/clobbers on branches to allow checking of try-calls.
The regalloc checker previously handled branches specially: it skipped
the normal operand-procesing logic because it handles block-call
arguments explicitly with parallel moves.
However, this is no longer fully correct in the presence of try-calls:
these are branches but also have normal uses, defs, and clobbers, so we
need to process those normally.
The comment noted also that we needed to skip operand processing on
branches because edge-moves may come before branches, but I'm not sure
that exemption ever made sense: if moves interfere with operands to the
branch (e.g. conditional branch inputs) we should catch that too.
This simplifies the checker's instruction handling to no longer skip
branches' operands, with no other changes (and no changes to the
allocator itself).
Addresses bytecodealliance/wasmtime#10585 (and will fix once we release
with this and pull into Cranelift).1 parent 3fc2514 commit e83af22
1 file changed
+16
-19
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
758 | 758 | | |
759 | 759 | | |
760 | 760 | | |
761 | | - | |
762 | | - | |
763 | | - | |
764 | | - | |
765 | | - | |
766 | | - | |
767 | | - | |
768 | | - | |
769 | | - | |
770 | | - | |
771 | | - | |
772 | | - | |
773 | | - | |
774 | | - | |
775 | | - | |
776 | | - | |
777 | | - | |
778 | | - | |
779 | | - | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
780 | 777 | | |
781 | 778 | | |
782 | 779 | | |
| |||
0 commit comments