This PR adds a work-in-progress loop unrolling rule.
The rule is inefficient because it uses multiple layers of deep copying. I think this could be made more efficient by only having a top-level deep copy- however, that would add invalid intermediate terms to the database. We should decide how to resolve this issue.
On the other hand, maybe this does not matter. Doing loop unrolling in this IR is quite inefficient anyways, since each unrolling doubles the size of the sub-egraph.
This PR adds a work-in-progress loop unrolling rule.
The rule is inefficient because it uses multiple layers of deep copying. I think this could be made more efficient by only having a top-level deep copy- however, that would add invalid intermediate terms to the database. We should decide how to resolve this issue.
On the other hand, maybe this does not matter. Doing loop unrolling in this IR is quite inefficient anyways, since each unrolling doubles the size of the sub-egraph.