[clang] [compiler-rt] [llvm] [PGO] Initialize GCOV Writeout and Reset Functions in the Runtime on AIX (PR #108570)

Qiongsi Wu via cfe-commits cfe-commits at lists.llvm.org
Fri Oct 4 13:51:16 PDT 2024


================
@@ -2962,13 +2964,34 @@ void PPCAIXAsmPrinter::emitPGORefs(Module &M) {
   }
 }
 
+void PPCAIXAsmPrinter::emitGCOVRefs() {
+  if (!OutContext.hasXCOFFSection(
+          "__llvm_gcov_ctr_section",
+          XCOFF::CsectProperties(XCOFF::XMC_RW, XCOFF::XTY_SD)))
+    return;
+
+  MCSection *CtrSection = OutContext.getXCOFFSection(
+      "__llvm_gcov_ctr_section", SectionKind::getData(),
+      XCOFF::CsectProperties(XCOFF::XMC_RW, XCOFF::XTY_SD),
+      /*MultiSymbolsAllowed*/ true);
+
+  OutStreamer->switchSection(CtrSection);
+  if (OutContext.hasXCOFFSection(
+          "__llvm_covinit",
+          XCOFF::CsectProperties(XCOFF::XMC_RW, XCOFF::XTY_SD))) {
+    MCSymbol *S = OutContext.getOrCreateSymbol("__llvm_covinit[RW]");
+    OutStreamer->emitXCOFFRefDirective(S);
----------------
qiongsiwu wrote:

Unit test added https://github.com/llvm/llvm-project/pull/108570/files#diff-f2d622657953b2ba45b9e99894e02ba8e6b979b15d74d469fafbeaa03e83d9faR1

https://github.com/llvm/llvm-project/pull/108570


More information about the cfe-commits mailing list