Wedolow Optimization Families

Memory Management Optimizations

What it does: Optimizes how your code uses memory - reducing allocations, eliminating unnecessary copies, and improving data access patterns.

Benefits: Lower memory usage, fewer memory allocation cycles, better cache performance, better CPU performance since removing useless memory operations.

Examples: Pre-allocating container memory, using references instead of copying objects, eliminating unused array operations.

Optimizations: Push_back to Emplace_back, Track Vector Reserve, Track array usages, Copy Hunter

Arithmetic & Mathematical Optimizations

What it does: Improves mathematical calculations by using appropriate data types, replacing expensive operations, and leveraging hardware capabilities.

Benefits: Faster math operations, reduced precision where not needed, better suited for embedded processors without floating-point units.

Examples: Converting to fixed-point arithmetic, using single precision instead of double, replacing complex math functions with approximations.

Optimizations: Fixed Point Conversion, Double2Float, Libm Fcts Types, Polynomial Approximation, Divide Hunter

Loop & Vectorization Optimizations

What it does: Transforms loops to process multiple data elements simultaneously and removes dependencies that prevent parallel execution.

Benefits: Important speed improvements through SIMD instructions, better utilization of modern processor capabilities.

Examples: Vectorizing independent loop iterations, inlining functions to enable vectorization, optimizing loop structures.

Optimizations: SIMD-Opportunities, For loop data dependency, SIMD-ExternalFunctions, SIMD-GCD, AoS/SoA

Compiler & Code Generation Optimizations

What it does: Enhances how the compiler generates machine code by optimizing control flow, function calls, and enabling advanced compiler features.

Benefits: More efficient assembly code, better processor-specific optimizations, reduced function call overhead.

Examples: Optimizing switch statements, enabling aggressive compiler optimizations, using processor-specific instructions.

Optimizations: Const Volatile, Enum/Switch Operations, FctFactorization, OptimO3, Flags-MathOps, Min/Max/Sat Operations

Type System & Casting Optimizations

What it does: Analyzes and optimizes type conversions and enables architecture-specific features for the target embedded platform.

Benefits: Eliminates expensive hidden type conversions, leverages target processor capabilities.

Examples: Tracking implicit casts to make them explicit if required, or pinpoint a useless cast that can be removed, enabling processor-specific optimizations.

Optimizations: Track implicit cast, ArchiFlags

Key Benefits for Embedded Systems

Last updated