I'm putting together some (extensive) experiments with using a genetic algorithm to construct sets of optimization
passes that are as close as optimal in a number of ways, e.g. compilation time, execution time, code size, ...
I've figured out which LLVM tools I should use for this (llvm-gcc to obtain bitcode, opt to optimize, llc to obtain assembly, ...),
and I'm now looking into which optimization passes I should take into account in my experiments.
First, one thing that is not entirely clear to me: do analysis passes result in additional information being made available
to other passes, e.g. does "-domtree" enable more aggressive optimization being done by other passes?
In other words, should I consider some analysis passes in my setup, and if so, which ones?
Initially, I just used the set of 58 'transform' passes listed at .
Unfortunately, it turns out that this list if not up to date. Below are my findings, comparing  to "opt -help".
If someone can clarify the points below, I'll try and put together a patch for , resolving the inconsistencies...
Several transform passes listed at  are no longer supported by the opt tool:
Is assume this is known? Were these passes removed recently?
A large number of passes mentioned in "opt -help" are not mentioned in :
It's unclear to me which of these passes are transform passes, and which ones are analysis passes.
If someone here can point out the transform and analysis passes for me, I can try and come up with a
patch for .