If you like, can merge this and you will be able to test new and old functions side by side.
Additionally, almost everything has been ported to petgraph (except World).
Note:
petgraph old function version of ssa_conversion() is broken; i note this in benchmarks, and line numbers. I believe its my dominator implementation
you can test new and old via panop cli, using --neo flag for new; it will even run the new rewite_to_ssa (unfortunately, does not seem to be working, as testing on libfoo.so. etc., the function is unfinished
We don't have to commit to generic function; its just very easy at the moment to have it generic so can run both side by side.
Re generic functions: I have a proposal/idea for this that i think is going to work beautifully, and I think we be best of both worlds, but will require petgraph across the board
I believe we want petgraph across the board; as I mentioned in PR, it looks like much of the savings are actually due to switching to petgraph.
some functions I added randomly, etc., don't consider Fun the final say, etc. We can remove anything you don't like, etc.
Some numbers, specifically testing the effect of porting the Program cfg to petgraph:
If you like, can merge this and you will be able to test new and old functions side by side.
Additionally, almost everything has been ported to petgraph (except
World
).Note:
ssa_conversion()
is broken; i note this in benchmarks, and line numbers. I believe its my dominator implementationpanop
cli, using--neo
flag for new; it will even run the newrewite_to_ssa
(unfortunately, does not seem to be working, as testing onlibfoo.so.
etc., the function is unfinishedFun
the final say, etc. We can remove anything you don't like, etc.Some numbers, specifically testing the effect of porting the
Program
cfg to petgraph:libc, f2d92e1 and ae19d49, 2999 functions:
rust binary, ae19d49, 2843 (long) functions: