[llvm] [Coverage] Rework Decision/Expansion/Branch (PR #78969)
NAKAMURA Takumi via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 25 03:26:22 PST 2024
================
@@ -582,6 +583,87 @@ static unsigned getMaxBitmapSize(const CounterMappingContext &Ctx,
return MaxBitmapID + (SizeInBits / CHAR_BIT);
}
+/// This holds the DecisionRegion and MCDCBranch(es) under it.
+/// Also traverses Expansion(s).
+struct DecisionRow {
+ /// The subject
+ const CounterMappingRegion *DecisionRegion;
+
+ /// They are reflected from `DecisionRegion` for convenience.
+ LineColPair DecisionStartLoc;
+ LineColPair DecisionEndLoc;
+
+ /// This is passed to `MCDCRecordProcessor`, so this should be compatible to
+ /// `ArrayRef<const CounterMappingRegion *>`.
+ SmallVector<const CounterMappingRegion *, 6> Branches;
+
+ /// Each `ID` in `Branches` should be unique.
+ DenseSet<CounterMappingRegion::MCDCConditionID> IDs;
+
+ /// Relevant `Expansion`(s) should be caught to find expanded Branches.
+ SmallVector<const CounterMappingRegion *> Expansions;
+
+ DecisionRow(const CounterMappingRegion &Decision)
+ : DecisionRegion(&Decision), DecisionStartLoc(Decision.startLoc()),
+ DecisionEndLoc(Decision.endLoc()) {}
+
+ /// Determine whether `R` is included in `DecisionRegion`.
----------------
chapuni wrote:
I haven't written doxygen comments for long time. Please point out any mistakes.
https://github.com/llvm/llvm-project/pull/78969
More information about the llvm-commits
mailing list