summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-cov/llvm-cov.cpp
Commit message (Collapse)AuthorAgeFilesLines
* llvm-cov: Implement --no-outputJustin Bogner2014-05-071-1/+5
| | | | | | | | In gcov, there's a -n/--no-output option, which disables the writing of any .gcov files, so that it emits only the summary info on stdout. This implements the same behaviour in llvm-cov. llvm-svn: 208148
* llvm-cov: Add support for gcov's --long-file-names optionJustin Bogner2014-04-231-2/+6
| | | | | | | | GCOV provides an option to prepend output file names with the source file name, to disambiguate between covered data that's included from multiple sources. Add a flag to llvm-cov that does the same. llvm-svn: 207035
* llvm-cov: Allow short options to be groupedJustin Bogner2014-04-231-6/+6
| | | | llvm-svn: 207034
* Replace OwningPtr<T> with std::unique_ptr<T>.Ahmed Charles2014-03-061-3/+2
| | | | | | | | | | This compiles with no changes to clang/lld/lldb with MSVC and includes overloads to various functions which are used by those projects and llvm which have OwningPtr's as parameters. This should allow out of tree projects some time to move. There are also no changes to libs/Target, which should help out of tree targets have time to move, if necessary. llvm-svn: 203083
* llvm-cov: Support gcov's extermely lenient treatment of -oJustin Bogner2014-02-181-4/+14
| | | | | | | | | | | | In gcov, the -o flag can accept either a directory or a file name. When given a directory, the gcda and gcno files are expected to be in that directory. When given a file, the gcda and gcno files are expected to be named based on the stem of that file. Non-existent paths are treated as files. This implements compatible behaviour. llvm-svn: 201555
* llvm-cov: Implement the preserve-paths flagJustin Bogner2014-02-041-1/+5
| | | | | | | | | | | | | | | | Until now, when a path in a gcno file included a directory, we would emit our .gcov file in that directory, whereas gcov always emits the file in the current directory. In doing so, this implements gcov's strange name-mangling -p flag, which is needed to avoid clobbering files when two with the same name exist in different directories. The path mangling is a bit ugly and only handles unix-like paths, but it's simple, and it doesn't make any guesses as to how it should behave outside of what gcov documents. If we decide this should be cross platform later, we can consider the compatibility implications then. llvm-svn: 200754
* llvm-cov: Implement the object-directory flagJustin Bogner2014-02-041-2/+13
| | | | llvm-svn: 200741
* llvm-cov: Ignore missing .gcda filesJustin Bogner2014-02-041-7/+12
| | | | | | | | When gcov is run without gcda data, it acts as if the counts are all zero and labels the file as - to indicate that there was no data. We should do the same. llvm-svn: 200740
* llvm-cov: Accept the long forms of gcov optionsJustin Bogner2014-01-291-0/+6
| | | | | | | | | This is a bit imperfect, as these options don't show up in the help as is and single dash variants are accepted, which differs from gcov. Unfortunately, this seems to be as good as it gets with the cl::opt machinery, so it'll do as an incremental step. llvm-svn: 200419
* llvm-cov: Improve help message textJustin Bogner2014-01-291-22/+21
| | | | | | | | This Properly capitalizes and clarifies the help output from llvm-cov. It also puts the llvm-only / non-gcov-compatible options in their own category. llvm-svn: 200418
* llvm-cov: Expect a source file as a positional parameterJustin Bogner2014-01-291-13/+17
| | | | | | | | | | | Currently, llvm-cov isn't command-line compatible with gcov, which accepts a source file name as its first parameter and infers the gcno and gcda file names from that. This change keeps our -gcda and -gcno options available for convenience in overriding this behaviour, but adds the required parameter and inference behaviour as a compatible default. llvm-svn: 200417
* llvm-cov: Added -f option for function summaries.Yuchen Wu2013-12-191-1/+5
| | | | | | | | | | | Similar to the file summaries, the function summaries output line, branching and call statistics. The file summaries have been moved outside the initial loop so that all of the function summaries can be outputted before file summaries. Also updated test cases. llvm-svn: 197633
* llvm-cov: Added -c option for branch counts.Yuchen Wu2013-12-181-3/+7
| | | | | | | | | This will cause llvm-cov to output branch counts instead of branch probabilities. -b must be enabled. Also updated tests. llvm-svn: 197594
* llvm-cov: Added -u option for unconditional branch info.Yuchen Wu2013-12-161-1/+5
| | | | | | | | | Outputs branch information for unconditional branches in addition to conditional branches. -b option must be enabled. Also updated tests. llvm-svn: 197432
* llvm-cov: Added -b option for branch probabilities.Yuchen Wu2013-12-131-2/+6
| | | | | | | | | | | This option tells llvm-cov to print out branch probabilities when a basic block contains multiple branches. It also prints out some function summary info including the number of times the function enters, the percent of time it returns, and how many blocks were executed. Also updated tests. llvm-svn: 197198
* llvm-cov: Added -a option for block data.Yuchen Wu2013-12-101-2/+4
| | | | | | | | | | | | | | | Similar to gcov, llvm-cov will now print out the block count at the end of each block. Multiple blocks can end on the same line. One computational difference is by using -a, llvm-cov will no longer simply add the block counts together to form a line count. Instead, it will take the maximum of the block counts on that line. This has a similar effect to what gcov does, but generates more correct counts in certain scenarios. Also updated tests. llvm-svn: 196856
* llvm-cov: Conformed headers.Yuchen Wu2013-12-051-1/+1
| | | | llvm-svn: 196541
* llvm-cov: Split GCOVFile's read into GCNO and GCDA.Yuchen Wu2013-12-041-2/+2
| | | | | | | | This splits the file-scope read() function into readGCNO() and readGCDA(). Also broke file format read into functions that first read the file type, then check the version. llvm-svn: 196353
* llvm-cov: Removed output to STDOUT/specified file.Yuchen Wu2013-12-031-11/+1
| | | | | | | | | | | | Instead of asking the user to specify a single file to output coverage info and defaulting to STDOUT, llvm-cov now creates files for each source file with a naming system of: <source filename> + ".llcov". This is what gcov does and although it can clutter the working directory with numerous coverage files, it will be easier to hook the llvm-cov output to tools which operate on this assumption (such as lcov). llvm-svn: 196184
* llvm-cov: Clean up memory leaks.Benjamin Kramer2013-11-151-2/+2
| | | | llvm-svn: 194799
* Revert "llvm-cov: Added command-line option to change dir."Yuchen Wu2013-11-051-11/+1
| | | | | | This reverts commit d8acf0078cf363252727acff00f85ae8074f95b3. llvm-svn: 194040
* llvm-cov: Added command-line option to change dir.Yuchen Wu2013-11-051-1/+11
| | | | | | | This will allow for much easier testing when the input files are in a different folder from the test script. llvm-svn: 194034
* Added command-line option to output llvm-cov to file.Yuchen Wu2013-11-021-1/+10
| | | | | | | Added -o option to llvm-cov. If no output file is specified, it defaults to STDOUT. llvm-svn: 193899
* Updated llvm-cov's OVERVIEW descriptionYuchen Wu2013-10-311-1/+1
| | | | llvm-svn: 193732
* Change llvm-cov output formatting to be more similar to gcov.Bob Wilson2013-10-221-1/+1
| | | | | | | | | | | | - Replaced tabs with proper padding - print() takes two arguments, which are the GCNO and GCDA filenames - Files are listed at the top of output, appended by line 0 - Stripped strings of trailing \0s - Removed last two lines of whitespace in output Patch by Yuchen Wu! llvm-svn: 193148
* Move the printing of llvm-cov information out from collectLineCounts().Bob Wilson2013-10-221-0/+1
| | | | | | | | | | collectLineCounts() should only organize the output data. This is done in anticipation of subsequent changes which will pass in GCNO and GCDA filenames into the print function where it is printed similar to the gcov output. Patch by Yuchen Wu! llvm-svn: 193134
* Remove accidental commit.Bill Wendling2012-11-071-21/+0
| | | | llvm-svn: 167544
* Add comment describing what's going on here.Bill Wendling2012-11-071-0/+21
| | | | llvm-svn: 167525
* Put GCOVFile and other related interface in a common header so that llvm-cov ↵Devang Patel2011-10-041-1/+1
| | | | | | tool can share it with GCOV writer. llvm-svn: 141095
* Clarify comments.Devang Patel2011-09-291-1/+0
| | | | llvm-svn: 140787
* Cosmetic changes, as per Nick's review.Devang Patel2011-09-291-12/+8
| | | | llvm-svn: 140785
* Introduce llvm-cov.Devang Patel2011-09-281-0/+83
Add llvm-cov skeleton. It has initial support to read coverage info generated by GCOVProfiling.cpp. Today, you can do prompt> clang a.c -ftest-coverage -fprofile-arcs -o a prompt> ./a prompt> llvm-cov -gcno a.gcno -gcda a.gcda a.c : #include "a.h" : : int main() { : int i = 0; : if (i) { 1: int j = 0; 1: j = 1; 1: } else { : int k = 1; : k = 2; : } 1: return 0; : } : : llvm-svn: 140712
OpenPOWER on IntegriCloud