=pod

=head1 NAME

stkrc - Stacker Compiler

=head1 SYNOPSIS

B<stkrc> [I<options>] [I<filename>]

=head1 DESCRIPTION

The B<stkrc> command is the compiler for the Stacker language. Stacker is a
simple stack based, Forth-like language that was written as a demonstration
language for LLVM. For details on the language, please see
L<http://llvm.cs.uiuc.edu/docs/Stacker.html> . The B<stkrc> compiler is fairly 
minimal. It compiles to bytecode only and doesn't perform any optimizations.
The output of stkrc (a bytecode file) can be piped through other LLVM tools
for optimization and linking.

If F<filename> is omitted or is C<->, then B<stkrc> reads its input 
from standard input. This is useful for combining the tool into a pipeline.

If an output file is not specified with the B<-o> option, then
B<llvm-as> sends its output to a file or standard output by following
these rules:

=over 

=item *

If the input is standard input, then the output is standard output.

=item *

If the input is a file that ends with C<.st>, then the output file is of
the same name, except that the suffix is changed to C<.bc>.

=item *

If the input is a file that does not end with the C<.st> suffix, then the
output file has the same name as the input file, except that the C<.bc>
suffix is appended.

=back

=head1 OPTIONS

=over

=item B<-o> F<filename>

Specify the output file name.  If F<filename> is C<->, then B<llvm-as>
sends its output to standard output.

=item B<-stats>

Print statistics acquired during compilation.

=item B<-time-passes>

Record the amount of time needed for each pass and print it to standard
error.

=item B<-f>

Force the output to be written. Normally, B<stkrc> won't overwrite an existing
bytecode file. This option overrides that behavior. 

=item B<-s> F<stacksize>

Specify the stack size for the program. The default stack size, 1024, should be
sufficient for most programs. For very large programs, especially those that 
recurse a lot, you might want to provide a larger value. Each unit of this
value consumes 8 bytes of memory.

=item B<-help>

Print a summary of command line options.

=back

=head1 EXIT STATUS

If B<stkrc> succeeds, it will exit with 0.  Otherwise, if an error
occurs, it will exit with a non-zero value, usually 1.

=head1 SEE ALSO

L<llvm-as>, L<http://llvm.cs.uiuc.edu/docs/Stacker.html>

=head1 AUTHORS

Maintained by the LLVM Team (L<http://llvm.cs.uiuc.edu>).

=cut
