[PATCH] D84782: [PGO] Include the mem ops into the function hash.

David Li via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 28 14:58:42 PDT 2020


davidxl added a comment.

We may also need to bump both the raw and index format version with this change. For the profile use side, we also need to keep the hashing scheme of the older version (in profile-use side).  More details to come.

Many tests can also be enhanced to filter out the hash details if they are not part the main test.



================
Comment at: llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp:623
 // Compute Hash value for the CFG: the lower 32 bits are CRC32 of the index
-// value of each BB in the CFG. The higher 32 bits record the number of edges.
+// value of each BB in the CFG. The higher 32 bits are the CR32 of the numbers
+// of selects, indirect calls, mem ops and edges.
----------------
MaskRay wrote:
> To make sure I understand: we use two CRCs instead of one CRC because we want to extract low/high 32 bits for debugging purposes?
> 
> Otherwise, we can just use one CRC.
JamCRC produces a 32bit value.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D84782



More information about the llvm-commits mailing list