-Odb: Disable Mid-level Branch Optimizations

Group

OPTIMIZATIONS

Scope

Function

Syntax
  -Odb [= <option Char> {<option Char>}] 
  
Arguments

<option Char> is one of the following:

a: Disable mid level label rearranging

b: Disable mid level branch tail merging

c: Disable mid level loop hoisting

Default

None

Defines

None

Pragmas

None

Description

This option disables branch optimizations on the SSA form based on control flows. Label rearranging sorts all labels of the control flow to generate a minimum amount of branches.

Branch tail merging places common code into joining labels, as shown:

  void fun(void) {void fun(void) { 
  
  if(cond) {if(cond) { 
  
  ... 
  
  a = 0;} else { 
  
  } else {... 
  
  ...} 
  
  a = 0;a = 0; 
  
  }} 
  
  } 
  
Examples

-Odb disables all mid-level branch optimizations

-Odb=b disables only branch tail merging

See also

None