ir: IRRegister: track registers (statefully)

This commit is contained in:
Antoine Viallon 2024-01-05 23:15:52 +01:00
parent fb62c3b34a
commit 6bbe2b195e
Signed by: aviallon
GPG key ID: 186FC35EDEB25716

View file

@ -125,12 +125,20 @@ class IRAssignable(IRValue, metaclass=abc.ABCMeta):
class IRRegister(IRAssignable):
register_id = 0
register_id: int = 0
registers: dict[int, IRRegister] = {}
def __init__(self, location: SourceLocation):
super().__init__(location)
self.id = IRRegister.register_id
IRRegister.register_id += 1
IRRegister.registers[self.id] = self
def __hash__(self) -> int:
return self.id
def remove(self):
del IRRegister.registers[self.id]
def codegen(self):
return f"%r{self.id}"