| =pod | |
| =head1 NAME | |
| llvm-prof - print execution profile of LLVM program | |
| =head1 SYNOPSIS | |
| B<llvm-prof> [I<options>] [I<bitcode file>] [I<llvmprof.out>] | |
| =head1 DESCRIPTION | |
| The B<llvm-prof> tool reads in an F<llvmprof.out> file (which can | |
| optionally use a specific file with the third program argument), a bitcode file | |
| for the program, and produces a human readable report, suitable for determining | |
| where the program hotspots are. | |
| This program is often used in conjunction with the F<utils/profile.pl> | |
| script. This script automatically instruments a program, runs it with the JIT, | |
| then runs B<llvm-prof> to format a report. To get more information about | |
| F<utils/profile.pl>, execute it with the B<-help> option. | |
| =head1 OPTIONS | |
| =over | |
| =item B<--annotated-llvm> or B<-A> | |
| In addition to the normal report printed, print out the code for the | |
| program, annotated with execution frequency information. This can be | |
| particularly useful when trying to visualize how frequently basic blocks | |
| are executed. This is most useful with basic block profiling | |
| information or better. | |
| =item B<--print-all-code> | |
| Using this option enables the B<--annotated-llvm> option, but it | |
| prints the entire module, instead of just the most commonly executed | |
| functions. | |
| =item B<--time-passes> | |
| Record the amount of time needed for each pass and print it to standard | |
| error. | |
| =back | |
| =head1 EXIT STATUS | |
| B<llvm-prof> returns 1 if it cannot load the bitcode file or the profile | |
| information. Otherwise, it exits with zero. | |
| =head1 AUTHOR | |
| B<llvm-prof> is maintained by the LLVM Team (L<http://llvm.org/>). | |
| =cut |