From 275e26025883605aa312521524e2ed9d8ba7e941 Mon Sep 17 00:00:00 2001 From: Kostya Serebryany Date: Tue, 25 Oct 2016 23:52:25 +0000 Subject: [PATCH] [libFuzzer] simplify the code in TracePC::HandleTrace llvm-svn: 285142 --- llvm/lib/Fuzzer/FuzzerLoop.cpp | 1 - llvm/lib/Fuzzer/FuzzerTracePC.cpp | 9 ++++++++- llvm/lib/Fuzzer/FuzzerTracePC.h | 4 +--- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/llvm/lib/Fuzzer/FuzzerLoop.cpp b/llvm/lib/Fuzzer/FuzzerLoop.cpp index 177702a..ad2e6d7 100644 --- a/llvm/lib/Fuzzer/FuzzerLoop.cpp +++ b/llvm/lib/Fuzzer/FuzzerLoop.cpp @@ -160,7 +160,6 @@ Fuzzer::Fuzzer(UserCallback CB, InputCorpus &Corpus, MutationDispatcher &MD, InitializeTraceState(); assert(!F); F = this; - TPC.ResetTotalPCCoverage(); TPC.ResetMaps(); TPC.ResetGuards(); ResetCoverage(); diff --git a/llvm/lib/Fuzzer/FuzzerTracePC.cpp b/llvm/lib/Fuzzer/FuzzerTracePC.cpp index ed411f1..e17a10b 100644 --- a/llvm/lib/Fuzzer/FuzzerTracePC.cpp +++ b/llvm/lib/Fuzzer/FuzzerTracePC.cpp @@ -35,7 +35,6 @@ void TracePC::HandleTrace(uint32_t *Guard, uintptr_t PC) { if (Counter == 0) { if (!PCs[Idx % kNumPCs]) { AddNewPCID(Idx); - TotalPCCoverage++; PCs[Idx % kNumPCs] = PC; } } @@ -50,6 +49,14 @@ void TracePC::HandleTrace(uint32_t *Guard, uintptr_t PC) { } } +size_t TracePC::GetTotalPCCoverage() { + size_t Res = 0; + for (size_t i = 0; i < Min(NumGuards+1, kNumPCs); i++) + if (PCs[i]) + Res++; + return Res; +} + void TracePC::HandleInit(uint32_t *Start, uint32_t *Stop) { if (Start == Stop || *Start) return; assert(NumModules < sizeof(Modules) / sizeof(Modules[0])); diff --git a/llvm/lib/Fuzzer/FuzzerTracePC.h b/llvm/lib/Fuzzer/FuzzerTracePC.h index 7be10da..17c5575 100644 --- a/llvm/lib/Fuzzer/FuzzerTracePC.h +++ b/llvm/lib/Fuzzer/FuzzerTracePC.h @@ -50,8 +50,7 @@ class TracePC { void HandleCallerCallee(uintptr_t Caller, uintptr_t Callee); void HandleValueProfile(size_t Value) { ValueProfileMap.AddValue(Value); } template void HandleCmp(void *PC, T Arg1, T Arg2); - size_t GetTotalPCCoverage() { return TotalPCCoverage; } - void ResetTotalPCCoverage() { TotalPCCoverage = 0; } + size_t GetTotalPCCoverage(); void SetUseCounters(bool UC) { UseCounters = UC; } void SetUseValueProfile(bool VP) { UseValueProfile = VP; } size_t FinalizeTrace(InputCorpus *C, size_t InputSize, bool Shrink); @@ -95,7 +94,6 @@ class TracePC { private: bool UseCounters = false; bool UseValueProfile = false; - size_t TotalPCCoverage = 0; static const size_t kMaxNewPCIDs = 1024; uintptr_t NewPCIDs[kMaxNewPCIDs]; -- 2.7.4