egraphs-good / eggcc

MIT License
51 stars 11 forks source link

Destructive rewriting in egglog #281

Open oflatt opened 9 months ago

oflatt commented 9 months ago

Destructive rewriting might be critical to making eggcc work when we are using unique ids. See thread in slack

Say we want to destructively rewrite loop A into loop B, which contains lots of stuff from loop A. Several problems in my mind We’d like to re-use subexpressions without deep copying. I think this is okay, as long as we only narrow the set of possible inputs / memory states. We need to “cleanly” replace loop A with loop B. How do we do this? Some sequence of union and delete? We might leave behind garbage that isn’t referenced by other stuff (garbage collection needed?)