I spent some time looking into what it would take to rely exclusively on the MLIR Python bindings, and therefore to drop the dependency on xDSL.
The main issue is at the level of schedule representation as dictionary attributes in mlir-loop (reflecting the implementation with dictionaries in XTC). In the current implementation, we rely on the fact that xDSL dictionaries are ordered by insertion order, which is not the case with the MLIR Python bindings, where dictionary attributes are sorted alphabetically.
We therefore need to move toward other representations, of the "array of single-key dictionaries (i.e. of pairs)" type, which has the added benefit of removing the limitations inherent to dictionaries (i.e. the impossibility of repeating a key).
Do you think this is worthy of the effort?
I spent some time looking into what it would take to rely exclusively on the MLIR Python bindings, and therefore to drop the dependency on xDSL.
The main issue is at the level of schedule representation as dictionary attributes in mlir-loop (reflecting the implementation with dictionaries in XTC). In the current implementation, we rely on the fact that xDSL dictionaries are ordered by insertion order, which is not the case with the MLIR Python bindings, where dictionary attributes are sorted alphabetically.
We therefore need to move toward other representations, of the "array of single-key dictionaries (i.e. of pairs)" type, which has the added benefit of removing the limitations inherent to dictionaries (i.e. the impossibility of repeating a key).
Do you think this is worthy of the effort?