Reduct  v4.1.3-1-gd06c383
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_FUNCTION_INLINING = 1 << 2 , REDUCT_OPTIMIZE_COMMON_NODE_ELIMINATION = 1 << 3 ,
  REDUCT_OPTIMIZE_ALGEBRAIC_SIMPLIFICATION = 1 << 4 , REDUCT_OPTIMIZE_GAMMA_FOLDING = 1 << 5 , REDUCT_OPTIMIZE_AUTO_PARALLELIZATION = 1 << 6 , REDUCT_OPTIMIZE_INVARIANT_CODE_MOTION = 1 << 7 ,
  REDUCT_OPTIMIZE_DEAD_PORT_ELIMINATION = 1 << 8 , REDUCT_OPTIMIZE_ALL = 0xFFFFFFFF , REDUCT_OPTIMIZE_COMMUTATIVE_SWAP = 1 << 9 , REDUCT_OPTIMIZE_O0 = REDUCT_OPTIMIZE_NONE ,
  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_FUNCTION_INLINING 

Function inlining.

REDUCT_OPTIMIZE_COMMON_NODE_ELIMINATION 

Common node 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_INVARIANT_CODE_MOTION 

Invariant code motion.

REDUCT_OPTIMIZE_DEAD_PORT_ELIMINATION 

Dead port elimination.

REDUCT_OPTIMIZE_ALL 

Enable all optimizations.

REDUCT_OPTIMIZE_COMMUTATIVE_SWAP 

Commutative argument swapping.

REDUCT_OPTIMIZE_O0 

Level 0 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.