=pod

=head1 NAME

gccas - convenience script to run B<llvm-as> and B<opt>

=head1 SYNOPSIS

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

=head1 DESCRIPTION

The B<gccas> shell script passes an LLVM assembly file through the B<llvm-as> 
and B<opt> programs to generate an optimized bytecode file. Its name is an
historical artifact from when it was a full executable used to process LLVM 
assembly generated by the L<llvmgcc|llvmgcc> or L<llvmg++|llvmgxx> front-ends.  
Currently this is a shell script that simulates what the old B<gccas> executable
once did. 

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. It accomplishes this by using the
B<-std-compile-opts> option to the B<opt> tool.

=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<-disable-compression>

Do not compress the generated bytecode.

=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|llvm-as>, L<opt|opt>, L<gccld|gccld>

=head1 AUTHORS

Maintained by the LLVM Team (L<http://llvm.org>).

=cut
