Bases: IRDLOperation, HasFolderInterface
Get the value stored in a given register.
Source code in xdsl/dialects/asm.py
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 | @irdl.irdl_op_definition
class FromRegOp(irdl.IRDLOperation, HasFolderInterface):
"""
Get the value stored in a given register.
"""
name = "asm.from_reg"
register = irdl.operand_def(RegisterType)
value = irdl.result_def()
traits = irdl.traits_def(Pure())
assembly_format = "$register attr-dict `:` type($register) `->` type($value)"
def __init__(self, register: ir.SSAValue | ir.Operation, result_type: ir.Attribute):
super().__init__(operands=(register,), result_types=(result_type,))
def verify_(self) -> None:
if (
isinstance(to_reg_op := self.register.owner, ToRegOp)
and to_reg_op.value.type != self.value.type
):
raise VerifyException(
f"Expected original value type {to_reg_op.value.type} to be "
f"equal to own value type {self.value.type}."
)
def fold(self) -> Sequence[ir.SSAValue | ir.Attribute] | None:
if isinstance(to_reg_op := self.register.owner, ToRegOp):
return (to_reg_op.value,)
|
name = 'asm.from_reg'
class-attribute
instance-attribute
register = irdl.operand_def(RegisterType)
class-attribute
instance-attribute
value = irdl.result_def()
class-attribute
instance-attribute
traits = irdl.traits_def(Pure())
class-attribute
instance-attribute
__init__(register: ir.SSAValue | ir.Operation, result_type: ir.Attribute)
Source code in xdsl/dialects/asm.py
| def __init__(self, register: ir.SSAValue | ir.Operation, result_type: ir.Attribute):
super().__init__(operands=(register,), result_types=(result_type,))
|
verify_() -> None
Source code in xdsl/dialects/asm.py
32
33
34
35
36
37
38
39
40 | def verify_(self) -> None:
if (
isinstance(to_reg_op := self.register.owner, ToRegOp)
and to_reg_op.value.type != self.value.type
):
raise VerifyException(
f"Expected original value type {to_reg_op.value.type} to be "
f"equal to own value type {self.value.type}."
)
|
fold() -> Sequence[ir.SSAValue | ir.Attribute] | None
Source code in xdsl/dialects/asm.py
| def fold(self) -> Sequence[ir.SSAValue | ir.Attribute] | None:
if isinstance(to_reg_op := self.register.owner, ToRegOp):
return (to_reg_op.value,)
|