[all-commits] [llvm/llvm-project] 813848: [BrachProbablityInfo] Set edge probabilities at on...
Yevgeny Rouban via All-commits
all-commits at lists.llvm.org
Wed May 20 23:04:48 PDT 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 8138487468e22cf8fa1a86816a1e3247b8010760
https://github.com/llvm/llvm-project/commit/8138487468e22cf8fa1a86816a1e3247b8010760
Author: Yevgeny Rouban <yrouban at azul.com>
Date: 2020-05-21 (Thu, 21 May 2020)
Changed paths:
M llvm/include/llvm/Analysis/BranchProbabilityInfo.h
M llvm/lib/Analysis/BranchProbabilityInfo.cpp
M llvm/lib/Transforms/Scalar/JumpThreading.cpp
M llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp
M llvm/lib/Transforms/Utils/CodeExtractor.cpp
M llvm/test/Analysis/BranchProbabilityInfo/basic.ll
M llvm/unittests/Transforms/Utils/BasicBlockUtilsTest.cpp
Log Message:
-----------
[BrachProbablityInfo] Set edge probabilities at once and fix calcMetadataWeights()
Hide the method that allows setting probability for particular edge
and introduce a public method that sets probabilities for all
outgoing edges at once.
Setting individual edge probability is error prone. More over it is
difficult to check that the total probability is 1.0 because there is
no easy way to know when the user finished setting all
the probabilities.
Related bug is fixed in BranchProbabilityInfo::calcMetadataWeights().
Changing unreachable branch probabilities to raw(1) and distributing
the rest (oldProbability - raw(1)) over the reachable branches could
introduce total probability inaccuracy bigger than 1/numOfBranches.
Reviewers: yamauchi, ebrevnov
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79396
More information about the All-commits
mailing list