Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / perl-5.8.0 / man / man3 / B::Bytecode.3
CommitLineData
86530b38
AT
1.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13
2.\"
3.\" Standard preamble:
4.\" ========================================================================
5.de Sh \" Subsection heading
6.br
7.if t .Sp
8.ne 5
9.PP
10\fB\\$1\fR
11.PP
12..
13.de Sp \" Vertical space (when we can't use .PP)
14.if t .sp .5v
15.if n .sp
16..
17.de Vb \" Begin verbatim text
18.ft CW
19.nf
20.ne \\$1
21..
22.de Ve \" End verbatim text
23.ft R
24.fi
25..
26.\" Set up some character translations and predefined strings. \*(-- will
27.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
28.\" double quote, and \*(R" will give a right double quote. | will give a
29.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
30.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
31.\" expand to `' in nroff, nothing in troff, for use with C<>.
32.tr \(*W-|\(bv\*(Tr
33.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
34.ie n \{\
35. ds -- \(*W-
36. ds PI pi
37. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
38. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
39. ds L" ""
40. ds R" ""
41. ds C` ""
42. ds C' ""
43'br\}
44.el\{\
45. ds -- \|\(em\|
46. ds PI \(*p
47. ds L" ``
48. ds R" ''
49'br\}
50.\"
51.\" If the F register is turned on, we'll generate index entries on stderr for
52.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
53.\" entries marked with X<> in POD. Of course, you'll have to process the
54.\" output yourself in some meaningful fashion.
55.if \nF \{\
56. de IX
57. tm Index:\\$1\t\\n%\t"\\$2"
58..
59. nr % 0
60. rr F
61.\}
62.\"
63.\" For nroff, turn off justification. Always turn off hyphenation; it makes
64.\" way too many mistakes in technical documents.
65.hy 0
66.if n .na
67.\"
68.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
69.\" Fear. Run. Save yourself. No user-serviceable parts.
70. \" fudge factors for nroff and troff
71.if n \{\
72. ds #H 0
73. ds #V .8m
74. ds #F .3m
75. ds #[ \f1
76. ds #] \fP
77.\}
78.if t \{\
79. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
80. ds #V .6m
81. ds #F 0
82. ds #[ \&
83. ds #] \&
84.\}
85. \" simple accents for nroff and troff
86.if n \{\
87. ds ' \&
88. ds ` \&
89. ds ^ \&
90. ds , \&
91. ds ~ ~
92. ds /
93.\}
94.if t \{\
95. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
96. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
97. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
98. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
99. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
100. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
101.\}
102. \" troff and (daisy-wheel) nroff accents
103.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
104.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
105.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
106.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
107.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
108.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
109.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
110.ds ae a\h'-(\w'a'u*4/10)'e
111.ds Ae A\h'-(\w'A'u*4/10)'E
112. \" corrections for vroff
113.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
114.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
115. \" for low resolution devices (crt and lpr)
116.if \n(.H>23 .if \n(.V>19 \
117\{\
118. ds : e
119. ds 8 ss
120. ds o a
121. ds d- d\h'-1'\(ga
122. ds D- D\h'-1'\(hy
123. ds th \o'bp'
124. ds Th \o'LP'
125. ds ae ae
126. ds Ae AE
127.\}
128.rm #[ #] #H #V #F C
129.\" ========================================================================
130.\"
131.IX Title "B::Bytecode 3"
132.TH B::Bytecode 3 "2002-06-01" "perl v5.8.0" "Perl Programmers Reference Guide"
133.SH "NAME"
134B::Bytecode \- Perl compiler's bytecode backend
135.SH "SYNOPSIS"
136.IX Header "SYNOPSIS"
137.Vb 1
138\& perl -MO=Bytecode[,OPTIONS] foo.pl
139.Ve
140.SH "DESCRIPTION"
141.IX Header "DESCRIPTION"
142This compiler backend takes Perl source and generates a
143platform-independent bytecode encapsulating code to load the
144internal structures perl uses to run your program. When the
145generated bytecode is loaded in, your program is ready to run,
146reducing the time which perl would have taken to load and parse
147your program into its internal semi-compiled form. That means that
148compiling with this backend will not help improve the runtime
149execution speed of your program but may improve the start-up time.
150Depending on the environment in which your program runs this may
151or may not be a help.
152.PP
153The resulting bytecode can be run with a special byteperl executable
154or (for non-main programs) be loaded via the \f(CW\*(C`byteload_fh\*(C'\fR function
155in the \fIB\fR module.
156.SH "OPTIONS"
157.IX Header "OPTIONS"
158If there are any non-option arguments, they are taken to be names of
159objects to be saved (probably doesn't work properly yet). Without
160extra arguments, it saves the main program.
161.IP "\fB\-ofilename\fR" 4
162.IX Item "-ofilename"
163Output to filename instead of \s-1STDOUT\s0.
164.IP "\fB\-afilename\fR" 4
165.IX Item "-afilename"
166Append output to filename.
167.IP "\fB\-\-\fR" 4
168.IX Item "--"
169Force end of options.
170.IP "\fB\-f\fR" 4
171.IX Item "-f"
172Force optimisations on or off one at a time. Each can be preceded
173by \fBno\-\fR to turn the option off (e.g. \fB\-fno\-compress\-nullops\fR).
174.IP "\fB\-fcompress\-nullops\fR" 4
175.IX Item "-fcompress-nullops"
176Only fills in the necessary fields of ops which have
177been optimised away by perl's internal compiler.
178.IP "\fB\-fomit\-sequence\-numbers\fR" 4
179.IX Item "-fomit-sequence-numbers"
180Leaves out code to fill in the op_seq field of all ops
181which is only used by perl's internal compiler.
182.IP "\fB\-fbypass\-nullops\fR" 4
183.IX Item "-fbypass-nullops"
184If op\->op_next ever points to a \s-1NULLOP\s0, replaces the op_next field
185with the first non-NULLOP in the path of execution.
186.IP "\fB\-On\fR" 4
187.IX Item "-On"
188Optimisation level (n = 0, 1, 2, ...). \fB\-O\fR means \fB\-O1\fR.
189\&\fB\-O1\fR sets \fB\-fcompress\-nullops\fR \fB\-fomit\-sequence numbers\fR.
190\&\fB\-O2\fR adds \fB\-fbypass\-nullops\fR.
191.IP "\fB\-D\fR" 4
192.IX Item "-D"
193Debug options (concatenated or separate flags like \f(CW\*(C`perl \-D\*(C'\fR).
194.IP "\fB\-Do\fR" 4
195.IX Item "-Do"
196Prints each \s-1OP\s0 as it's processed.
197.IP "\fB\-Db\fR" 4
198.IX Item "-Db"
199Print debugging information about bytecompiler progress.
200.IP "\fB\-Da\fR" 4
201.IX Item "-Da"
202Tells the (bytecode) assembler to include source assembler lines
203in its output as bytecode comments.
204.IP "\fB\-DC\fR" 4
205.IX Item "-DC"
206Prints each \s-1CV\s0 taken from the final symbol tree walk.
207.IP "\fB\-S\fR" 4
208.IX Item "-S"
209Output (bytecode) assembler source rather than piping it
210through the assembler and outputting bytecode.
211.IP "\fB\-upackage\fR" 4
212.IX Item "-upackage"
213Stores package in the output.
214.SH "EXAMPLES"
215.IX Header "EXAMPLES"
216.Vb 1
217\& perl -MO=Bytecode,-O6,-ofoo.plc,-umain foo.pl
218.Ve
219.PP
220.Vb 2
221\& perl -MO=Bytecode,-S,-umain foo.pl > foo.S
222\& assemble foo.S > foo.plc
223.Ve
224.PP
225Note that \f(CW\*(C`assemble\*(C'\fR lives in the \f(CW\*(C`B\*(C'\fR subdirectory of your perl
226library directory. The utility called perlcc may also be used to
227help make use of this compiler.
228.PP
229.Vb 1
230\& perl -MO=Bytecode,-uFoo,-oFoo.pmc Foo.pm
231.Ve
232.SH "BUGS"
233.IX Header "BUGS"
234Output is still huge and there are still occasional crashes during
235either compilation or ByteLoading. Current status: experimental.
236.SH "AUTHORS"
237.IX Header "AUTHORS"
238Malcolm Beattie, \f(CW\*(C`mbeattie@sable.ox.ac.uk\*(C'\fR
239Benjamin Stuhl, \f(CW\*(C`sho_pi@hotmail.com\*(C'\fR