libFirm
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages

Flags to customize the behavior of libfirm. More...

Typedefs

typedef unsigned optimization_state_t
 A container type to load/restore all optimizations. More...
 

Functions

void set_optimize (int value)
 This function enables/disables optimizations globally. More...
 
int get_optimize (void)
 Returns global optimizations flag. More...
 
void set_opt_constant_folding (int value)
 Enables/Disables constant folding optimization. More...
 
int get_opt_constant_folding (void)
 returns 0 if constant_folding is disabled, !=0 otherwise More...
 
void set_opt_algebraic_simplification (int value)
 Enables/Disables algebraic simplifications. More...
 
int get_opt_algebraic_simplification (void)
 Returns algebraic simplification setting. More...
 
void set_opt_cse (int value)
 Enables/Disables common subexpression elimination. More...
 
int get_opt_cse (void)
 Returns constant folding optimization setting. More...
 
void set_opt_global_cse (int value)
 Enables/Disables global constant subexpression elimination. More...
 
int get_opt_global_cse (void)
 Returns global constant subexpression elimination setting. More...
 
void set_opt_global_null_ptr_elimination (int value)
 Enable/Disable Global Null Pointer Test Elimination. More...
 
int get_opt_global_null_ptr_elimination (void)
 Returns global null pointer test elimination setting. More...
 
void set_opt_closed_world (int value)
 Enable/Disable closed world assumption. More...
 
int get_opt_closed_world (void)
 Returns closed world assumption setting. More...
 
void save_optimization_state (optimization_state_t *state)
 Save the current optimization state. More...
 
void restore_optimization_state (const optimization_state_t *state)
 Restore the current optimization state. More...
 
void all_optimizations_off (void)
 Switches ALL optimizations off. More...
 

Detailed Description

Flags to customize the behavior of libfirm.

There are the following groups of flags:

  1. Optimization flags.
    1. There is a flag, 'optimize' to turn on/off all optimizations.
    2. There are flags for each individual optimization. Some flags turns transformations in several algorithms on/off.
  2. Normalization flags. These flags steer transformations of the ir that improve it, as removing dump Phi nodes (one predecessor, all predecessors are equal ...), Ids, Tuples ...
  3. Verbosity flags.
    1. Flags to steer the level of the information.
    2. Flags to steer in which phase information should be dumped.

Typedef Documentation

typedef unsigned optimization_state_t

A container type to load/restore all optimizations.

Definition at line 39 of file irflag.h.

Function Documentation

void all_optimizations_off ( void  )

Switches ALL optimizations off.

int get_opt_algebraic_simplification ( void  )

Returns algebraic simplification setting.

int get_opt_closed_world ( void  )

Returns closed world assumption setting.

int get_opt_constant_folding ( void  )

returns 0 if constant_folding is disabled, !=0 otherwise

int get_opt_cse ( void  )

Returns constant folding optimization setting.

int get_opt_global_cse ( void  )

Returns global constant subexpression elimination setting.

int get_opt_global_null_ptr_elimination ( void  )

Returns global null pointer test elimination setting.

int get_optimize ( void  )

Returns global optimizations flag.

See Also
set_optimize()
void restore_optimization_state ( const optimization_state_t state)

Restore the current optimization state.

void save_optimization_state ( optimization_state_t state)

Save the current optimization state.

void set_opt_algebraic_simplification ( int  value)

Enables/Disables algebraic simplifications.

If opt_algebraic_simplification == 1 perform

  • algebraic simplification (a * 0 ==> 0, a or a ==> a)
  • simplification of tests ( !(a < b) ==> (a >= b)) Default: opt_algebraic_simplification == 1.
void set_opt_closed_world ( int  value)

Enable/Disable closed world assumption.

If enabled, optimizations expect to know the "whole world", i.e. no external types or callers exist. This enables some powerful optimizations.

void set_opt_constant_folding ( int  value)

Enables/Disables constant folding optimization.

If opt_constant_folding == 1 perform constant expression evaluation (2 + 5 ==> 7, 3 < 2 ==> false) Default: opt_constant_folding == 1.

void set_opt_cse ( int  value)

Enables/Disables common subexpression elimination.

If opt_cse == 1 perform common subexpression elimination. Default: opt_cse == 1.

void set_opt_global_cse ( int  value)

Enables/Disables global constant subexpression elimination.

If opt_global_cse == 1 and opt_cse == 1 perform intra procedure constant subexpression elimination for floating nodes. Intra procedure cse gets the graph into state "floating". It is necessary to run pre/code motion to get the graph back into state "op_pin_state_pinned". right after a call to local_optimize with global cse turned on. Default: opt_global_cse == 0.

void set_opt_global_null_ptr_elimination ( int  value)

Enable/Disable Global Null Pointer Test Elimination.

In languages where it is illegal to dereference NULL pointer, doing so makes the pointer "valid non-null", else the program will stop anyway by a fault.

This flag should be set for C style languages.

void set_optimize ( int  value)

This function enables/disables optimizations globally.

If optimize == 0 no optimizations are performed at all. Default: optimize == 1.