Re:Synthesizing Optimal 8051 Code
by giovannibajo1 on Tuesday April 07, 2020 @11:43AM
(#22804222)
Nice. It reminds me of how compilers generate the optimal sequence of ADD+MUL for a division by a constant; in that case, the algorithm is simpler and has been synthesized in closed form, so the compiler can simply implement the logic (it doesn't need to "bruteforce" its way to it).
This is for instance Go's implementation which is readable and well documented:
Re:Synthesizing Optimal 8051 Code
by sitkack on Tuesday April 07, 2020 @12:31PM
(#22804692)
Metalesson from whitequark is that they show us how we can be smart by rigorously applying existing wisdom. Esp by learning to use existing tools and taking advice from experts.
> My chosen approach (thanks to John Regehr for the suggestion) is to implement an interpreter for an abstract 8051 assembly representation in Racket and then use Rosette to translate assertions about the results of interpreting an arbitrary piece of code into a query for an SMT solver.
This is for instance Go's implementation which is readable and well documented:
https://github.com/golang/go/blob/master/src/cmd/compile/int...
> My chosen approach (thanks to John Regehr for the suggestion) is to implement an interpreter for an abstract 8051 assembly representation in Racket and then use Rosette to translate assertions about the results of interpreting an arbitrary piece of code into a query for an SMT solver.