summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
diff options
context:
space:
mode:
authorXinliang David Li <davidxl@google.com>2016-08-19 06:31:45 +0000
committerXinliang David Li <davidxl@google.com>2016-08-19 06:31:45 +0000
commit63248ab8887ab026e75231dde8eb4e676b8cc0d9 (patch)
treeca746a80010568af0b048424b168a99f5c17a999 /llvm/lib/Transforms
parent18b91112af485fbe3341641a92d7144cee500f43 (diff)
downloadbcm5719-llvm-63248ab8887ab026e75231dde8eb4e676b8cc0d9.tar.gz
bcm5719-llvm-63248ab8887ab026e75231dde8eb4e676b8cc0d9.zip
[Profile] Fix edge count read bug
Use uint64_t to avoid value truncation before scaling. llvm-svn: 279213
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r--llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp b/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
index 0865d16756b..707329cf67e 100644
--- a/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
+++ b/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
@@ -821,7 +821,7 @@ void PGOUseFunc::populateCounters() {
}
static void setProfMetadata(Module *M, TerminatorInst *TI,
- ArrayRef<unsigned> EdgeCounts, uint64_t MaxCount) {
+ ArrayRef<uint64_t> EdgeCounts, uint64_t MaxCount) {
MDBuilder MDB(M->getContext());
assert(MaxCount > 0 && "Bad max count");
uint64_t Scale = calculateCountScale(MaxCount);
@@ -851,7 +851,7 @@ void PGOUseFunc::setBranchWeights() {
// We have a non-zero Branch BB.
const UseBBInfo &BBCountInfo = getBBInfo(&BB);
unsigned Size = BBCountInfo.OutEdges.size();
- SmallVector<unsigned, 2> EdgeCounts(Size, 0);
+ SmallVector<uint64_t, 2> EdgeCounts(Size, 0);
uint64_t MaxCount = 0;
for (unsigned s = 0; s < Size; s++) {
const PGOUseEdge *E = BBCountInfo.OutEdges[s];
OpenPOWER on IntegriCloud