List dialect
list_dialect
LIST_DIALECT = Dialect('list', [LengthOp, MapOp, PrintOp, RangeOp, YieldOp], [ListType])
module-attribute
ListType
dataclass
Bases: ParametrizedAttribute, TypeAttribute
Source code in xdsl/frontend/listlang/list_dialect.py
28 29 30 31 | |
name = 'list.list'
class-attribute
instance-attribute
elem_type: builtin.IntegerType
instance-attribute
LengthOp
Bases: IRDLOperation
Source code in xdsl/frontend/listlang/list_dialect.py
34 35 36 37 38 39 40 41 42 43 44 45 46 47 | |
name = 'list.length'
class-attribute
instance-attribute
li = operand_def(ListType)
class-attribute
instance-attribute
result = result_def(builtin.i32)
class-attribute
instance-attribute
assembly_format = '$li attr-dict `:` type($li) `->` type($result)'
class-attribute
instance-attribute
__init__(li: SSAValue)
Source code in xdsl/frontend/listlang/list_dialect.py
41 42 43 44 45 | |
MapOp
Bases: IRDLOperation
Source code in xdsl/frontend/listlang/list_dialect.py
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | |
name = 'list.map'
class-attribute
instance-attribute
li = operand_def(ListType)
class-attribute
instance-attribute
body = region_def('single_block')
class-attribute
instance-attribute
result = result_def(ListType)
class-attribute
instance-attribute
__init__(li: SSAValue, body: Region, result_element_type: builtin.IntegerType)
Source code in xdsl/frontend/listlang/list_dialect.py
58 59 60 61 62 63 64 65 66 67 68 | |
print(printer: Printer)
Source code in xdsl/frontend/listlang/list_dialect.py
70 71 72 73 74 75 76 77 78 79 | |
parse(parser: Parser) -> MapOp
classmethod
Source code in xdsl/frontend/listlang/list_dialect.py
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | |
verify_()
Source code in xdsl/frontend/listlang/list_dialect.py
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | |
PrintOp
Bases: IRDLOperation
Source code in xdsl/frontend/listlang/list_dialect.py
128 129 130 131 132 133 134 135 136 137 138 139 | |
name = 'list.print'
class-attribute
instance-attribute
li = operand_def(ListType)
class-attribute
instance-attribute
assembly_format = '$li attr-dict `:` type($li)'
class-attribute
instance-attribute
__init__(li: SSAValue)
Source code in xdsl/frontend/listlang/list_dialect.py
134 135 136 137 | |
RangeOp
Bases: IRDLOperation
Source code in xdsl/frontend/listlang/list_dialect.py
142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 | |
name = 'list.range'
class-attribute
instance-attribute
lower = operand_def(builtin.i32)
class-attribute
instance-attribute
upper = operand_def(builtin.i32)
class-attribute
instance-attribute
result = result_def(ListType)
class-attribute
instance-attribute
assembly_format = '$lower `to` $upper attr-dict `:` type($result)'
class-attribute
instance-attribute
__init__(lower: SSAValue, upper: SSAValue, result_type: ListType)
Source code in xdsl/frontend/listlang/list_dialect.py
150 151 152 153 154 | |
YieldOp
Bases: IRDLOperation
Source code in xdsl/frontend/listlang/list_dialect.py
159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 | |
name = 'list.yield'
class-attribute
instance-attribute
yielded = operand_def(AnyOf([builtin.IntegerType, ListType]))
class-attribute
instance-attribute
traits = lazy_traits_def(lambda: (IsTerminator(), HasParent(MapOp)))
class-attribute
instance-attribute
assembly_format = '$yielded attr-dict `:` type($yielded)'
class-attribute
instance-attribute
__init__(yielded: SSAValue)
Source code in xdsl/frontend/listlang/list_dialect.py
172 173 174 175 | |