Skip to content

Register stack

register_stack

RiscvRegisterStack dataclass

Bases: RegisterStack

Available RISCV-specific registers.

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

    DEFAULT_ALLOCATABLE_REGISTERS = (
        *reversed(IntRegisterType.allocatable_registers()),
        *reversed(FloatRegisterType.allocatable_registers()),
    )

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

DEFAULT_ALLOCATABLE_REGISTERS = (*(reversed(IntRegisterType.allocatable_registers())), *(reversed(FloatRegisterType.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/riscv/register_stack.py
20
21
22
23
@classmethod
@override
def default_allocatable_registers(cls):
    return RiscvRegisterStack.DEFAULT_ALLOCATABLE_REGISTERS