Bytecode
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
where
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.
- -Dopts
- Debug options, which can be either 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.
- -fopt
- 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_nextever points to a NULLOP, replaces theop_nextfield 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_seqfield 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
gotolabelstatements and prevents later recompiling or disassembling of the resulting program.
- -m
- Compiles as a module rather than as a standalone program.
- -ofilename
- Sends output to filename instead of STDOUT.
- -O[
n] - Sets the optimization level to n, where n is an integer. n defaults to 1.
-O1sets-fcompress-nullops -fomit-sequence-numbers, and-O6adds-fstrip-syntax-tree. - -S
- Outputs bytecode assembler source instead of assembling it into bytecode.