I installed the dependencies with "sudo apt install libz3-dev libgoogle-perftools-dev" and created the directory and file structure with "make files && ./files"
I was unable to compile enumerator.cpp due to a compilation error (a redefined structure).
"make enumerator2" worked, but I have the impression that the project isn't finished and that it isn't possible to optimize a 6502 program. Moreover, the optimize.cpp file is almost empty and won't compile.
A superoptimizer tries to find the shortest sequence of instructions that is semantically equivalent to a given sequence of code. Since the search space is pretty large, brute force approaches don't work here.
I was unable to compile enumerator.cpp due to a compilation error (a redefined structure).
"make enumerator2" worked, but I have the impression that the project isn't finished and that it isn't possible to optimize a 6502 program. Moreover, the optimize.cpp file is almost empty and won't compile.
You can find a good introduction to superoptimizers in Massalin's (known for the Synthesis self-optimizing OS) paper at https://dl.acm.org/doi/abs/10.1145/36177.36194