util
desugar_query_into(root)
Replace each in-place QueryInto with the equivalent Query, which reads
the previous value of its left-hand side explicitly.
Source code in src/finch/autoschedule/util.py
147 148 149 150 151 152 153 154 155 156 157 158 | |
drop_query_reorders(root)
drop_query_reorders(root: LogicStatement) -> LogicStatement
drop_query_reorders(root: LogicNode) -> LogicNode
Remove a Reorder at the root of each query's right-hand side. The table on the left-hand side of a query already fixes the order of its result.
Source code in src/finch/autoschedule/util.py
131 132 133 134 135 136 137 138 139 140 141 142 143 144 | |
reorder_to(ex, idxs)
ex with its fields in the order idxs.
Source code in src/finch/autoschedule/util.py
29 30 31 | |
resugar_query_into(root)
Replace each query of an aggregate which starts from a tensor with an
in-place QueryInto. The aggregate folds its argument into a copy of its
init, so the copy is skipped when the init is the table being written.
Inits which are broadcast over the output can't be copied into it, so they
are left as they are.
Source code in src/finch/autoschedule/util.py
161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 | |
split_aggregate_inits(root, bindings, broadcast_only=False)
Replace each aggregate which starts from a tensor with a map of that tensor
and a reduction which starts from the identity of the aggregate's operator.
With broadcast_only, only the inits which are broadcast over some fields
of the aggregate are split.
Source code in src/finch/autoschedule/util.py
188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 | |