llvm-6502/test/tools/llvm-cov/Inputs/test_-a_-b.cpp.gcov
Yuchen Wu a2639798a8 llvm-cov: Added -b option for branch probabilities.
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197198 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-13 01:15:07 +00:00

135 lines
3.9 KiB
Plaintext

-: 0:Source:test.cpp
-: 0:Graph:test.gcno
-: 0:Data:test.gcda
-: 0:Runs:2
-: 0:Programs:1
-: 1:#include "test.h"
-: 2:#include <cstdlib>
-: 3:
-: 4:bool on = false;
-: 5:int len = 42;
-: 6:double grid[10][10] = {0};
-: 7:const char * hello = "world";
-: 8:const char * world = "hello";
-: 9:
function _ZN1A1BEv called 8589934592 returned 100% blocks executed 100%
8589934592: 10:void A::B() {}
8589934592: 10-block 0
-: 11:
function _Z7uselessv called 0 returned 0% blocks executed 0%
#####: 12:void useless() {}
$$$$$: 12-block 0
-: 13:
function _Z12more_uselessv called 0 returned 0% blocks executed 0%
-: 14:double more_useless() {
#####: 15: return 0;
$$$$$: 15-block 0
-: 16:}
-: 17:
function _Z3foov called 2 returned 100% blocks executed 100%
-: 18:int foo() {
2: 19: on = true;
2: 20: return 3;
2: 20-block 0
-: 21:}
-: 22:
function _Z3barv called 0 returned 0% blocks executed 0%
-: 23:int bar() {
#####: 24: len--;
#####: 25: return foo() + 45;
$$$$$: 25-block 0
-: 26:}
-: 27:
function _Z6assignii called 8 returned 100% blocks executed 100%
8: 28:void assign(int ii, int jj) {
8: 29: grid[ii][jj] = (ii+1) * (jj+1);
8: 30:}
8: 30-block 0
-: 31:
function _Z15initialize_gridv called 2 returned 100% blocks executed 100%
-: 32:void initialize_grid() {
6: 33: for (int ii = 0; ii < 2; ii++)
2: 33-block 0
6: 33-block 1
branch 0 taken 67%
branch 1 taken 33%
4: 33-block 2
12: 34: for (int jj = 0; jj < 2; jj++)
4: 34-block 0
12: 34-block 1
branch 0 taken 67%
branch 1 taken 33%
8: 34-block 2
8: 35: assign(ii, jj);
8: 35-block 0
4: 35-block 1
2: 36:}
2: 36-block 0
-: 37:
function main called 2 returned 100% blocks executed 94%
-: 38:int main() {
2: 39: initialize_grid();
-: 40:
2: 41: int a = 2;
2: 42: on = rand() % 2;
2: 43: if (on) {
2: 43-block 0
branch 0 taken 100%
branch 1 taken 0%
2: 44: foo();
2: 45: ++a;
2: 46: } else {
2: 46-block 0
#####: 47: bar();
#####: 48: a += rand();
$$$$$: 48-block 0
-: 49: }
-: 50:
22: 51: for (int ii = 0; ii < 10; ++ii) {
2: 51-block 0
22: 51-block 1
branch 0 taken 91%
branch 1 taken 9%
20: 51-block 2
20: 52: switch (rand() % 5) {
20: 52-block 0
branch 0 taken 20%
branch 1 taken 0%
branch 2 taken 10%
branch 3 taken 30%
branch 4 taken 40%
-: 53: case 0:
4: 54: a += rand();
4: 55: break;
4: 55-block 0
-: 56: case 1:
-: 57: case 2:
2: 58: a += rand() / rand();
2: 59: break;
2: 59-block 0
-: 60: case 3:
6: 61: a -= rand();
6: 62: break;
6: 62-block 0
-: 63: default:
8: 64: a = -1;
8: 65: }
8: 65-block 0
20: 66: }
20: 66-block 0
-: 67:
2: 68: A thing;
8589934594: 69: for (uint64_t ii = 0; ii < 4294967296; ++ii)
2: 69-block 0
8589934594: 69-block 1
branch 0 taken 99%
branch 1 taken 1%
8589934592: 69-block 2
8589934592: 70: thing.B();
8589934592: 70-block 0
-: 71:
2: 72: return a + 8 + grid[2][3] + len;
2: 72-block 0
-: 73: return more_useless();
-: 74:}