Merging Init Sections - National Instruments AutoCode NI MATRIX Reference

National instruments ni matrixx reference manual
Table of Contents

Advertisement

Chapter 7
Code Optimization

Merging INIT Sections

Example 7-5
Sample Code Segment Generated by AutoCode without this Optimization
/******* Initialization. *******/
if (SUBSYS_PREINIT[1]) {
iinfo[0] = 0;
iinfo[1] = 1;
iinfo[2] = 1;
iinfo[3] = 1;
INIT = 1;
X = &ss_1_states[0];
XD = &ss_1_states[1];
X->proc_22_S1 = 0.0;
X->proc_24_S1 = 0.0;
XD->proc_22_S1 = 0.0;
XD->proc_24_S1 = 0.0;
SUBSYS_PREINIT[1] = FALSE;
return;
}
/***** Output Update. *****/
AutoCode Reference
Most of the dynamic blocks have explicit initialization, output update and
state update sections. The initialization section is guarded by an INIT
Boolean variable that is TRUE only for the first time a subsystem or a
procedure is called. Each initialization section is tested every time the
subsystem or procedure is executed. AutoCode supports an option where
all such initialization branches can be merged into a single initialization
branch.
The command option
segments within a subsystem or a procedure. This speeds up applications,
particularly for processors with pipeline architecture such as Siemens
166/167. In this case, there would be considerable improvement in the
execution speed.
If AutoCode cannot merge all the INIT sections together, it creates a
separate INIT branch for the blocks that cannot be merged. This happens
when a block uses outputs of other blocks executed before it is in its
initialization section.
Example 7-5 shows generated code without the optimization,
and Example 7-6 shows generated code with the optimization.
tries to merge all initialization
-Oinitmerge
7-8
ni.com

Advertisement

Table of Contents
loading

This manual is also suitable for:

Autocode ni matrixx

Table of Contents