5.7.7.7 Adj-exiting-edge-prob Option
The -madj-exiting-edge-prob
option deals with the rearrangement of basic blocks
within loops. When enabled, this option assumes that loops are
typically exited via a conditional statement and has the
compiler algorithms mark edges that exit a loop as being less
likely to be executed. This adjusts the generated code so that
edges that leave the loop execute a branch and those edges that
stay within the loop do not. This can reduce the number of
branches taken, resulting in improved performance. This
optimization is automatically enabled at level
-O2
and -O3
optimizations.
The -mno-adj-exiting-edge-prob
form of this option does
not apply this assumption and generates loop code assuming the
edge execution probabilities are reversed.