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.
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).
Control Compiler Optimizations
Control compiler optimizations for your makefile at the Simulink UI level.
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.