Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
c50174e7
Commit
c50174e7
authored
Jun 12, 2001
by
Joseph Myers
Committed by
Joseph Myers
Jun 12, 2001
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* doc/gcov.texi: Use more logical markup.
From-SVN: r43253
parent
17d6c819
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
64 additions
and
60 deletions
+64
-60
gcc/ChangeLog
+4
-0
gcc/doc/gcov.texi
+60
-60
No files found.
gcc/ChangeLog
View file @
c50174e7
2001
-
06
-
12
Joseph
S
.
Myers
<
jsm28
@cam
.
ac
.
uk
>
*
doc
/
gcov
.
texi
:
Use
more
logical
markup
.
2001
-
06
-
11
Mark
Mitchell
<
mark
@codesourcery
.
com
>
*
unroll
.
c
(
initial_reg_note_copy
)
:
Use
PUT_REG_NOTE_KIND
and
...
...
gcc/doc/gcov.texi
View file @
c50174e7
...
...
@@ -27,12 +27,12 @@ English.
@end
ignore
@node
Gcov
@chapter
@co
de
{
gcov
}
:
a
Test
Coverage
Program
@chapter
@co
mmand
{
gcov
}
:
a
Test
Coverage
Program
@co
de
{
gcov
}
is
a
tool
you
can
use
in
conjunction
with
@sc
{
gnu
}
CC
to
@co
mmand
{
gcov
}
is
a
tool
you
can
use
in
conjunction
with
@sc
{
gnu
}
CC
to
test
code
coverage
in
your
programs
.
This
chapter
describes
version
1
.
5
of
@co
de
{
gcov
}.
This
chapter
describes
version
1
.
5
of
@co
mmand
{
gcov
}.
@menu
*
Gcov
Intro
::
Introduction
to
gcov
.
...
...
@@ -42,19 +42,19 @@ This chapter describes version 1.5 of @code{gcov}.
@end
menu
@node
Gcov
Intro
@section
Introduction
to
@co
de
{
gcov
}
@section
Introduction
to
@co
mmand
{
gcov
}
@c
man
begin
DESCRIPTION
@co
de
{
gcov
}
is
a
test
coverage
program
.
Use
it
in
concert
with
@sc
{
gnu
}
@co
mmand
{
gcov
}
is
a
test
coverage
program
.
Use
it
in
concert
with
@sc
{
gnu
}
CC
to
analyze
your
programs
to
help
create
more
efficient
,
faster
running
code
.
You
can
use
@co
de
{
gcov
}
as
a
profiling
tool
to
help
running
code
.
You
can
use
@co
mmand
{
gcov
}
as
a
profiling
tool
to
help
discover
where
your
optimization
efforts
will
best
affect
your
code
.
You
can
also
use
@co
de
{
gcov
}
along
with
the
other
profiling
tool
,
@co
de
{
gprof
},
to
assess
which
parts
of
your
code
use
the
greatest
amount
can
also
use
@co
mmand
{
gcov
}
along
with
the
other
profiling
tool
,
@co
mmand
{
gprof
},
to
assess
which
parts
of
your
code
use
the
greatest
amount
of
computing
time
.
Profiling
tools
help
you
analyze
your
code
'
s
performance
.
Using
a
profiler
such
as
@co
de
{
gcov
}
or
@code
{
gprof
},
you
can
find
out
some
profiler
such
as
@co
mmand
{
gcov
}
or
@command
{
gprof
},
you
can
find
out
some
basic
performance
statistics
,
such
as
:
@itemize
@bullet
...
...
@@ -70,7 +70,7 @@ how much computing time each section of code uses
Once
you
know
these
things
about
how
your
code
works
when
compiled
,
you
can
look
at
each
module
to
see
which
modules
should
be
optimized
.
@co
de
{
gcov
}
helps
you
determine
where
to
work
on
optimization
.
@co
mmand
{
gcov
}
helps
you
determine
where
to
work
on
optimization
.
Software
developers
also
use
coverage
testing
in
concert
with
testsuites
,
to
make
sure
software
is
actually
good
enough
for
a
release
.
...
...
@@ -81,10 +81,10 @@ to be added to the testsuites to create both better testing and a better
final
product
.
You
should
compile
your
code
without
optimization
if
you
plan
to
use
@co
de
{
gcov
}
because
the
optimization
,
by
combining
some
lines
of
code
@co
mmand
{
gcov
}
because
the
optimization
,
by
combining
some
lines
of
code
into
one
function
,
may
not
give
you
as
much
information
as
you
need
to
look
for
`
hot
spots
'
where
the
code
is
using
a
great
deal
of
computer
time
.
Likewise
,
because
@co
de
{
gcov
}
accumulates
statistics
by
line
(
at
time
.
Likewise
,
because
@co
mmand
{
gcov
}
accumulates
statistics
by
line
(
at
the
lowest
resolution
),
it
works
best
with
a
programming
style
that
places
only
one
statement
on
each
line
.
If
you
use
complicated
macros
that
expand
to
loops
or
to
other
control
structures
,
the
statistics
are
...
...
@@ -92,14 +92,14 @@ less helpful---they only report on the line where the macro call
appears
.
If
your
complex
macros
behave
like
functions
,
you
can
replace
them
with
inline
functions
to
solve
this
problem
.
@co
de
{
gcov
}
creates
a
logfile
called
@file
{
@var
{
sourcefile
}.
gcov
}
which
@co
mmand
{
gcov
}
creates
a
logfile
called
@file
{
@var
{
sourcefile
}.
gcov
}
which
indicates
how
many
times
each
line
of
a
source
file
@file
{
@var
{
sourcefile
}.
c
}
has
executed
.
You
can
use
these
logfiles
along
with
@co
de
{
gprof
}
to
aid
in
fine
-
tuning
the
performance
of
your
programs
.
@co
de
{
gprof
}
gives
has
executed
.
You
can
use
these
logfiles
along
with
@co
mmand
{
gprof
}
to
aid
in
fine
-
tuning
the
performance
of
your
programs
.
@co
mmand
{
gprof
}
gives
timing
information
you
can
use
along
with
the
information
you
get
from
@co
de
{
gcov
}.
@co
mmand
{
gcov
}.
@co
de
{
gcov
}
works
only
on
code
compiled
with
@sc
{
gnu
}
CC
.
It
is
not
@co
mmand
{
gcov
}
works
only
on
code
compiled
with
@sc
{
gnu
}
CC
.
It
is
not
compatible
with
any
other
profiling
or
test
coverage
mechanism
.
@c
man
end
...
...
@@ -121,7 +121,7 @@ gcc(1) and the Info entry for @file{gcc}.
@end
ignore
@c
man
begin
OPTIONS
@table
@
code
@table
@
gcctabopt
@item
-
b
Write
branch
frequencies
to
the
output
file
,
and
write
branch
summary
info
to
the
standard
output
.
This
option
allows
you
to
see
how
often
...
...
@@ -132,28 +132,28 @@ Write branch frequencies as the number of branches taken, rather than
the
percentage
of
branches
taken
.
@item
-
v
Display
the
@co
de
{
gcov
}
version
number
(
on
the
standard
error
stream
).
Display
the
@co
mmand
{
gcov
}
version
number
(
on
the
standard
error
stream
).
@item
-
n
Do
not
create
the
@co
de
{
gcov
}
output
file
.
Do
not
create
the
@co
mmand
{
gcov
}
output
file
.
@item
-
l
Create
long
file
names
for
included
source
files
.
For
example
,
if
the
header
file
@
samp
{
x
.
h
}
contains
code
,
and
was
included
in
the
file
@
samp
{
a
.
c
},
then
running
@code
{
gcov
}
on
the
file
@samp
{
a
.
c
}
will
produce
an
output
file
called
@
samp
{
a
.
c
.
x
.
h
.
gcov
}
instead
of
@samp
{
x
.
h
.
gcov
}.
This
can
be
useful
if
@
samp
{
x
.
h
}
is
included
in
multiple
source
files
.
header
file
@
file
{
x
.
h
}
contains
code
,
and
was
included
in
the
file
@
file
{
a
.
c
},
then
running
@command
{
gcov
}
on
the
file
@file
{
a
.
c
}
will
produce
an
output
file
called
@
file
{
a
.
c
.
x
.
h
.
gcov
}
instead
of
@file
{
x
.
h
.
gcov
}.
This
can
be
useful
if
@
file
{
x
.
h
}
is
included
in
multiple
source
files
.
@item
-
f
Output
summaries
for
each
function
in
addition
to
the
file
level
summary
.
@item
-
o
The
directory
where
the
object
files
live
.
Gcov
will
search
for
@
cod
e
{.
bb
},
@
code
{.
bbg
},
and
@cod
e
{.
da
}
files
in
this
directory
.
The
directory
where
the
object
files
live
.
Gcov
will
search
for
@
fil
e
{.
bb
},
@
file
{.
bbg
},
and
@fil
e
{.
da
}
files
in
this
directory
.
@end
table
@need
3000
When
using
@co
de
{
gcov
},
you
must
first
compile
your
program
with
two
When
using
@co
mmand
{
gcov
},
you
must
first
compile
your
program
with
two
special
@sc
{
gnu
}
CC
options
:
@samp
{
-
fprofile
-
arcs
-
ftest
-
coverage
}.
This
tells
the
compiler
to
generate
additional
information
needed
by
gcov
(
basically
a
flow
graph
of
the
program
)
and
also
includes
...
...
@@ -162,13 +162,13 @@ information needed by gcov. These additional files are placed in the
directory
where
the
source
code
is
located
.
Running
the
program
will
cause
profile
output
to
be
generated
.
For
each
source
file
compiled
with
-
fprofile
-
arcs
,
an
accompanying
@cod
e
{.
da
}
source
file
compiled
with
@option
{
-
fprofile
-
arcs
},
an
accompanying
@fil
e
{.
da
}
file
will
be
placed
in
the
source
directory
.
Running
@co
de
{
gcov
}
with
your
program
'
s
source
file
names
as
arguments
Running
@co
mmand
{
gcov
}
with
your
program
'
s
source
file
names
as
arguments
will
now
produce
a
listing
of
the
code
along
with
frequency
of
execution
for
each
line
.
For
example
,
if
your
program
is
called
@
samp
{
tmp
.
c
},
this
is
what
you
see
when
you
use
the
basic
@co
de
{
gcov
}
facility
:
for
each
line
.
For
example
,
if
your
program
is
called
@
file
{
tmp
.
c
},
this
is
what
you
see
when
you
use
the
basic
@co
mmand
{
gcov
}
facility
:
@smallexample
$
gcc
-
fprofile
-
arcs
-
ftest
-
coverage
tmp
.
c
...
...
@@ -178,7 +178,7 @@ $ gcov tmp.c
Creating
tmp
.
c
.
gcov
.
@end
smallexample
The
file
@file
{
tmp
.
c
.
gcov
}
contains
output
from
@co
de
{
gcov
}.
The
file
@file
{
tmp
.
c
.
gcov
}
contains
output
from
@co
mmand
{
gcov
}.
Here
is
a
sample
:
@smallexample
...
...
@@ -199,7 +199,7 @@ Here is a sample:
@end
smallexample
@need
450
When
you
use
the
@
samp
{
-
b
}
option
,
your
output
looks
like
this
:
When
you
use
the
@
option
{
-
b
}
option
,
your
output
looks
like
this
:
@smallexample
$
gcov
-
b
tmp
.
c
...
...
@@ -257,7 +257,7 @@ of times the call was executed will be printed. This will usually be
and
thus
may
not
return
every
time
they
are
called
.
The
execution
counts
are
cumulative
.
If
the
example
program
were
executed
again
without
removing
the
@
cod
e{
.
da
}
file
,
the
count
for
the
executed
again
without
removing
the
@
fil
e{
.
da
}
file
,
the
count
for
the
number
of
times
each
line
in
the
source
was
executed
would
be
added
to
the
results
of
the
previous
run
(
s
).
This
is
potentially
useful
in
several
ways
.
For
example
,
it
could
be
used
to
accumulate
data
over
a
...
...
@@ -265,17 +265,17 @@ number of program runs as part of a test verification suite, or to
provide
more
accurate
long
-
term
information
over
a
large
number
of
program
runs
.
The
data
in
the
@
cod
e{
.
da
}
files
is
saved
immediately
before
the
program
exits
.
For
each
source
file
compiled
with
-
fprofile
-
arcs
,
the
profiling
code
first
attempts
to
read
in
an
existing
@
cod
e{
.
da
}
file
;
if
the
file
The
data
in
the
@
fil
e{
.
da
}
files
is
saved
immediately
before
the
program
exits
.
For
each
source
file
compiled
with
@option{
-
fprofile
-
arcs
}
,
the
profiling
code
first
attempts
to
read
in
an
existing
@
fil
e{
.
da
}
file
;
if
the
file
doesn
'
t
match
the
executable
(
differing
number
of
basic
block
counts
)
it
will
ignore
the
contents
of
the
file
.
It
then
adds
in
the
new
execution
counts
and
finally
writes
the
data
to
the
file
.
@node
Gcov
and
Optimization
@section
Using
@co
de
{
gcov
}
with
GCC
Optimization
@section
Using
@co
mmand
{
gcov
}
with
GCC
Optimization
If
you
plan
to
use
@co
de
{
gcov
}
to
help
optimize
your
code
,
you
must
If
you
plan
to
use
@co
mmand
{
gcov
}
to
help
optimize
your
code
,
you
must
first
compile
your
program
with
two
special
@sc{
gnu
}
CC
options
:
@samp
{
-
fprofile
-
arcs
-
ftest
-
coverage
}.
Aside
from
that
,
you
can
use
any
other
@sc
{
gnu
}
CC
options
;
but
if
you
want
to
prove
that
every
single
line
...
...
@@ -293,9 +293,9 @@ else
@noindent
can
be
compiled
into
one
instruction
on
some
machines
.
In
this
case
,
there
is
no
way
for
@co
de
{
gcov
}
to
calculate
separate
execution
counts
there
is
no
way
for
@co
mmand
{
gcov
}
to
calculate
separate
execution
counts
for
each
line
because
there
isn
'
t
separate
code
for
each
line
.
Hence
the
@co
de
{
gcov
}
output
looks
like
this
if
you
compiled
the
program
with
the
@co
mmand
{
gcov
}
output
looks
like
this
if
you
compiled
the
program
with
optimization:
@smallexample
...
...
@@ -313,21 +313,21 @@ many times the result was 1.
@c
man
end
@node
Gcov
Data
Files
@section
Brief
description
of
@co
de
{
gcov
}
data
files
@section
Brief
description
of
@co
mmand
{
gcov
}
data
files
@co
de
{
gcov
}
uses
three
files
for
doing
profiling
.
The
names
of
these
@co
mmand
{
gcov
}
uses
three
files
for
doing
profiling
.
The
names
of
these
files
are
derived
from
the
original
@emph{
source
}
file
by
substituting
the
file
suffix
with
either
@
code{
.
bb
}
,
@code{
.
bbg
}
,
or
@cod
e{
.
da
}
.
All
the
file
suffix
with
either
@
file{
.
bb
}
,
@file{
.
bbg
}
,
or
@fil
e{
.
da
}
.
All
of
these
files
are
placed
in
the
same
directory
as
the
source
file
,
and
contain
data
stored
in
a
platform
-
independent
method
.
The
@
code{
.
bb
}
and
@cod
e{
.
bbg
}
files
are
generated
when
the
source
file
is
compiled
with
the
@sc{
gnu
}
CC
@
samp
{
-
ftest
-
coverage
}
option
.
The
@
cod
e{
.
bb
}
file
contains
a
list
of
source
files
(
including
headers
),
The
@
file{
.
bb
}
and
@fil
e{
.
bbg
}
files
are
generated
when
the
source
file
is
compiled
with
the
@sc{
gnu
}
CC
@
option
{
-
ftest
-
coverage
}
option
.
The
@
fil
e{
.
bb
}
file
contains
a
list
of
source
files
(
including
headers
),
functions
within
those
files
,
and
line
numbers
corresponding
to
each
basic
block
in
the
source
file
.
The
@
cod
e{
.
bb
}
file
format
consists
of
several
lists
of
4
-
byte
integers
The
@
fil
e{
.
bb
}
file
format
consists
of
several
lists
of
4
-
byte
integers
which
correspond
to
the
line
numbers
of
each
basic
block
in
the
file
.
Each
list
is
terminated
by
a
line
number
of
0
.
A
line
number
of
-
1
is
used
to
designate
that
the
source
file
name
(
padded
to
a
4
-
byte
...
...
@@ -335,13 +335,13 @@ boundary and followed by another -1) follows. In addition, a line number
of
-
2
is
used
to
designate
that
the
name
of
a
function
(
also
padded
to
a
4
-
byte
boundary
and
followed
by
a
-
2
)
follows
.
The
@
cod
e{
.
bbg
}
file
is
used
to
reconstruct
the
program
flow
graph
for
The
@
fil
e{
.
bbg
}
file
is
used
to
reconstruct
the
program
flow
graph
for
the
source
file
.
It
contains
a
list
of
the
program
flow
arcs
(
possible
branches
taken
from
one
basic
block
to
another
)
for
each
function
which
,
in
combination
with
the
@
cod
e{
.
bb
}
file
,
enables
gcov
to
reconstruct
the
in
combination
with
the
@
fil
e{
.
bb
}
file
,
enables
gcov
to
reconstruct
the
program
flow
.
In
the
@
cod
e{
.
bbg
}
file
,
the
format
is
:
In
the
@
fil
e{
.
bbg
}
file
,
the
format
is
:
@smallexample
number
of
basic
blocks
for
function
#
0
(
4
-
byte
number
)
total
number
of
arcs
for
function
#
0
(
4
-
byte
number
)
...
...
@@ -363,24 +363,24 @@ A -1 (stored as a 4-byte number) is used to separate each function's
list
of
basic
blocks
,
and
to
verify
that
the
file
has
been
read
correctly
.
The
@
cod
e
{.
da
}
file
is
generated
when
a
program
containing
object
files
built
with
the
@sc
{
gnu
}
CC
@
samp
{
-
fprofile
-
arcs
}
option
is
executed
.
A
separate
@
cod
e
{.
da
}
file
is
created
for
each
source
file
compiled
with
this
option
,
and
the
name
of
the
@
cod
e
{.
da
}
file
is
stored
as
an
The
@
fil
e
{.
da
}
file
is
generated
when
a
program
containing
object
files
built
with
the
@sc
{
gnu
}
CC
@
option
{
-
fprofile
-
arcs
}
option
is
executed
.
A
separate
@
fil
e
{.
da
}
file
is
created
for
each
source
file
compiled
with
this
option
,
and
the
name
of
the
@
fil
e
{.
da
}
file
is
stored
as
an
absolute
pathname
in
the
resulting
object
file
.
This
path
name
is
derived
from
the
source
file
name
by
substituting
a
@
cod
e
{.
da
}
suffix
.
derived
from
the
source
file
name
by
substituting
a
@
fil
e
{.
da
}
suffix
.
The
format
of
the
@
cod
e
{.
da
}
file
is
fairly
simple
.
The
first
8
-
byte
The
format
of
the
@
fil
e
{.
da
}
file
is
fairly
simple
.
The
first
8
-
byte
number
is
the
number
of
counts
in
the
file
,
followed
by
the
counts
(
stored
as
8
-
byte
numbers
).
Each
count
corresponds
to
the
number
of
times
each
arc
in
the
program
is
executed
.
The
counts
are
cumulative
;
each
time
the
program
is
executed
,
it
attempts
to
combine
the
existing
@
cod
e
{.
da
}
files
with
the
new
counts
for
this
invocation
of
the
program
.
It
ignores
the
contents
of
any
@
cod
e
{.
da
}
files
whose
number
of
@
fil
e
{.
da
}
files
with
the
new
counts
for
this
invocation
of
the
program
.
It
ignores
the
contents
of
any
@
fil
e
{.
da
}
files
whose
number
of
arcs
doesn
'
t
correspond
to
the
current
program
,
and
merely
overwrites
them
instead
.
All
three
of
these
files
use
the
functions
in
@
cod
e
{
gcov
-
io
.
h
}
to
store
All
three
of
these
files
use
the
functions
in
@
fil
e
{
gcov
-
io
.
h
}
to
store
integers
;
the
functions
in
this
header
provide
a
machine
-
independent
mechanism
for
storing
and
retrieving
data
from
a
stream
.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment