
=pod

=head1 NAME

gccas - optimizing LLVM assembler

=head1 SYNOPSIS

gccas [options] filename

=head1 DESCRIPTION

The B<gccas> utility takes an LLVM assembly file generated by the
L<llvm-gcc|llvm-gcc> or L<llvm-g++|llvm-g++> front-ends and converts
it into an LLVM bytecode file.  It is primarily used by the GCC
front end, and as such, attempts to mimic the interface provided
by the default system assembler so that it can act as a "drop-in"
replacement.

B<gccas> performs a number of optimizations on the input program,
including but not limited to: promotion of stack values to SSA
registers; elimination of dead globals, function arguments, code,
and types; tail-call elimination; loop-invariant code motion; global
common-subexpression elimination; and sparse conditional constant
propagation.

=head1 OPTIONS

=over

=item B<--help>

Print a summary of command line options.

=item B<-o> F<filename>

Specify the name of the output file which will hold the assembled bytecode.

=item B<--disable-inlining>

Disable the inlining pass.  By default, it is enabled.

=item B<--disable-opt>

Disable all assembler-time optimization passes.

=item B<--stats>

Print statistics.

=item B<--time-passes>

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

=item B<--verify>

Verify each pass result.

=back

=head1 EXIT STATUS

If B<gccas> succeeds, it will exit with an exit status of 0.
Otherwise, if an error occurs, it will exit with a non-zero exit
status.

=head1 SEE ALSO

L<llvm-as>, L<gccld>

=head1 AUTHORS

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

=cut

