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.