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:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user