@@ -495,44 +495,6 @@ TEST_F(InstrProfTest, test_memprof_v0) {
495495 EXPECT_THAT (WantRecord, EqualsRecord (Record));
496496}
497497
498- struct CallStackIdConverter {
499- std::optional<memprof::FrameId> LastUnmappedFrameId;
500- std::optional<memprof::CallStackId> LastUnmappedCSId;
501-
502- const FrameIdMapTy &IdToFrameMap;
503- const CallStackIdMapTy &CSIdToCallStackMap;
504-
505- CallStackIdConverter () = delete ;
506- CallStackIdConverter (const FrameIdMapTy &IdToFrameMap,
507- const CallStackIdMapTy &CSIdToCallStackMap)
508- : IdToFrameMap(IdToFrameMap), CSIdToCallStackMap(CSIdToCallStackMap) {}
509-
510- llvm::SmallVector<memprof::Frame>
511- operator ()(::llvm::memprof::CallStackId CSId) {
512- auto IdToFrameCallback = [&](const memprof::FrameId Id) {
513- auto Iter = IdToFrameMap.find (Id);
514- if (Iter == IdToFrameMap.end ()) {
515- LastUnmappedFrameId = Id;
516- return memprof::Frame (0 , 0 , 0 , false );
517- }
518- return Iter->second ;
519- };
520-
521- llvm::SmallVector<memprof::Frame> Frames;
522- auto CSIter = CSIdToCallStackMap.find (CSId);
523- if (CSIter == CSIdToCallStackMap.end ()) {
524- LastUnmappedCSId = CSId;
525- } else {
526- const ::llvm::SmallVector<::llvm::memprof::FrameId> &CS =
527- CSIter->getSecond ();
528- Frames.reserve (CS.size ());
529- for (::llvm::memprof::FrameId Id : CS)
530- Frames.push_back (IdToFrameCallback (Id));
531- }
532- return Frames;
533- }
534- };
535-
536498TEST_F (InstrProfTest, test_memprof_v2_full_schema) {
537499 const MemInfoBlock MIB = makeFullMIB ();
538500
@@ -562,14 +524,16 @@ TEST_F(InstrProfTest, test_memprof_v2_full_schema) {
562524 ASSERT_THAT_ERROR (RecordOr.takeError (), Succeeded ());
563525 const memprof::MemProfRecord &Record = RecordOr.get ();
564526
565- CallStackIdConverter CSIdConv (IdToFrameMap, CSIdToCallStackMap);
527+ memprof::FrameIdConverter<decltype (IdToFrameMap)> FrameIdConv (IdToFrameMap);
528+ memprof::CallStackIdConverter<decltype (CSIdToCallStackMap)> CSIdConv (
529+ CSIdToCallStackMap, FrameIdConv);
566530
567531 const ::llvm::memprof::MemProfRecord WantRecord =
568532 IndexedMR.toMemProfRecord (CSIdConv);
569- ASSERT_EQ (CSIdConv. LastUnmappedFrameId , std::nullopt )
570- << " could not map frame id: " << *CSIdConv. LastUnmappedFrameId ;
571- ASSERT_EQ (CSIdConv.LastUnmappedCSId , std::nullopt )
572- << " could not map call stack id: " << *CSIdConv.LastUnmappedCSId ;
533+ ASSERT_EQ (FrameIdConv. LastUnmappedId , std::nullopt )
534+ << " could not map frame id: " << *FrameIdConv. LastUnmappedId ;
535+ ASSERT_EQ (CSIdConv.LastUnmappedId , std::nullopt )
536+ << " could not map call stack id: " << *CSIdConv.LastUnmappedId ;
573537 EXPECT_THAT (WantRecord, EqualsRecord (Record));
574538}
575539
@@ -602,14 +566,16 @@ TEST_F(InstrProfTest, test_memprof_v2_partial_schema) {
602566 ASSERT_THAT_ERROR (RecordOr.takeError (), Succeeded ());
603567 const memprof::MemProfRecord &Record = RecordOr.get ();
604568
605- CallStackIdConverter CSIdConv (IdToFrameMap, CSIdToCallStackMap);
569+ memprof::FrameIdConverter<decltype (IdToFrameMap)> FrameIdConv (IdToFrameMap);
570+ memprof::CallStackIdConverter<decltype (CSIdToCallStackMap)> CSIdConv (
571+ CSIdToCallStackMap, FrameIdConv);
606572
607573 const ::llvm::memprof::MemProfRecord WantRecord =
608574 IndexedMR.toMemProfRecord (CSIdConv);
609- ASSERT_EQ (CSIdConv. LastUnmappedFrameId , std::nullopt )
610- << " could not map frame id: " << *CSIdConv. LastUnmappedFrameId ;
611- ASSERT_EQ (CSIdConv.LastUnmappedCSId , std::nullopt )
612- << " could not map call stack id: " << *CSIdConv.LastUnmappedCSId ;
575+ ASSERT_EQ (FrameIdConv. LastUnmappedId , std::nullopt )
576+ << " could not map frame id: " << *FrameIdConv. LastUnmappedId ;
577+ ASSERT_EQ (CSIdConv.LastUnmappedId , std::nullopt )
578+ << " could not map call stack id: " << *CSIdConv.LastUnmappedId ;
613579 EXPECT_THAT (WantRecord, EqualsRecord (Record));
614580}
615581
0 commit comments