}
size_t TracePC::GetTotalPCCoverage() {
- if (ObservedPCs)
- return ObservedPCs->size();
+ if (ObservedPCs.size())
+ return ObservedPCs.size();
size_t Res = 0;
for (size_t i = 1, N = GetNumPCs(); i < N; i++)
if (PCs()[i])
void TracePC::UpdateObservedPCs() {
if (NumPCsInPCTables) {
auto Observe = [&](uintptr_t PC) {
- bool Inserted = ObservedPCs->insert(PC).second;
+ bool Inserted = ObservedPCs.insert(PC).second;
if (Inserted && DoPrintNewPCs)
PrintPC("\tNEW_PC: %p %F %L\n", "\tNEW_PC: %p\n", PC + 1);
};
- if (!ObservedPCs)
- ObservedPCs = new std::set<uintptr_t>;
-
if (NumInline8bitCounters == NumPCsInPCTables) {
for (size_t i = 0; i < NumModulesWithInline8bitCounters; i++) {
uint8_t *Beg = ModuleCounters[i].Start;
for (auto Ptr = M.Start; Ptr < M.Stop; Ptr++) {
auto PC = *Ptr;
auto VisualizePC = GetNextInstructionPc(PC);
- bool IsObserved = ObservedPCs->count(PC);
+ bool IsObserved = ObservedPCs.count(PC);
std::string FileStr = DescribePC("%s", VisualizePC);
if (!IsInterestingCoverageFile(FileStr)) continue;
std::string FunctionStr = DescribePC("%F", VisualizePC);
template<class CallBack>
void ForEachObservedPC(CallBack CB) {
- if (ObservedPCs)
- for (auto PC : *ObservedPCs)
- CB(PC);
+ for (auto PC : ObservedPCs)
+ CB(PC);
}
private:
uint8_t *Counters() const;
uintptr_t *PCs() const;
- std::set<uintptr_t> *ObservedPCs;
+ std::set<uintptr_t> ObservedPCs;
ValueBitMap ValueProfileMap;
uintptr_t InitialStack, LowestStack; // Assume stack grows down.