egraphs-good / eggcc

MIT License
51 stars 11 forks source link

Improved branch restructuring #471

Closed ezrosent closed 6 months ago

ezrosent commented 6 months ago

This PR adapts the algorithm from the original RVSDG papers for restructuring branches. This will let us translate more programs successfully.

I suspect there is more work to do on the translation back to CFGs now that this is up.

This PR also includes a few cleanups around making LLVM tests optional, and adding some switches to dump CFG visualizations to /tmp; both of those use cargo features.

ezrosent commented 6 months ago

However, I'd love to see at least a few more tests before we merge. Perhaps more unstructured bril programs that don't involve pointers? In fact, we could randomly generate some cfgs and see what happens

There are 3 or 4 more failing CFGs in the issues that I'm hoping to fix in follow-ups, but I can look at adding some more.

ezrosent commented 6 months ago

I'm not sure where the failing test is from either... that snapshot is present on this branch.