[PATCH] D69586: [profile] Support online merging with continuous sync mode
    David Li via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Fri Nov 15 15:51:16 PST 2019
    
    
  
davidxl added inline comments.
================
Comment at: compiler-rt/lib/profile/InstrProfilingFile.c:400
+  /* By pass file truncation to allow online raw profile merging. */
+  if (lprofCurFilename.MergePoolSize)
+    return;
----------------
why this change?
================
Comment at: compiler-rt/lib/profile/InstrProfilingFile.c:496
+    uint64_t ProfileFileSize;
+    if (getProfileFileSizeForMerging(File, &ProfileFileSize) == -1)
+      goto unlockAndReturn;
----------------
perhaps:
int ret = getProfileFIleSizeForMerging(...);
if (ret == -1 || profileFileSize == 0) {
    // full write ...
} else {
    // merge
 }
================
Comment at: compiler-rt/lib/profile/InstrProfilingFile.c:529
    * can succeed. Leak the file handle, as the file should stay open. */
-  setProfileFile(File);
-  int rc = writeFile(Filename);
-  if (rc)
-    PROF_ERR("Failed to write file \"%s\": %s\n", Filename, strerror(errno));
-  setProfileFile(NULL);
+  if (ProfileRequiresFullWrite) {
+    setProfileFile(File);
----------------
Can this code be moved up to line 499 ? Is ProfileRequiresFullWrite flag still needed?
================
Comment at: compiler-rt/lib/profile/InstrProfilingFile.c:553
+
+unlockAndReturn:
+  if (ProfileRequiresUnlock) {
----------------
This can be hoisted closer to the merge handling.
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D69586/new/
https://reviews.llvm.org/D69586
    
    
More information about the llvm-commits
mailing list