InstrProf: Make CounterMappingRegions less confusing to construct

Creating empty and expansion regions is awkward with the current API.
Expose static methods to make this simpler.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@228075 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Justin Bogner
2015-02-03 23:59:33 +00:00
parent f041861302
commit bf67bfe6bb
2 changed files with 32 additions and 10 deletions

View File

@@ -163,12 +163,35 @@ struct CounterMappingRegion {
unsigned LineStart, ColumnStart, LineEnd, ColumnEnd; unsigned LineStart, ColumnStart, LineEnd, ColumnEnd;
RegionKind Kind; RegionKind Kind;
CounterMappingRegion(Counter Count, unsigned FileID, unsigned LineStart, CounterMappingRegion(Counter Count, unsigned FileID, unsigned ExpandedFileID,
unsigned ColumnStart, unsigned LineEnd, unsigned LineStart, unsigned ColumnStart,
unsigned ColumnEnd, RegionKind Kind = CodeRegion) unsigned LineEnd, unsigned ColumnEnd, RegionKind Kind)
: Count(Count), FileID(FileID), ExpandedFileID(0), LineStart(LineStart), : Count(Count), FileID(FileID), ExpandedFileID(ExpandedFileID),
ColumnStart(ColumnStart), LineEnd(LineEnd), ColumnEnd(ColumnEnd), LineStart(LineStart), ColumnStart(ColumnStart), LineEnd(LineEnd),
Kind(Kind) {} ColumnEnd(ColumnEnd), Kind(Kind) {}
static CounterMappingRegion
makeRegion(Counter Count, unsigned FileID, unsigned LineStart,
unsigned ColumnStart, unsigned LineEnd, unsigned ColumnEnd) {
return CounterMappingRegion(Count, FileID, 0, LineStart, ColumnStart,
LineEnd, ColumnEnd, CodeRegion);
}
static CounterMappingRegion
makeExpansion(unsigned FileID, unsigned ExpandedFileID, unsigned LineStart,
unsigned ColumnStart, unsigned LineEnd, unsigned ColumnEnd) {
return CounterMappingRegion(Counter(), FileID, ExpandedFileID, LineStart,
ColumnStart, LineEnd, ColumnEnd,
ExpansionRegion);
}
static CounterMappingRegion
makeSkipped(unsigned FileID, unsigned LineStart, unsigned ColumnStart,
unsigned LineEnd, unsigned ColumnEnd) {
return CounterMappingRegion(Counter(), FileID, 0, LineStart, ColumnStart,
LineEnd, ColumnEnd, SkippedRegion);
}
inline std::pair<unsigned, unsigned> startLoc() const { inline std::pair<unsigned, unsigned> startLoc() const {
return std::pair<unsigned, unsigned>(LineStart, ColumnStart); return std::pair<unsigned, unsigned>(LineStart, ColumnStart);

View File

@@ -210,10 +210,9 @@ std::error_code RawCoverageMappingReader::readMappingRegionsSubArray(
dbgs() << "\n"; dbgs() << "\n";
}); });
MappingRegions.push_back( MappingRegions.push_back(CounterMappingRegion(
CounterMappingRegion(C, InferredFileID, LineStart, ColumnStart, C, InferredFileID, ExpandedFileID, LineStart, ColumnStart,
LineStart + NumLines, ColumnEnd, Kind)); LineStart + NumLines, ColumnEnd, Kind));
MappingRegions.back().ExpandedFileID = ExpandedFileID;
} }
return success(); return success();
} }