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
