[PATCH] D149387: [PGO] Add MD_prof into known-id set when combining metadata. The implementation of `combineMetadata` drops unknown types of metadata.

Mingming Liu via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 27 16:09:19 PDT 2023


mingmingl updated this revision to Diff 517743.
Herald added a subscriber: hoy.

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

https://reviews.llvm.org/D149387

Files:
  llvm/lib/Transforms/Scalar/GVNHoist.cpp
  llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
  llvm/lib/Transforms/Utils/Local.cpp


Index: llvm/lib/Transforms/Utils/Local.cpp
===================================================================
--- llvm/lib/Transforms/Utils/Local.cpp
+++ llvm/lib/Transforms/Utils/Local.cpp
@@ -2710,8 +2710,7 @@
         K->setMetadata(Kind, JMD);
         break;
       case LLVMContext::MD_prof:
-        if (DoesKMove)
-          K->setMetadata(Kind, MDNode::getMergedProfMetadata(KMD, JMD, K, J));
+          K->setMetadata(Kind, DoesKMove ? MDNode::getMergedProfMetadata(KMD, JMD, K, J) : KMD);
         break;
     }
   }
Index: llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
===================================================================
--- llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
+++ llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
@@ -1091,6 +1091,7 @@
   // handled here, but combineMetadata doesn't support them yet
   unsigned KnownIDs[] = {LLVMContext::MD_tbaa, LLVMContext::MD_alias_scope,
                          LLVMContext::MD_noalias,
+                         LLVMContext::MD_prof,
                          LLVMContext::MD_invariant_group,
                          LLVMContext::MD_access_group};
   combineMetadata(C, cpyLoad, KnownIDs, true);
Index: llvm/lib/Transforms/Scalar/GVNHoist.cpp
===================================================================
--- llvm/lib/Transforms/Scalar/GVNHoist.cpp
+++ llvm/lib/Transforms/Scalar/GVNHoist.cpp
@@ -246,6 +246,7 @@
                                       LLVMContext::MD_fpmath,
                                       LLVMContext::MD_invariant_load,
                                       LLVMContext::MD_invariant_group,
+                                      LLVMContext::MD_prof,
                                       LLVMContext::MD_access_group};
   combineMetadata(ReplInst, I, KnownIDs, true);
 }


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D149387.517743.patch
Type: text/x-patch
Size: 1792 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230427/b0d568dc/attachment.bin>


More information about the llvm-commits mailing list