Execution Speed

Improve execution speed of generated code

The code generator increases the execution speed of the generated code where possible by replacing global variables with local variables, removing data copies, using the memset and memcpy functions, and reducing the amount of memory for storing data. You can increase the execution speed of the generated code by implementing compiler and processor specific optimizations, specifying buffer reuse, and removing code you might not need.

Topics

Processor Specific Optimizations

Control Data and Function Placement in Memory by Inserting Pragmas

Increase code efficiency on your hardware by inserting pragmas in the generated code. Pragmas specify locations in memory to store data and functions.

Replace boolean with Specific Integer Data Type

Improve the execution speed of the generated code by replacing the boolean built-in data type with a specific integer data type.

Subnormal Number Execution Speed

Minimize the possibility of execution slowdowns or overruns due to subnormal number calculation latency.

Floating-Point Multiplication to Handle a Net Slope Correction

For processors that support efficient multiplication, improve code efficiency by using floating-point multiplication to handle a net slope correction.

Optimize Generated Code Using Fixed-Point Data with Simulink®, Stateflow®, and MATLAB®

Generate fixed-point code in Simulink®, Stateflow®, and MATLAB®.

Generate Target Optimizations Within Algorithm Code

Customize generated algorithm code with target-specific optimizations.

Set Hardware Implementation Parameters

Specify target hardware device characteristics that can be critical in embedded systems development (such as word sizes for char, short, int, and long data types, or desired rounding behaviors in integer operations).

Compiler Specific Optimizations

Control Compiler Optimizations

Control compiler optimizations for your makefile at the Simulink UI level.

Optimizations that Improve Execution Efficiency

Optimize Global Variable Usage

Choose a global variable reference optimization to satisfy your memory usage and execution speed requirements.

Improve Execution Efficiency by Reordering Block Operations in the Generated Code

The code generator can change the block execution order to improve execution efficiency.

Optimize Generated Code by Combining Multiple for Constructs

The code generator uses data dependency analysis to combine for constructs to reduce static code size and runtime branching.

Optimize Generated Code for Complex Signals

The code generator performs various optimizations on the structures that represent signals in the generated code.

Configure Loop Unrolling Threshold

Starting at a default value of 5, the code generator begins to use a for loop instead of separate statements to assign values to the elements of a signal or parameter array.

Simplify Multiply Operations in Array Indexing

The code generator reduces the number of times a multiply operation executes in an array index by replacing the multiply operation with a temporary variable.

Optimize Generated Code Using memset Function

The memset function clears internal storage, regardless of type, to the integer bit pattern 0 (that is, all bits are off).

Use memcpy Function to Optimize Generated Code for Vector Assignments

The code generator optimizes the generated code for vector assignments by replacing for loops with memcpy function calls.

Use Conditional Input Branch Execution

For Switch and Multiport Switch blocks, Simulink executes only blocks that compute the control input and the data input that the control input selects.

Optimize Generated Code for Fixed-Point Data Operations

The code generator optimizes fixed-point operations by replacing expensive division operations with highly efficient product operations.

Control Memory Allocation for Variable-Size Arrays in a MATLAB Function Block

Disable dynamic memory allocation or specify a dynamic memory allocation threshold for MATLAB Function blocks.

Speed Up Linear Algebra in Code Generated from a MATLAB Function Block

Generate LAPACK calls for certain linear algebra functions in a MATLAB function block. Specify LAPACK library to use.

Speed Up Matrix Operations in Code Generated from a MATLAB Function Block

Generate BLAS calls for certain low-level matrix operations. Specify BLAS library to use.

Speed Up Fast Fourier Transforms in Code Generated from a MATLAB Function Block

Generate FFTW library calls for fast Fourier transforms in a MATLAB Function block. Specify the FFTW library.

Synchronize Multithreaded FFTW Planning in Code Generated from a MATLAB Function Block

Implement FFT library callback class methods and provide supporting C code to prevent concurrent access to FFTW planning.

Speed Up for-Loop Implementation in Code Generated by Using parfor

Implement parallel for-loops in the generated code for MATLAB Function and MATLAB System block using parfor.

Generate Code Containing Single Instruction Multiple Data for Simulink Models

Improve the performance of generated code using target hardware supported intrinsic functions.

Featured Examples