Commit ef8016a
authored
Checker: process defs/clobbers on branches to allow checking of try-calls. (#224)
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 ef8016a
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