qat.experimental.dialect.q1.transforms.reg_alloc module

Q1 support for xDSL register allocation.

class Q1RegisterStack(allocatable_registers=<factory>, next_infinite_indices=<factory>, reserved_registers=<factory>, available_registers=<factory>, allow_infinite=False)

Bases: RegisterStack

Register stack configured with the Q1 physical register set.

classmethod allocatable_registers(reserved_registers=None)

Return Q1 physical registers available after excluding reserved registers.

Return type:

tuple[Q1RegisterType, ...]

classmethod default_allocatable_registers()

The default registers to be made available when instantiating the stack.

Return type:

tuple[Q1RegisterType, ...]

classmethod from_reserved_registers(reserved_registers=None, allow_infinite=False)

Create a stack with the requested Q1 registers excluded from allocation.

Return type:

Q1RegisterStack