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
f981f97b
Commit
f981f97b
authored
Jul 23, 2001
by
Andreas Jaeger
Committed by
Andreas Jaeger
Jul 23, 2001
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* analyze_brprob: Fix more typos.
From-SVN: r44263
parent
075cc945
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
21 additions
and
17 deletions
+21
-17
contrib/ChangeLog
+4
-0
contrib/analyze_brprob
+17
-17
No files found.
contrib/ChangeLog
View file @
f981f97b
2001-07-23 Andreas Jaeger <aj@suse.de>
* analyze_brprob: Fix more typos.
2001-07-23 Andreas Jaeger <aj@suse.de>
* analyze_brprob: Fix typos.
2001-07-03 Joseph S. Myers <jsm28@cam.ac.uk>
...
...
contrib/analyze_brprob
View file @
f981f97b
#!/usr/bin/awk -f
# Script to analyze experimental results of our branch prediction heuristics
# Contributed by Jan Hubicka, SuSE
i
nc.
# Contributed by Jan Hubicka, SuSE
I
nc.
# Copyright (C) 2001 Free Software Foundation, Inc.
#
# This file is part of GNU CC.
...
...
@@ -22,28 +22,28 @@
#
#
# This script is used to calculate two basic properties of the branch prediction
# heuristics - coverage and hitrate. Coverage is number of execution
s of
given
# heuristics - coverage and hitrate. Coverage is number of execution
of a
given
# branch matched by the heuristics and hitrate is probability that once branch is
# predicted as taken it is really taken.
#
# These values are useful
l to determine quality of given heuristics and h
itrate
# These values are useful
to determine the quality of given heuristics. H
itrate
# may be directly used in predict.c.
#
# Usage:
#
s
tep 1: compile and profile your program. You need to use -fprofile-arcs
#
S
tep 1: compile and profile your program. You need to use -fprofile-arcs
# flag to get the profiles
#
s
tep 2: Generate log files. The information about given heuristics are
# saved into *.life dumps. You need to pass
-df swtich to
compiler as well
# as -fbranch-probabilities to get results of profiling noted in the dumps.
# Ensure that there
is
no "Arc profiling: some edge counts were bad." warnings.
#
S
tep 2: Generate log files. The information about given heuristics are
# saved into *.life dumps. You need to pass
the -df switch to the
compiler as well
# as -fbranch-probabilities to get
the
results of profiling noted in the dumps.
# Ensure that there
are
no "Arc profiling: some edge counts were bad." warnings.
# Keep the -fprofile-arcs switch to ensure that CFGs match.
#
step 3: Run this script to concatetation of
all *.life files:
#
Step 3: Run this script to concatenate
all *.life files:
# analyze_brprob `find . -name *.life`
# the information is collected and print once all files are parsed. This
# may take a while.
# Note that script does use bc to perform long arithmetic.
#
step 4: Read the results. Basically
following table is printed:
# (this is just
example from very early stages
of branch prediction pass
# Note that
the
script does use bc to perform long arithmetic.
#
Step 4: Read the results. Basically the
following table is printed:
# (this is just
an example from a very early stage
of branch prediction pass
# development, so please don't take these numbers seriously)
#
#HEURISTICS BRANCHES (REL) HITRATE COVERAGE (REL)
...
...
@@ -57,15 +57,15 @@
#loop branch 51 1.5% 99.26%/ 99.27% 26854 0.3%
#noreturn call 951 27.6% 100.00%/100.00% 1759809 17.6%
#
# The heuristic
s called "first match" is heuristics used by gcc
branch
# The heuristic
called "first match" is a heuristic used by GCC
branch
# prediction pass and it predicts 89.92% branches correctly.
#
# The quality of heuristics can be rated using both, coverage and hitrate
# parameters. For example "loop branch" heuristics (predicting loopback edge
# as taken) have both very high hitrate and coverage, so it is very useful
l
.
# as taken) have both very high hitrate and coverage, so it is very useful.
# On the other hand, "exit block" heuristics (predicting exit edges as not
# taken) have good hitrate, but poor coverage, so only 3 branches ha
s
been
# predicted. The "loop header" heuristic
s have problem
, since it tends to
# taken) have good hitrate, but poor coverage, so only 3 branches ha
ve
been
# predicted. The "loop header" heuristic
has problems
, since it tends to
# misspredict.
#
# The implementation of this script is somewhat brute force. My awk skills
...
...
@@ -133,7 +133,7 @@ END {
# Heuristics called combined predicts just everything.
maxcounts
=
longeval
(
counts
[
"first match"
])
maxbranches
=
branches
[
"first match"
]
max
=
names
[
"fir
a
t match"
]
max
=
names
[
"fir
s
t match"
]
printf
(
"HEURISTICS BRANCHES (REL) HITRATE COVERAGE (REL)\n"
)
for
(
i
=
0
;
i
<
nnames
;
i
++
)
{
...
...
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