f91bc2804d
This commit slightly improves the formatting of the manuals. My OpenBSD machine uses mandoc(1) to format manuals. I check the manuals with `mandoc -T lint` and fix most of the warnings. I also make other changes where mandoc didn't warn me. roff(7) says, "Each sentence should terminate at the end of an input line," but we often forgot this rule. I insert some newlines after sentences that had ended mid-line. roff(7) also says that blank lines "are only permitted within literal contexts." I delete blank lines. This removes some extra blank lines from mandoc's output. If I do want a blank line in the output, I call ".sp 1" to make it in man(7). If I want a blank line in the source, but not the output, I put a plain dot "." so roff ignores it. Hyphens used for command-line options, like \-a, should be escaped by a backslash. I insert a few missing backslashes. mandoc warns if the date in .TH doesn't look like a date. Our manuals had a missing date or the RCS keyword "$Revision$". Git doesn't expand RCS keywords. I put in today's date, 2017-01-18. Some manuals used tab characters in filled mode. That doesn't work. I use .nf to turn off filled mode, or I use .IP in man(7) to make the indentation without a tab character. ack(1) defined a macro .SB but never used it, so I delete the definition. I also remove a call to the missing macro .RF. mandoc warns about empty paragraphs. I deleted them. mandoc also warned about these macro pairs in anm(1): .SM .B text The .SM did nothing because the .B text is on a different line. I changed each pair to .SB for small bold text. I make a few other small changes.
42 lines
1.3 KiB
Groff
42 lines
1.3 KiB
Groff
.TH EM_OPT 6 2017-01-18
|
|
.ad
|
|
.SH NAME
|
|
em_opt \- EM peephole optimizer
|
|
.SH SYNOPSIS
|
|
.B ~em/lib.bin/em_opt
|
|
[\-Ln] [\-m[l]<num>] [ argument ]
|
|
.SH DESCRIPTION
|
|
Em_opt reads a compact EM-program, argument or standard input,
|
|
and produces another compact EM program on standard output
|
|
that is functionally equivalent,
|
|
but smaller.
|
|
Some other functions are here that make this program mandatory
|
|
before running a codegenerator,
|
|
it may be left out when interpretation is wanted.
|
|
Flags recognized are:
|
|
.IP \-L
|
|
Make a library module.
|
|
This means that the output will start with a message giving
|
|
the names of all exported entities in this module.
|
|
.IP \-n
|
|
Do not optimize.
|
|
No peephole optimizations will be performed,
|
|
other functions will be carried out.
|
|
.IP \-m<num>
|
|
Try to replace multiplies with constants by combinations of shifts and adds,
|
|
but no more than <num> of them.
|
|
Integer overflow detection is lost with this option.
|
|
.IP \-ml<num>
|
|
Like \-m<num>, but also for long multiplies.
|
|
.SH "FILES"
|
|
/tmp/emopt??????, is used when the \-L flag is given only.
|
|
.SH "SEE ALSO"
|
|
ack(1)
|
|
.PD 0
|
|
.IP [1]
|
|
A.S. Tanenbaum, Hans van Staveren, Ed Keizer and Johan
|
|
Stevenson "Description of a machine architecture for use with
|
|
block structured languages" Informatica report IR-81.
|
|
.SH AUTHOR
|
|
Hans van Staveren, Vrije Universiteit
|