=pod =head1 NAME llvm2xpp - LLVM assembler to LLVM C++ IR translator =head1 SYNOPSIS B [I] [I] =head1 DESCRIPTION B translates from human readable LLVM assembly (.ll files) to a corresponding C++ source file that will make calls against the LLVM C++ API to build the same module as the input. By default, the C++ output is a complete program that builds the module, verifies it and then emits the module as LLVM assembly again. This technique assists with testing because the input to B and the output of the generated C++ program should be identical. If F is omitted or is C<->, then B reads its input from standard input. If an output file is not specified with the B<-o> option, then B 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<.cpp>. =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<.cpp> suffix is appended. =back =head1 OPTIONS =over =item B<-f> Force overwrite. Normally, B will refuse to overwrite an output file that already exists. With this option, B will overwrite the output file and replace it with new C++ source code. =item B<--help> Print a summary of command line options. =item B<-o> F Specify the output file name. If F is C<->, then B sends its output to standard output. =item B<-modname> F Specify the name of the module to be generated. Normally the generated program creates a module that has the same name as the input file. If the input file was read from the standard input then the module name will be ''. This option overrides both these default actions and specifies that the module name used must be F. =item B<-funcname> F Specify the name of the function to be generated. The generated code contains a single function that produces the input module. By default its name is I. The B<-funcname> option overrides this default and allows you to control the name of the generated function. This is handy in conjunction with the B<-fragment> option when you only want B to generate a single function that produces the module. With both options, such generated code could be I<#included> into another program. =item B<-fragment> This boolean option tells B to generate only a program fragment. By deault B generates a full program. With this option specified, only a single function that generates the input module will be generated. =back =head1 EXIT STATUS If B succeeds, it will exit with 0. Otherwise, if an error occurs, it will exit with a non-zero value. =head1 SEE ALSO L =head1 AUTHORS Maintained by the LLVM Team (L). =cut