S
Scott Robert Ladd
I've just posted my analysis of GNU C and C++ optimizations, using a
genetic algorithm to discover the most effective optimization flags for
different algorithms.
ACOVEA (Analysis of Compiler Options via Evolutionary Algorithm)
implements a genetic algorithm to find the "best" options for compiling
programs with the GNU Compiler Collection (GCC) C and C++ compilers.
"Best", in this context, is defined as those options that produce the
fastest executable program from a given source code. Acovea is a C++
framework that can be extended to test other programming languages and
non-GCC compilers.
I envision Acovea as an optimization tool, similar in purpose to
profiling. Traditional function-level profiling identifies the algorithms
most influential in a program's performance; Acovea is then applied to
those algorithms to find the compiler flags and options that generate the
fastest code. Acovea is also useful for testing combinations of flags for
pessimistic interactions, and for testing the reliability of the compiler.
You'll find the full article, and links for downloads, at:
http://www.coyotegulch.com/acovea/index.html
Enjoy.
...Scott
genetic algorithm to discover the most effective optimization flags for
different algorithms.
ACOVEA (Analysis of Compiler Options via Evolutionary Algorithm)
implements a genetic algorithm to find the "best" options for compiling
programs with the GNU Compiler Collection (GCC) C and C++ compilers.
"Best", in this context, is defined as those options that produce the
fastest executable program from a given source code. Acovea is a C++
framework that can be extended to test other programming languages and
non-GCC compilers.
I envision Acovea as an optimization tool, similar in purpose to
profiling. Traditional function-level profiling identifies the algorithms
most influential in a program's performance; Acovea is then applied to
those algorithms to find the compiler flags and options that generate the
fastest code. Acovea is also useful for testing combinations of flags for
pessimistic interactions, and for testing the reliability of the compiler.
You'll find the full article, and links for downloads, at:
http://www.coyotegulch.com/acovea/index.html
Enjoy.
...Scott