The REDUCE option specifies that the compiler is permitted to reduce an assignment of a null string to a structure into a simple copy operation - even if that means padding bytes might be overwritten.
The REDUCE option will cause fewer lines of code to be generated for an assignment of a null string to a structure, and that will usually mean your compilation will be quicker and your code will run much faster. However, padding bytes may be zeroed out.
For instance, in the following structure, there is one byte of padding between field11 and field12.
dcl
1 sample ext,
5 field10 bin fixed(31),
5 field11 dec fixed(13),
5 field12 bin fixed(31),
5 field13 bin fixed(31),
5 field14 bit(32),
5 field15 bin fixed(31),
5 field16 bit(32),
5 field17 bin fixed(31);
Now consider the assignment sample = ’’;
Under the NOREDUCE option, it will cause eight assignments to be generated, but the padding byte will be unchanged.
However, under REDUCE, the assignment would be reduced to three operations.