diff --git a/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h b/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h index 2a857917136a84..33fa17ba811fa7 100644 --- a/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h +++ b/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h @@ -587,8 +587,9 @@ class CounterMappingContext { /// Return an MCDC record that indicates executed test vectors and condition /// pairs. Expected - evaluateMCDCRegion(CounterMappingRegion Region, BitVector Bitmap, - ArrayRef Branches); + evaluateMCDCRegion(const CounterMappingRegion &Region, + const BitVector &Bitmap, + ArrayRef Branches); unsigned getMaxCounterID(const Counter &C) const; }; diff --git a/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp b/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp index eece6a2cc71797..3e2746ea759765 100644 --- a/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp +++ b/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp @@ -247,14 +247,14 @@ class MCDCRecordProcessor { /// Each index of the bitmap corresponds to a possible test vector. An index /// with a bit value of '1' indicates that the corresponding Test Vector /// identified by that index was executed. - BitVector &ExecutedTestVectorBitmap; + const BitVector &ExecutedTestVectorBitmap; /// Decision Region to which the ExecutedTestVectorBitmap applies. - CounterMappingRegion &Region; + const CounterMappingRegion &Region; /// Array of branch regions corresponding each conditions in the boolean /// expression. - ArrayRef Branches; + ArrayRef Branches; /// Total number of conditions in the boolean expression. unsigned NumConditions; @@ -276,8 +276,9 @@ class MCDCRecordProcessor { MCDCRecord::TestVectors ExecVectors; public: - MCDCRecordProcessor(BitVector &Bitmap, CounterMappingRegion &Region, - ArrayRef Branches) + MCDCRecordProcessor(const BitVector &Bitmap, + const CounterMappingRegion &Region, + ArrayRef Branches) : ExecutedTestVectorBitmap(Bitmap), Region(Region), Branches(Branches), NumConditions(Region.MCDCParams.NumConditions), Folded(NumConditions, false), IndependencePairs(NumConditions), @@ -342,7 +343,7 @@ class MCDCRecordProcessor { /// Walk the bits in the bitmap. A bit set to '1' indicates that the test /// vector at the corresponding index was executed during a test run. - void findExecutedTestVectors(BitVector &ExecutedTestVectorBitmap) { + void findExecutedTestVectors(const BitVector &ExecutedTestVectorBitmap) { for (unsigned Idx = 0; Idx < ExecutedTestVectorBitmap.size(); ++Idx) { if (ExecutedTestVectorBitmap[Idx] == 0) continue; @@ -445,11 +446,11 @@ class MCDCRecordProcessor { // visualize where the condition is. // - Record whether the condition is constant folded so that we exclude it // from being measured. - for (const auto &B : Branches) { - Map[B.MCDCParams.ID] = &B; - PosToID[I] = B.MCDCParams.ID - 1; - CondLoc[I] = B.startLoc(); - Folded[I++] = (B.Count.isZero() && B.FalseCount.isZero()); + for (const auto *B : Branches) { + Map[B->MCDCParams.ID] = B; + PosToID[I] = B->MCDCParams.ID - 1; + CondLoc[I] = B->startLoc(); + Folded[I++] = (B->Count.isZero() && B->FalseCount.isZero()); } // Initialize a base test vector as 'DontCare'. @@ -473,8 +474,9 @@ class MCDCRecordProcessor { }; Expected CounterMappingContext::evaluateMCDCRegion( - CounterMappingRegion Region, BitVector ExecutedTestVectorBitmap, - ArrayRef Branches) { + const CounterMappingRegion &Region, + const BitVector &ExecutedTestVectorBitmap, + ArrayRef Branches) { MCDCRecordProcessor MCDCProcessor(ExecutedTestVectorBitmap, Region, Branches); return MCDCProcessor.processMCDCRecord(); @@ -638,7 +640,7 @@ Error CoverageMapping::loadFunctionRecord( unsigned NumConds = 0; const CounterMappingRegion *MCDCDecision; - std::vector MCDCBranches; + std::vector MCDCBranches; FunctionRecord Function(OrigFuncName, Record.Filenames); for (const auto &Region : Record.MappingRegions) { @@ -666,7 +668,7 @@ Error CoverageMapping::loadFunctionRecord( // correspond to it in a vector, according to the number of conditions // recorded for the region (tracked by NumConds). if (NumConds > 0 && Region.Kind == CounterMappingRegion::MCDCBranchRegion) { - MCDCBranches.push_back(Region); + MCDCBranches.push_back(&Region); // As we move through all of the MCDCBranchRegions that follow the // MCDCDecisionRegion, decrement NumConds to make sure we account for