Adjust Operand encoding

The encoding for OperandConstraint is adjusted to free up 2 bits which
allows for 2^21 vregs and 2^6 pregs.
This commit is contained in:
Amanieu d'Antras
2021-09-13 08:33:17 +01:00
parent ef2c9b3f26
commit 35ed2109b1
2 changed files with 36 additions and 34 deletions

View File

@@ -116,8 +116,8 @@ however.
Implementation note: both vregs and operands are bit-packed into
u32s. This is essential for memory-efficiency. As a result of the
operand bit-packing in particular (including the policy constraints!),
the allocator supports up to 2^20 (1M) vregs per function, and 2^5
(32) physical registers per class. Later we will also see a limit of
the allocator supports up to 2^21 (2M) vregs per function, and 2^6
(64) physical registers per class. Later we will also see a limit of
2^20 (1M) instructions per function. These limits are considered
sufficient for the anticipated use-cases (e.g., compiling Wasm, which
also has function-size implementation limits); for larger functions,