[PATCH] D103041: [SampleFDO] New hierarchical discriminator for FS SampleFDO (ProfileData part)

Wei Mi via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue May 25 11:03:52 PDT 2021


wmi added inline comments.


================
Comment at: llvm/include/llvm/Support/Discriminator.h:55
+// Define the High bit for each FS pass.
+const unsigned char FSPassHighBit[] = {7, 13, 19, 25, 31};
+
----------------
Can we use unsigned int instead so no implicit conversion when FSPassHighBit is used? And how about using std::array so we can use FSPassHighBit.at(i) in FSPassBitBegin and FSPassBitEnd which will have array bounds check.


================
Comment at: llvm/include/llvm/Support/Discriminator.h:91-93
+  if (N == 31)
     return 0xFFFFFFFF;
   return (1 << (N + 1)) - 1;
----------------
Nit: For N==31, (1U << (N + 1)) - 1 is 0xFFFFFFFF so no if (N == 31) is needed.


================
Comment at: llvm/lib/ProfileData/SampleProfReader.cpp:312-314
+        uint32_t MaskedDiscriminator = Discriminator;
+        MaskedDiscriminator &= getDiscriminatorMask();
+        Discriminator = MaskedDiscriminator;
----------------
Nit: Discrriminator &= getDiscriminatorMask();


================
Comment at: llvm/lib/ProfileData/SampleProfReader.cpp:529-530
+    if (ProfileIsFS) {
+      uint32_t MaskedDiscriminator = DiscriminatorVal & getDiscriminatorMask();
+      DiscriminatorVal = MaskedDiscriminator;
+    }
----------------
Nit: DiscrriminatorVal &= getDiscriminatorMask();


================
Comment at: llvm/lib/ProfileData/SampleProfReader.cpp:570-571
+    if (ProfileIsFS) {
+      uint32_t MaskedDiscriminator = DiscriminatorVal & getDiscriminatorMask();
+      DiscriminatorVal = MaskedDiscriminator;
+    }
----------------
Nit: DiscrriminatorVal &= getDiscriminatorMask();


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D103041/new/

https://reviews.llvm.org/D103041



More information about the llvm-commits mailing list