Skip to content

Register stack

register_stack

X86RegisterStack dataclass

Bases: RegisterStack

Available x86-specific registers.

Source code in xdsl/backend/x86/register_stack.py
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
@dataclass
class X86RegisterStack(RegisterStack):
    """
    Available x86-specific registers.
    """

    DEFAULT_ALLOCATABLE_REGISTERS = (
        *reversed(registers.GeneralRegisterType.allocatable_registers()),
        *reversed(registers.AVX2RegisterType.allocatable_registers()),
        *reversed(registers.AVX512RegisterType.allocatable_registers()),
    )

    @classmethod
    @override
    def default_allocatable_registers(cls):
        return cls.DEFAULT_ALLOCATABLE_REGISTERS

DEFAULT_ALLOCATABLE_REGISTERS = (*(reversed(registers.GeneralRegisterType.allocatable_registers())), *(reversed(registers.AVX2RegisterType.allocatable_registers())), *(reversed(registers.AVX512RegisterType.allocatable_registers()))) class-attribute instance-attribute

__init__(allocatable_registers: defaultdict[str, set[int]] = (lambda: defaultdict(lambda: set[int]()))(), next_infinite_indices: defaultdict[str, int] = (lambda: defaultdict(lambda: 0))(), reserved_registers: defaultdict[str, defaultdict[int, int]] = (lambda: defaultdict(lambda: defaultdict[int, int](lambda: 0)))(), available_registers: defaultdict[str, list[int]] = (lambda: defaultdict(list[int]))(), allow_infinite: bool = False) -> None

default_allocatable_registers() classmethod

Source code in xdsl/backend/x86/register_stack.py
21
22
23
24
@classmethod
@override
def default_allocatable_registers(cls):
    return cls.DEFAULT_ALLOCATABLE_REGISTERS