summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Fuzzer/FuzzerLoop.cpp1
-rw-r--r--llvm/lib/Fuzzer/FuzzerTracePC.cpp9
-rw-r--r--llvm/lib/Fuzzer/FuzzerTracePC.h4
3 files changed, 9 insertions, 5 deletions
diff --git a/llvm/lib/Fuzzer/FuzzerLoop.cpp b/llvm/lib/Fuzzer/FuzzerLoop.cpp
index 177702a3f7e..ad2e6d7c880 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 ed411f1164b..e17a10b55c7 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 7be10dae16d..17c5575e315 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 <class T> 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];
OpenPOWER on IntegriCloud