Files
regalloc2/src
Chris Fallin 00dc692489 Allow for reused inputs when the reused vreg is also used as other (normal) uses. (#33)
The "reused input" operand constraint allows for an instruction to have
a def-operand whose allocation is constrained to reuse the same
allocation as one of the uses.

This is useful to express constraints needed for some instruction sets,
like x86, where at the ISA level, one register serves both as an input
and the output.

Unfortunately the way that we lower the constraints to liveranges does
not work if we have the same vreg used both for the reused input and
another input -- it results in impossible-to-solve constraints. For
example, the instruction

```
    alu_op v42 use, v42 use, v43 def reuse(0)
```

would result in an impossible allocation.

This fixes liverange construction to properly handle all uses of the
vreg whose operand is reused, rather than just the one reused operand.
2022-03-18 10:14:27 -07:00
..
2022-03-03 16:58:33 -08:00
2021-12-01 01:43:20 +00:00
2022-01-11 13:03:21 +00:00
2021-08-12 14:00:20 -07:00
2021-12-01 01:43:20 +00:00