Reduct  v4.0.5-1-g4851deb
A functional and immutable language.
Loading...
Searching...
No Matches
Optimization

Detailed Description

Data Structures

struct  reduct_optimize_global_t
 Global optimization-related state structure. More...
 

Enumerations

enum  reduct_optimize_flags_t {
  REDUCT_OPTIMIZE_NONE = 0 , REDUCT_OPTIMIZE_CONSTANT_FOLDING = 1 << 1 , REDUCT_OPTIMIZE_CSE = 1 << 2 , REDUCT_OPTIMIZE_ALGEBRAIC_SIMPLIFICATION = 1 << 3 ,
  REDUCT_OPTIMIZE_GAMMA_FOLDING = 1 << 4 , REDUCT_OPTIMIZE_AUTO_PARALLELIZATION = 1 << 5 , REDUCT_OPTIMIZE_ALL = 0xFFFFFFFF , REDUCT_OPTIMIZE_O1 = REDUCT_OPTIMIZE_ALGEBRAIC_SIMPLIFICATION ,
  REDUCT_OPTIMIZE_O2 , REDUCT_OPTIMIZE_O3 = REDUCT_OPTIMIZE_ALL
}
 Optimization flags. More...
 

Functions

REDUCT_API void reduct_optimize_global_init (reduct_optimize_global_t *global)
 Initialize a global optimize state.
 
REDUCT_API void reduct_optimize_global_deinit (reduct_optimize_global_t *global)
 Deinitialize a global optimize state.
 
REDUCT_API void reduct_optimize (struct reduct *reduct, reduct_handle_t handle, reduct_optimize_flags_t flags)
 Optimize a built IR graph.
 

Enumeration Type Documentation

◆ reduct_optimize_flags_t

Optimization flags.

Enumerator
REDUCT_OPTIMIZE_NONE 

No optimization flags.

REDUCT_OPTIMIZE_CONSTANT_FOLDING 

Constant folding.

REDUCT_OPTIMIZE_CSE 

Common subexpression elimination.

REDUCT_OPTIMIZE_ALGEBRAIC_SIMPLIFICATION 

Algebraic simplification.

REDUCT_OPTIMIZE_GAMMA_FOLDING 

Branch folding for Gamma nodes.

REDUCT_OPTIMIZE_AUTO_PARALLELIZATION 

Automatic parallelization of independent call nodes.

REDUCT_OPTIMIZE_ALL 

Enable all optimizations.

REDUCT_OPTIMIZE_O1 

Level 1 optimizations.

REDUCT_OPTIMIZE_O2 

Level 2 optimizations.

REDUCT_OPTIMIZE_O3 

Level 3 optimizations (maximum).

Definition at line 23 of file optimize.h.

Function Documentation

◆ reduct_optimize_global_init()

REDUCT_API void reduct_optimize_global_init ( reduct_optimize_global_t global)

Initialize a global optimize state.

Parameters
globalPointer to the global optimize state to initialize.

◆ reduct_optimize_global_deinit()

REDUCT_API void reduct_optimize_global_deinit ( reduct_optimize_global_t global)

Deinitialize a global optimize state.

Parameters
globalPointer to the global optimize state to deinitialize.

◆ reduct_optimize()

REDUCT_API void reduct_optimize ( struct reduct *  reduct,
reduct_handle_t  handle,
reduct_optimize_flags_t  flags 
)

Optimize a built IR graph.

Parameters
reductPointer to the Reduct structure.
handleHandle to the root node of the IR graph to optimize.
flagsOptimization flags to control which optimizations are applied.