22
22
23
23
#include < initializer_list>
24
24
25
+ namespace llvm {
26
+ namespace memprof {
25
27
namespace {
26
28
27
29
using ::llvm::DIGlobal;
@@ -30,22 +32,6 @@ using ::llvm::DILineInfo;
30
32
using ::llvm::DILineInfoSpecifier;
31
33
using ::llvm::DILocal;
32
34
using ::llvm::StringRef;
33
- using ::llvm::memprof::CallStackId;
34
- using ::llvm::memprof::CallStackMap;
35
- using ::llvm::memprof::Frame;
36
- using ::llvm::memprof::FrameId;
37
- using ::llvm::memprof::hashCallStack;
38
- using ::llvm::memprof::IndexedAllocationInfo;
39
- using ::llvm::memprof::IndexedMemProfData;
40
- using ::llvm::memprof::IndexedMemProfRecord;
41
- using ::llvm::memprof::MemInfoBlock;
42
- using ::llvm::memprof::MemProfReader;
43
- using ::llvm::memprof::MemProfRecord;
44
- using ::llvm::memprof::MemProfSchema;
45
- using ::llvm::memprof::Meta;
46
- using ::llvm::memprof::PortableMemInfoBlock;
47
- using ::llvm::memprof::RawMemProfReader;
48
- using ::llvm::memprof::SegmentEntry;
49
35
using ::llvm::object::SectionedAddress;
50
36
using ::llvm::symbolize::SymbolizableModule;
51
37
using ::testing::ElementsAre;
@@ -251,7 +237,7 @@ TEST(MemProf, PortableWrapper) {
251
237
/* dealloc_timestamp=*/ 2000 , /* alloc_cpu=*/ 3 ,
252
238
/* dealloc_cpu=*/ 4 , /* Histogram=*/ 0 , /* HistogramSize=*/ 0 );
253
239
254
- const auto Schema = llvm::memprof:: getFullSchema ();
240
+ const auto Schema = getFullSchema ();
255
241
PortableMemInfoBlock WriteBlock (Info, Schema);
256
242
257
243
std::string Buffer;
@@ -271,7 +257,7 @@ TEST(MemProf, PortableWrapper) {
271
257
}
272
258
273
259
TEST (MemProf, RecordSerializationRoundTripVerion2) {
274
- const auto Schema = llvm::memprof:: getFullSchema ();
260
+ const auto Schema = getFullSchema ();
275
261
276
262
MemInfoBlock Info (/* size=*/ 16 , /* access_count=*/ 7 , /* alloc_timestamp=*/ 1000 ,
277
263
/* dealloc_timestamp=*/ 2000 , /* alloc_cpu=*/ 3 ,
@@ -290,17 +276,16 @@ TEST(MemProf, RecordSerializationRoundTripVerion2) {
290
276
291
277
std::string Buffer;
292
278
llvm::raw_string_ostream OS (Buffer);
293
- Record.serialize (Schema, OS, llvm::memprof:: Version2);
279
+ Record.serialize (Schema, OS, Version2);
294
280
295
281
const IndexedMemProfRecord GotRecord = IndexedMemProfRecord::deserialize (
296
- Schema, reinterpret_cast <const unsigned char *>(Buffer.data ()),
297
- llvm::memprof::Version2);
282
+ Schema, reinterpret_cast <const unsigned char *>(Buffer.data ()), Version2);
298
283
299
284
EXPECT_EQ (Record, GotRecord);
300
285
}
301
286
302
287
TEST (MemProf, RecordSerializationRoundTripVersion2HotColdSchema) {
303
- const auto Schema = llvm::memprof:: getHotColdSchema ();
288
+ const auto Schema = getHotColdSchema ();
304
289
305
290
MemInfoBlock Info;
306
291
Info.AllocCount = 11 ;
@@ -334,22 +319,21 @@ TEST(MemProf, RecordSerializationRoundTripVersion2HotColdSchema) {
334
319
335
320
// Verify that Schema has propagated all the way to the Info field in each
336
321
// IndexedAllocationInfo.
337
- ASSERT_THAT (Record.AllocSites , :: SizeIs (2 ));
322
+ ASSERT_THAT (Record.AllocSites , SizeIs (2 ));
338
323
EXPECT_EQ (Record.AllocSites [0 ].Info .getSchema (), SchemaBitSet);
339
324
EXPECT_EQ (Record.AllocSites [1 ].Info .getSchema (), SchemaBitSet);
340
325
341
326
std::string Buffer;
342
327
llvm::raw_string_ostream OS (Buffer);
343
- Record.serialize (Schema, OS, llvm::memprof:: Version2);
328
+ Record.serialize (Schema, OS, Version2);
344
329
345
330
const IndexedMemProfRecord GotRecord = IndexedMemProfRecord::deserialize (
346
- Schema, reinterpret_cast <const unsigned char *>(Buffer.data ()),
347
- llvm::memprof::Version2);
331
+ Schema, reinterpret_cast <const unsigned char *>(Buffer.data ()), Version2);
348
332
349
333
// Verify that Schema comes back correctly after deserialization. Technically,
350
334
// the comparison between Record and GotRecord below includes the comparison
351
335
// of their Schemas, but we'll verify the Schemas on our own.
352
- ASSERT_THAT (GotRecord.AllocSites , :: SizeIs (2 ));
336
+ ASSERT_THAT (GotRecord.AllocSites , SizeIs (2 ));
353
337
EXPECT_EQ (GotRecord.AllocSites [0 ].Info .getSchema (), SchemaBitSet);
354
338
EXPECT_EQ (GotRecord.AllocSites [1 ].Info .getSchema (), SchemaBitSet);
355
339
@@ -521,10 +505,10 @@ TEST(MemProf, IndexedMemProfRecordToMemProfRecord) {
521
505
IndexedRecord.CallSiteIds .push_back (hashCallStack (CS3));
522
506
IndexedRecord.CallSiteIds .push_back (hashCallStack (CS4));
523
507
524
- llvm::memprof:: FrameIdConverter<decltype (MemProfData.Frames )> FrameIdConv (
508
+ FrameIdConverter<decltype (MemProfData.Frames )> FrameIdConv (
525
509
MemProfData.Frames );
526
- llvm::memprof:: CallStackIdConverter<decltype (MemProfData.CallStacks )>
527
- CSIdConv ( MemProfData.CallStacks , FrameIdConv);
510
+ CallStackIdConverter<decltype (MemProfData.CallStacks )> CSIdConv (
511
+ MemProfData.CallStacks , FrameIdConv);
528
512
529
513
MemProfRecord Record = IndexedRecord.toMemProfRecord (CSIdConv);
530
514
@@ -553,18 +537,17 @@ MemInfoBlock makePartialMIB() {
553
537
TEST (MemProf, MissingCallStackId) {
554
538
// Use a non-existent CallStackId to trigger a mapping error in
555
539
// toMemProfRecord.
556
- IndexedAllocationInfo AI (0xdeadbeefU , makePartialMIB (),
557
- llvm::memprof::getHotColdSchema ());
540
+ IndexedAllocationInfo AI (0xdeadbeefU , makePartialMIB (), getHotColdSchema ());
558
541
559
542
IndexedMemProfRecord IndexedMR;
560
543
IndexedMR.AllocSites .push_back (AI);
561
544
562
545
// Create empty maps.
563
546
IndexedMemProfData MemProfData;
564
- llvm::memprof:: FrameIdConverter<decltype (MemProfData.Frames )> FrameIdConv (
547
+ FrameIdConverter<decltype (MemProfData.Frames )> FrameIdConv (
565
548
MemProfData.Frames );
566
- llvm::memprof:: CallStackIdConverter<decltype (MemProfData.CallStacks )>
567
- CSIdConv ( MemProfData.CallStacks , FrameIdConv);
549
+ CallStackIdConverter<decltype (MemProfData.CallStacks )> CSIdConv (
550
+ MemProfData.CallStacks , FrameIdConv);
568
551
569
552
// We are only interested in errors, not the return value.
570
553
(void )IndexedMR.toMemProfRecord (CSIdConv);
@@ -575,8 +558,7 @@ TEST(MemProf, MissingCallStackId) {
575
558
}
576
559
577
560
TEST (MemProf, MissingFrameId) {
578
- IndexedAllocationInfo AI (0x222 , makePartialMIB (),
579
- llvm::memprof::getHotColdSchema ());
561
+ IndexedAllocationInfo AI (0x222 , makePartialMIB (), getHotColdSchema ());
580
562
581
563
IndexedMemProfRecord IndexedMR;
582
564
IndexedMR.AllocSites .push_back (AI);
@@ -585,10 +567,10 @@ TEST(MemProf, MissingFrameId) {
585
567
IndexedMemProfData MemProfData;
586
568
MemProfData.CallStacks .insert ({0x222 , {2 , 3 }});
587
569
588
- llvm::memprof:: FrameIdConverter<decltype (MemProfData.Frames )> FrameIdConv (
570
+ FrameIdConverter<decltype (MemProfData.Frames )> FrameIdConv (
589
571
MemProfData.Frames );
590
- llvm::memprof:: CallStackIdConverter<decltype (MemProfData.CallStacks )>
591
- CSIdConv ( MemProfData.CallStacks , FrameIdConv);
572
+ CallStackIdConverter<decltype (MemProfData.CallStacks )> CSIdConv (
573
+ MemProfData.CallStacks , FrameIdConv);
592
574
593
575
// We are only interested in errors, not the return value.
594
576
(void )IndexedMR.toMemProfRecord (CSIdConv);
@@ -600,11 +582,11 @@ TEST(MemProf, MissingFrameId) {
600
582
601
583
// Verify CallStackRadixTreeBuilder can handle empty inputs.
602
584
TEST (MemProf, RadixTreeBuilderEmpty) {
603
- llvm::DenseMap<FrameId, llvm::memprof:: LinearFrameId> MemProfFrameIndexes;
585
+ llvm::DenseMap<FrameId, LinearFrameId> MemProfFrameIndexes;
604
586
llvm::MapVector<CallStackId, llvm::SmallVector<FrameId>> MemProfCallStackData;
605
- llvm::DenseMap<FrameId, llvm::memprof:: FrameStat> FrameHistogram =
606
- llvm::memprof:: computeFrameHistogram<FrameId>(MemProfCallStackData);
607
- llvm::memprof:: CallStackRadixTreeBuilder<FrameId> Builder;
587
+ llvm::DenseMap<FrameId, FrameStat> FrameHistogram =
588
+ computeFrameHistogram<FrameId>(MemProfCallStackData);
589
+ CallStackRadixTreeBuilder<FrameId> Builder;
608
590
Builder.build (std::move (MemProfCallStackData), &MemProfFrameIndexes,
609
591
FrameHistogram);
610
592
ASSERT_THAT (Builder.getRadixArray (), testing::IsEmpty ());
@@ -614,14 +596,14 @@ TEST(MemProf, RadixTreeBuilderEmpty) {
614
596
615
597
// Verify CallStackRadixTreeBuilder can handle one trivial call stack.
616
598
TEST (MemProf, RadixTreeBuilderOne) {
617
- llvm::DenseMap<FrameId, llvm::memprof:: LinearFrameId> MemProfFrameIndexes = {
599
+ llvm::DenseMap<FrameId, LinearFrameId> MemProfFrameIndexes = {
618
600
{11 , 1 }, {12 , 2 }, {13 , 3 }};
619
601
llvm::SmallVector<FrameId> CS1 = {13 , 12 , 11 };
620
602
llvm::MapVector<CallStackId, llvm::SmallVector<FrameId>> MemProfCallStackData;
621
603
MemProfCallStackData.insert ({hashCallStack (CS1), CS1});
622
- llvm::DenseMap<FrameId, llvm::memprof:: FrameStat> FrameHistogram =
623
- llvm::memprof:: computeFrameHistogram<FrameId>(MemProfCallStackData);
624
- llvm::memprof:: CallStackRadixTreeBuilder<FrameId> Builder;
604
+ llvm::DenseMap<FrameId, FrameStat> FrameHistogram =
605
+ computeFrameHistogram<FrameId>(MemProfCallStackData);
606
+ CallStackRadixTreeBuilder<FrameId> Builder;
625
607
Builder.build (std::move (MemProfCallStackData), &MemProfFrameIndexes,
626
608
FrameHistogram);
627
609
EXPECT_THAT (Builder.getRadixArray (),
@@ -636,16 +618,16 @@ TEST(MemProf, RadixTreeBuilderOne) {
636
618
637
619
// Verify CallStackRadixTreeBuilder can form a link between two call stacks.
638
620
TEST (MemProf, RadixTreeBuilderTwo) {
639
- llvm::DenseMap<FrameId, llvm::memprof:: LinearFrameId> MemProfFrameIndexes = {
621
+ llvm::DenseMap<FrameId, LinearFrameId> MemProfFrameIndexes = {
640
622
{11 , 1 }, {12 , 2 }, {13 , 3 }};
641
623
llvm::SmallVector<FrameId> CS1 = {12 , 11 };
642
624
llvm::SmallVector<FrameId> CS2 = {13 , 12 , 11 };
643
625
llvm::MapVector<CallStackId, llvm::SmallVector<FrameId>> MemProfCallStackData;
644
626
MemProfCallStackData.insert ({hashCallStack (CS1), CS1});
645
627
MemProfCallStackData.insert ({hashCallStack (CS2), CS2});
646
- llvm::DenseMap<FrameId, llvm::memprof:: FrameStat> FrameHistogram =
647
- llvm::memprof:: computeFrameHistogram<FrameId>(MemProfCallStackData);
648
- llvm::memprof:: CallStackRadixTreeBuilder<FrameId> Builder;
628
+ llvm::DenseMap<FrameId, FrameStat> FrameHistogram =
629
+ computeFrameHistogram<FrameId>(MemProfCallStackData);
630
+ CallStackRadixTreeBuilder<FrameId> Builder;
649
631
Builder.build (std::move (MemProfCallStackData), &MemProfFrameIndexes,
650
632
FrameHistogram);
651
633
EXPECT_THAT (Builder.getRadixArray (),
@@ -664,7 +646,7 @@ TEST(MemProf, RadixTreeBuilderTwo) {
664
646
// Verify CallStackRadixTreeBuilder can form a jump to a prefix that itself has
665
647
// another jump to another prefix.
666
648
TEST (MemProf, RadixTreeBuilderSuccessiveJumps) {
667
- llvm::DenseMap<FrameId, llvm::memprof:: LinearFrameId> MemProfFrameIndexes = {
649
+ llvm::DenseMap<FrameId, LinearFrameId> MemProfFrameIndexes = {
668
650
{11 , 1 }, {12 , 2 }, {13 , 3 }, {14 , 4 }, {15 , 5 }, {16 , 6 }, {17 , 7 }, {18 , 8 },
669
651
};
670
652
llvm::SmallVector<FrameId> CS1 = {14 , 13 , 12 , 11 };
@@ -676,9 +658,9 @@ TEST(MemProf, RadixTreeBuilderSuccessiveJumps) {
676
658
MemProfCallStackData.insert ({hashCallStack (CS2), CS2});
677
659
MemProfCallStackData.insert ({hashCallStack (CS3), CS3});
678
660
MemProfCallStackData.insert ({hashCallStack (CS4), CS4});
679
- llvm::DenseMap<FrameId, llvm::memprof:: FrameStat> FrameHistogram =
680
- llvm::memprof:: computeFrameHistogram<FrameId>(MemProfCallStackData);
681
- llvm::memprof:: CallStackRadixTreeBuilder<FrameId> Builder;
661
+ llvm::DenseMap<FrameId, FrameStat> FrameHistogram =
662
+ computeFrameHistogram<FrameId>(MemProfCallStackData);
663
+ CallStackRadixTreeBuilder<FrameId> Builder;
682
664
Builder.build (std::move (MemProfCallStackData), &MemProfFrameIndexes,
683
665
FrameHistogram);
684
666
EXPECT_THAT (Builder.getRadixArray (),
@@ -731,7 +713,7 @@ TEST(MemProf, YAMLParser) {
731
713
- {Function: 0x800, LineOffset: 88, Column: 80, IsInlineFrame: false}
732
714
)YAML" ;
733
715
734
- llvm::memprof:: YAMLMemProfReader YAMLReader;
716
+ YAMLMemProfReader YAMLReader;
735
717
YAMLReader.parse (YAMLData);
736
718
IndexedMemProfData MemProfData = YAMLReader.takeMemProfData ();
737
719
@@ -802,7 +784,7 @@ TEST(MemProf, YAMLWriterMIB) {
802
784
MIB.TotalSize = 222 ;
803
785
MIB.TotalLifetime = 333 ;
804
786
MIB.TotalLifetimeAccessDensity = 444 ;
805
- PortableMemInfoBlock PMIB (MIB, llvm::memprof:: getHotColdSchema ());
787
+ PortableMemInfoBlock PMIB (MIB, getHotColdSchema ());
806
788
807
789
std::string Out = serializeInYAML (PMIB);
808
790
EXPECT_EQ (Out, R"YAML( ---
@@ -814,3 +796,5 @@ TotalLifetimeAccessDensity: 444
814
796
)YAML" );
815
797
}
816
798
} // namespace
799
+ } // namespace memprof
800
+ } // namespace llvm
0 commit comments