=pod

=head1 NAME

llvm-as - LLVM assembler

=head1 SYNOPSIS

B<llvm-as> [I<options>] [I<filename>]

=head1 DESCRIPTION

The B<llvm-as> command invokes the LLVM assembler.  It reads a file containing
human-readable LLVM assembly language, translates it to LLVM bytecode, and
writes the result into a file or to standard output.

If F<filename> is omitted or is C<->, then B<llvm-as> reads its input from
standard input.

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<.ll>, 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<.ll> 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<-f>

Force overwrite.  Normally, B<llvm-as> will refuse to overwrite an
output file that already exists.  With this option, B<llvm-as>
will overwrite the output file and replace it with new bytecode.

=item B<--help>

Print a summary of command line options.

=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.

=item B<--time-passes>

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

=back

=head1 EXIT STATUS

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

=head1 SEE ALSO

L<llvm-dis|llvm-dis>, L<gccas|gccas>

=head1 AUTHORS

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

=cut
