=pod

=head1 NAME

llvm-extract - extract a function from an LLVM module

=head1 SYNOPSIS

B<llvm-extract> [I<options>] B<--func> I<function-name> [I<filename>]

=head1 DESCRIPTION

The B<llvm-extract> command takes the name of a function and extracts it from
the specified LLVM bitcode file.  It is primarily used as a debugging tool to
reduce test cases from larger programs that are triggering a bug.

In addition to extracting the bitcode of the specified function,
B<llvm-extract> will also remove unreachable global variables, prototypes, and
unused types.

The B<llvm-extract> command reads its input from standard input if filename is
omitted or if filename is -.  The output is always written to standard output,
unless the B<-o> option is specified (see below).

=head1 OPTIONS

=over

=item B<-f>

Enable binary output on terminals.  Normally, B<llvm-extract> will refuse to
write raw bitcode output if the output stream is a terminal. With this option,
B<llvm-extract> will write raw bitcode regardless of the output device.

=item B<--func> I<function-name>

Extract the function named I<function-name> from the LLVM bitcode. May be
specified multiple times to extract multiple functions at once.

=item B<--rfunc> I<function-regular-expr>

Extract the function(s) matching I<function-regular-expr> from the LLVM bitcode.
All functions matching the regular expression will be extracted.  May be 
specified multiple times.

=item B<--glob> I<global-name>

Extract the global variable named I<global-name> from the LLVM bitcode. May be
specified multiple times to extract multiple global variables at once.

=item B<--rglob> I<glob-regular-expr>

Extract the global variable(s) matching I<global-regular-expr> from the LLVM
bitcode. All global variables matching the regular expression will be extracted.
May be specified multiple times.

=item B<-help>

Print a summary of command line options.

=item B<-o> I<filename>

Specify the output filename.  If filename is "-" (the default), then
B<llvm-extract> sends its output to standard output.

=item B<-S>

Write output in LLVM intermediate language (instead of bitcode).

=back

=head1 EXIT STATUS

If B<llvm-extract> succeeds, it will exit with 0.  Otherwise, if an error
occurs, it will exit with a non-zero value.

=head1 SEE ALSO

L<bugpoint|bugpoint>

=head1 AUTHORS

Maintained by the LLVM Team (L<http://llvm.org/>).

=cut
