[BOLT][NFC] Use std::optional in DataAggregator
authorAmir Ayupov <aaupov@fb.com>
Sun, 11 Dec 2022 19:57:30 +0000 (11:57 -0800)
committerAmir Ayupov <aaupov@fb.com>
Mon, 12 Dec 2022 06:13:46 +0000 (22:13 -0800)
bolt/include/bolt/Profile/DataAggregator.h
bolt/lib/Profile/DataAggregator.cpp

index e598d1a..7f96f4f 100644 (file)
@@ -346,10 +346,10 @@ private:
   ErrorOr<std::pair<StringRef, MMapInfo>> parseMMapEvent();
 
   /// Parse PERF_RECORD_FORK event.
-  Optional<ForkInfo> parseForkEvent();
+  std::optional<ForkInfo> parseForkEvent();
 
   /// Parse 'PERF_RECORD_COMM exec'. Don't consume the string.
-  Optional<int32_t> parseCommExecEvent();
+  std::optional<int32_t> parseCommExecEvent();
 
   /// Parse the full output generated by `perf script --show-mmap-events`
   /// to generate mapping between binary files and their memory mappings for
@@ -361,7 +361,7 @@ private:
   std::error_code parseTaskEvents();
 
   /// Parse a single pair of binary full path and associated build-id
-  Optional<std::pair<StringRef, StringRef>> parseNameBuildIDPair();
+  std::optional<std::pair<StringRef, StringRef>> parseNameBuildIDPair();
 
   /// Coordinate reading and parsing of pre-aggregated file
   ///
@@ -480,7 +480,7 @@ public:
 
   /// Parse the output generated by "perf buildid-list" to extract build-ids
   /// and return a file name matching a given \p FileBuildID.
-  Optional<StringRef> getFileNameForBuildID(StringRef FileBuildID);
+  std::optional<StringRef> getFileNameForBuildID(StringRef FileBuildID);
 };
 } // namespace bolt
 } // namespace llvm
index 2fedd57..39c07a3 100644 (file)
@@ -299,7 +299,7 @@ void DataAggregator::processFileBuildID(StringRef FileBuildID) {
   FileBuf = std::move(*MB);
   ParsingBuf = FileBuf->getBuffer();
 
-  Optional<StringRef> FileName = getFileNameForBuildID(FileBuildID);
+  std::optional<StringRef> FileName = getFileNameForBuildID(FileBuildID);
   if (!FileName) {
     if (hasAllBuildIDs()) {
       errs() << "PERF2BOLT-ERROR: failed to match build-id from perf output. "
@@ -1823,7 +1823,7 @@ void DataAggregator::processPreAggregated() {
   outs() << "\n";
 }
 
-Optional<int32_t> DataAggregator::parseCommExecEvent() {
+std::optional<int32_t> DataAggregator::parseCommExecEvent() {
   size_t LineEnd = ParsingBuf.find_first_of("\n");
   if (LineEnd == StringRef::npos) {
     reportError("expected rest of line");
@@ -1851,7 +1851,7 @@ Optional<int32_t> DataAggregator::parseCommExecEvent() {
 }
 
 namespace {
-Optional<uint64_t> parsePerfTime(const StringRef TimeStr) {
+std::optional<uint64_t> parsePerfTime(const StringRef TimeStr) {
   const StringRef SecTimeStr = TimeStr.split('.').first;
   const StringRef USecTimeStr = TimeStr.split('.').second;
   uint64_t SecTime;
@@ -1863,7 +1863,7 @@ Optional<uint64_t> parsePerfTime(const StringRef TimeStr) {
 }
 }
 
-Optional<DataAggregator::ForkInfo> DataAggregator::parseForkEvent() {
+std::optional<DataAggregator::ForkInfo> DataAggregator::parseForkEvent() {
   while (checkAndConsumeFS()) {
   }
 
@@ -1885,7 +1885,7 @@ Optional<DataAggregator::ForkInfo> DataAggregator::parseForkEvent() {
 
   const StringRef TimeStr =
       Line.substr(0, Pos).rsplit(':').first.rsplit(FieldSeparator).second;
-  if (Optional<uint64_t> TimeRes = parsePerfTime(TimeStr)) {
+  if (std::optional<uint64_t> TimeRes = parsePerfTime(TimeStr)) {
     FI.Time = *TimeRes;
   }
 
@@ -1938,7 +1938,7 @@ DataAggregator::parseMMapEvent() {
 
   const StringRef TimeStr =
       Line.substr(0, Pos).rsplit(':').first.rsplit(FieldSeparator).second;
-  if (Optional<uint64_t> TimeRes = parsePerfTime(TimeStr))
+  if (std::optional<uint64_t> TimeRes = parsePerfTime(TimeStr))
     ParsedInfo.Time = *TimeRes;
 
   Line = Line.drop_front(Pos);
@@ -2103,7 +2103,7 @@ std::error_code DataAggregator::parseTaskEvents() {
                      TimerGroupDesc, opts::TimeAggregator);
 
   while (hasData()) {
-    if (Optional<int32_t> CommInfo = parseCommExecEvent()) {
+    if (std::optional<int32_t> CommInfo = parseCommExecEvent()) {
       // Remove forked child that ran execve
       auto MMapInfoIter = BinaryMMapInfo.find(*CommInfo);
       if (MMapInfoIter != BinaryMMapInfo.end() && MMapInfoIter->second.Forked)
@@ -2112,7 +2112,7 @@ std::error_code DataAggregator::parseTaskEvents() {
       continue;
     }
 
-    Optional<ForkInfo> ForkInfo = parseForkEvent();
+    std::optional<ForkInfo> ForkInfo = parseForkEvent();
     if (!ForkInfo)
       continue;
 
@@ -2148,7 +2148,7 @@ std::error_code DataAggregator::parseTaskEvents() {
   return std::error_code();
 }
 
-Optional<std::pair<StringRef, StringRef>>
+std::optional<std::pair<StringRef, StringRef>>
 DataAggregator::parseNameBuildIDPair() {
   while (checkAndConsumeFS()) {
   }
@@ -2190,13 +2190,14 @@ bool DataAggregator::hasAllBuildIDs() {
   return !HasInvalidEntries;
 }
 
-Optional<StringRef>
+std::optional<StringRef>
 DataAggregator::getFileNameForBuildID(StringRef FileBuildID) {
   const StringRef SavedParsingBuf = ParsingBuf;
 
   StringRef FileName;
   while (hasData()) {
-    Optional<std::pair<StringRef, StringRef>> IDPair = parseNameBuildIDPair();
+    std::optional<std::pair<StringRef, StringRef>> IDPair =
+        parseNameBuildIDPair();
     if (!IDPair) {
       consumeRestOfLine();
       continue;