Documentation
Commentary
Asilea is a library using simulated annealing to try to find best compiler
options, where "best" is typically either the fastest executable or the
smallest one, but may be any arbitrary metric.
Typical usage (assuming lexical binding):
(let* ((asilea-max-steps 1000)
(solution nil)
(asilea-solution-accepted-function
(lambda (state energy)
(setq solution (cons state energy))))
(asilea-finished-function
(lambda ()
(message "Solution found: %s (score: %s)"
(car solution)
(cdr solution)))))
(asilea-run
;; timing-script is a script that compiles the program, measures
;; the time and/or size, and prints the score ("energy") on the
;; stdout. By default, lower energy is better.
"timing-script"
[["-O2" "-O3" "-Ofast" "-Os"]
[nil "-ffast-math"]
[nil "-ffoo" ("-ffoo" "-fbar")]
[nil "-fexample-optimization"]
;; and so on
]))
For more details, see the function `asilea-run' and variables whose names
start with `asilea-'.
Requires
Dependencies
Consumers
Reverse Dependencies
No reverse dependencies recorded.