BOPT

You can use the BOPT optimizer directive to produce optimized modules based on explicit input and output specifiers.

Read syntax diagramSkip visual syntax diagramBOPTIN= dsn(mem_expr)DD:ddname(mem_expr)path OUT=dsn(mem)DD:ddname(mem)pathoptimizer_option
IN
Specifies one input module that you want to optimize or multiple input modules when wildcards are given in the mem_expr specifier.
OUT
Specifies one output module, or a PDS(E) for one or more output modules when the mem specifier is omitted.
DD:ddname
Specifies a ddname.
dsn
Is a data set name that must include the high-level qualifier.
mem
Is a data set member name.
mem_expr
Is a data set member name that might include an expression. Only the members whose name string match the expression will be processed. Matching is case insensitive.

A regular expression accepts the following symbols:

*
Matches any string.
?
Matches any character.
:
Can be used as a separator for multiple expressions. With multiple expressions any expression matching the string counts as a match. The symbol (|) can also be used as a separator but is deprecated as it is only interpreted correctly in a few EBCDIC code pages.
For example:
  • To optimize only members PROGA and PROGB:
    IN=DD:SYSBIN(PROGA:PROGB)
<>
Negates the entire expression that follows it. The symbol (!) can also be used for negation but is deprecated as it is only interpreted correctly in a few EBCDIC code pages.
For example:
  • To skip a single member named MEMA:
    IN=DD:SYSBIN(<>MEMA) 
  • To skip all members whose names begin with MEMB:
    IN=DD:SYSBIN(<>MEMB*)
  • To skip members named MEMA and MEMB:
    IN=DD:SYSBIN(<>MEMA:MEMB) 
path
Is a full HFS path that starts with a slash (/), for example, /home/user1/a.out.opt.
optimizer_option
Is an optimizer option. For a list of optimizer options that you can specify, see Optimizer options.
Notes:
  1. The OUT option on BOPT is optional when the SCAN optimizer option is set to Y.
  2. When mem_expr is specified on the IN option, all members that match mem_expr are selected for optimization. Do not include a mem specifier on the OUT option when mem_expr is specified.
  3. When there is no mem specifier on the OUT option, the member names for OUT are determined to be those that match the mem or mem_expr specifier on the IN option.
  4. The IN specifier, the OUT specifier, and optimizer options can be in any order.
  5. Due to different character encodings across EBCDIC code pages the deprecated symbols (|) for expression separation and (!) for expression negation will only work properly in the following code pages:
    • IBM-1047
    • IBM-37/1140
    • IBM-285/1146
    • IBM-924
  6. The symbols (|) and (!) are deprecated and may be removed in the future.

For examples of the BOPT directive see JCL examples. For sample scenarios of using the BOPT optimizer directive, see Scenario 1: Optimization process with static deployment and Scenario 3: Optimization process using a hybrid approach.