Eqsat create egraphs
eqsat_create_egraphs
¶
EqsatCreateEgraphsPass
dataclass
¶
Bases: ModulePass
Create an egraph from a function by inserting an equivalence.graph operation.
Input example:
func.func @test(%a: index, %b: index) -> (index) {
%c = arith.addi %a, %b : index
func.return %c : index
}
func.func @test(%a: index, %b: index) -> index {
%c = equivalence.graph -> index {
%a_1 = equivalence.class %a : index
%b_1 = equivalence.class %b : index
%c_1 = arith.addi %a_1, %b_1 : index
%c_2 = equivalence.class %c_1 : index
equivalence.yield %c_2 : index
}
func.return %c : index
}