The bytecode backend for the Perl compiler. Takes Perl
source code and generates platform-independent bytecode that can be
run with the byteperl executable or can be loaded
via the byteload_fh
function in the
B module. Compiling with the bytecode backend won’t speed up execution
of your program, but it may improve start-up time. Invoke as:
perl -MO=Bytecode[,options
]program
in which program
is the name of the
Perl script to compile. Any non-option arguments are treated as the
names of objects to be saved; the main program is assumed if there are
no extra arguments. Possible options are:
Forces end of options.
Debug options, which can be concatenated or specified separately. Possible options are:
a
Tells the bytecode assembler to include assembler source in its output as bytecode comments
b
Prints debugging information about bytecompiler progress
C
Prints each CV from the final walk through the symbol tree
o
Prints each OP as it’s processed
Forces individual optimizations on or off. Preceding an
optimization with no-
turns
that option off (e.g., no-compress-nullops
). Possible values
of opt are:
bypass-nullops
If op->op_next
ever points to a NULLOP, replaces the op_next
field with the first
non-NULLOP in the path of execution.
compress-nullops
Fills in only the necessary fields of ops that have been optimized away by Perl’s internal compiler.
omit-sequence-numbers
Leaves out the code to fill in the op_seq
field for all ops that
are used only by Perl’s internal compiler.
strip-syntax-tree
Leaves out the code to fill in the internal syntax
tree pointers. Use of this option breaks any goto
label
statements and prevents
later recompiling or disassembling of the resulting
program.
Compiles as a module rather than as a standalone program.
Sends output to filename instead of STDOUT.
n
]Sets the optimization level to
n
, in in which
n
is an integer.
n
defaults to 1
. -O1
sets -fcompress-nullops
-fomit-sequence-numbers
, and -O6
adds -fstrip-syntax-tree
.
Outputs bytecode assembler source instead of assembling it into bytecode.
3.149.214.60