<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in profiling.ll</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>9ff36df5 - [PGO][InstrProf][test] Convert to opaque pointers and fix some stale tests</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll#9ff36df5</link>
        <description>[PGO][InstrProf][test] Convert to opaque pointers and fix some stale tests

            List of files:
            /llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll</description>
        <pubDate>Sat, 16 Jul 2022 18:42:35 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>3d438cee - [InstrProf] Mark __llvm_profile_runtime hidden to match libclang_rt.profile definition</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll#3d438cee</link>
        <description>[InstrProf] Mark __llvm_profile_runtime hidden to match libclang_rt.profile definitionMark the symbol hidden to match INSTR_PROF_PROFILE_RUNTIME_VAR in compiler-rt.Fixes second issue discussed at https://discourse.llvm.org/t/63090Reviewed By: MaskRayDifferential Revision: https://reviews.llvm.org/D128842

            List of files:
            /llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll</description>
        <pubDate>Mon, 11 Jul 2022 18:29:20 +0000</pubDate>
        <dc:creator>Justin Cady &lt;desk@justincady.com&gt;</dc:creator>
    </item>
<item>
        <title>3f603025 - Reland &quot;[PS4/PS5][profiling] Go back to the old way of doing a runtime hook&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll#3f603025</link>
        <description>Reland &quot;[PS4/PS5][profiling] Go back to the old way of doing a runtime hook&quot;Profiling stopped working for us after D98061, which was largely aFuschia-specific patch but in one place used `isOSBinFormatELF` tomake a decision.  I&apos;m adding a PS4/PS5 exception to that, so we canget profiling to work again.Differential Revision: https://reviews.llvm.org/D127506

            List of files:
            /llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll</description>
        <pubDate>Thu, 16 Jun 2022 18:41:51 +0000</pubDate>
        <dc:creator>Paul Robinson &lt;paul.robinson@sony.com&gt;</dc:creator>
    </item>
<item>
        <title>d0e60b6d - Revert &quot;[PS4/PS5][profiling] Go back to the old way of doing a runtime hook&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll#d0e60b6d</link>
        <description>Revert &quot;[PS4/PS5][profiling] Go back to the old way of doing a runtime hook&quot;This reverts commit 39fb84343ec5cf9081e236745490c65eb8a9fc31.Pushed without verifying the test still works.

            List of files:
            /llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll</description>
        <pubDate>Thu, 16 Jun 2022 18:40:33 +0000</pubDate>
        <dc:creator>Paul Robinson &lt;paul.robinson@sony.com&gt;</dc:creator>
    </item>
<item>
        <title>39fb8434 - [PS4/PS5][profiling] Go back to the old way of doing a runtime hook</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll#39fb8434</link>
        <description>[PS4/PS5][profiling] Go back to the old way of doing a runtime hookProfiling stopped working for us after D98061, which was largely aFuschia-specific patch but in one place used `isOSBinFormatELF` tomake a decision.  I&apos;m adding a PS4/PS5 exception to that, so we canget profiling to work again.Differential Revision: https://reviews.llvm.org/D127506

            List of files:
            /llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll</description>
        <pubDate>Fri, 10 Jun 2022 16:12:49 +0000</pubDate>
        <dc:creator>Paul Robinson &lt;paul.robinson@sony.com&gt;</dc:creator>
    </item>
<item>
        <title>2407c13a - [AIX][PGO] Enable linux style PGO on AIX</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll#2407c13a</link>
        <description>[AIX][PGO] Enable linux style PGO on AIXThis patch switches the PGO implementation on AIX from using the runtimeregistration-based section tracking to the __start_SECNAME/__stop_SECNAMEbased. In order to enable the recognition of __start_SECNAME/__stop_SECNAMEsymbols in the AIX linker, the -bdbg:namedsects:ss needs to be used.Reviewed By: jsji, MaskRay, davidxlDifferential Revision: https://reviews.llvm.org/D124857

            List of files:
            /llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll</description>
        <pubDate>Tue, 03 May 2022 14:27:15 +0000</pubDate>
        <dc:creator>Wael Yehia &lt;wyehia@ca.ibm.com&gt;</dc:creator>
    </item>
<item>
        <title>25c30324 - [AIX] Change the linkage of profiling counter/data to be private</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll#25c30324</link>
        <description>[AIX] Change the linkage of profiling counter/data to be privateWe generate symbols like `profc`/`profd` for each function, and put them into csects.When there are weak functions,  we generate weak symbols for the functions as well,with ELF (and some others),  linker (binder) will discard and only keep one copy of the weak symbols.However, on AIX, the current binder can NOT discard the weak symbols if we put all of them into the same csect,as binder can NOT discard a subset of a csect.This creates a unique challenge for using those symbols to calculate some relative offsets.This patch changed the linkage of `profc`/`profd` symbols to be private, so that all the profc/profd for each weak symbol will be *local* to objects, and all kept in the csect, so we won&apos;t have problem. Although only one of the counters will be used, all the pointer in the profd is correct.The downside is that we won&apos;t be able to discard the duplicated counters and profile data,but those can not be discarded even if we keep the weak linkage,due to the binder limitation of not discarding a subsect of the csect either .Reviewed By: Whitney, MaskRayDifferential Revision: https://reviews.llvm.org/D110422

            List of files:
            /llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll</description>
        <pubDate>Tue, 28 Sep 2021 22:28:13 +0000</pubDate>
        <dc:creator>Jinsong Ji &lt;jji@us.ibm.com&gt;</dc:creator>
    </item>
<item>
        <title>3fd27ec7 - [InstrProfiling] Add one missing XCOFF line to profiling.ll</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll#3fd27ec7</link>
        <description>[InstrProfiling] Add one missing XCOFF line to profiling.ll

            List of files:
            /llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll</description>
        <pubDate>Thu, 02 Sep 2021 14:49:35 +0000</pubDate>
        <dc:creator>Jinsong Ji &lt;jji@us.ibm.com&gt;</dc:creator>
    </item>
<item>
        <title>f5505a2c - [InstrProfiling] Add AIX triple to more tests</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll#f5505a2c</link>
        <description>[InstrProfiling] Add AIX triple to more testsFollowing patch of https://reviews.llvm.org/D108490.Add AIX triples to tests in /Instrumentation/InstrProfiling/ to makesure we can catch regressions earlier.Reviewed By: MaskRayDifferential Revision: https://reviews.llvm.org/D109089

            List of files:
            /llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll</description>
        <pubDate>Thu, 02 Sep 2021 02:39:51 +0000</pubDate>
        <dc:creator>Jinsong Ji &lt;jji@us.ibm.com&gt;</dc:creator>
    </item>
<item>
        <title>68745a55 - [InstrProfiling] Use llvm.compiler.used if applicable for Mach-O</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll#68745a55</link>
        <description>[InstrProfiling] Use llvm.compiler.used if applicable for Mach-OSimilar to D97585.D25456 used `S_ATTR_LIVE_SUPPORT` to ensure the data variable will be retainedor discarded as a unit with the counter variable, so llvm.compiler.used issufficient. It allows ld to dead strip unneeded profc and profd variables.Reviewed By: vskDifferential Revision: https://reviews.llvm.org/D105445

            List of files:
            /llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll</description>
        <pubDate>Wed, 01 Sep 2021 21:46:51 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>623bf6c3 - [InstrProfiling][test] Combine profiling.ll and linkage.ll</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll#623bf6c3</link>
        <description>[InstrProfiling][test] Combine profiling.ll and linkage.llThe latter mostly covers the former.

            List of files:
            /llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll</description>
        <pubDate>Wed, 01 Sep 2021 21:21:42 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>77b435aa - Revert &quot;[InstrProfiling] Make COFF use the ELF comdat scheme (drop link.exe compatibility)&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll#77b435aa</link>
        <description>Revert &quot;[InstrProfiling] Make COFF use the ELF comdat scheme (drop link.exe compatibility)&quot;This reverts commit fbb8e772ec501a1b71643db90e9c6445e17d7cac.Accidentally pushed.

            List of files:
            /llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll</description>
        <pubDate>Thu, 19 Aug 2021 23:42:57 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>fbb8e772 - [InstrProfiling] Make COFF use the ELF comdat scheme (drop link.exe compatibility)</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll#fbb8e772</link>
        <description>[InstrProfiling] Make COFF use the ELF comdat scheme (drop link.exe compatibility)The COFF specific `DataReferencedByCode` complexity (D103372 D103717) is due toa link.exe limitation: an external symbol in IMAGE_COMDAT_SELECT_ASSOCIATIVE isnot really dropped, so it can cause duplicate definition error.

            List of files:
            /llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll</description>
        <pubDate>Thu, 19 Aug 2021 23:38:32 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>389dc94d - [InstrProfiling] Generate runtime hook for Fuchsia</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll#389dc94d</link>
        <description>[InstrProfiling] Generate runtime hook for FuchsiaWhen none of the translation units in the binary have been instrumentedwe shouldn&apos;t need to link the profile runtime. However, because we pass-u__llvm_profile_runtime on Linux and Fuchsia, the runtime would stillbe pulled in and incur some overhead. On Fuchsia which uses runtimecounter relocation, it also means that we cannot reference the biasvariable unconditionally.This change modifies the InstrProfiling pass to pull in the profileruntime only when needed by declaring the __llvm_profile_runtime symbolin the translation unit only when needed. For now we restrict this onlyfor Fuchsia, but this can be later expanded to other platforms. Thisapproach was already used prior to 9a041a75221ca, but we changed itto always generate the __llvm_profile_runtime due to a TAPI limitation,but that limitation may no longer apply, and it certainly doesn&apos;t applyon platforms like Fuchsia.Differential Revision: https://reviews.llvm.org/D98061

            List of files:
            /llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll</description>
        <pubDate>Tue, 10 Aug 2021 18:03:07 +0000</pubDate>
        <dc:creator>Petr Hosek &lt;phosek@google.com&gt;</dc:creator>
    </item>
<item>
        <title>a1532ed2 - [InstrProfiling] Make CountersPtr in __profd_ relative</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll#a1532ed2</link>
        <description>[InstrProfiling] Make CountersPtr in __profd_ relativeChange `CountersPtr` in `__profd_` to a label difference, which is a link-timeconstant. On ELF, when linking a shared object, this requires that `__profc_` iseither private or linkonce/linkonce_odr hidden. On COFF, we need D104564 so that`.quad a-b` (64-bit label difference) can lower to a 32-bit PC-relative relocation.```# ELF: R_X86_64_PC64 (PC-relative).quad .L__profc_foo-.L__profd_foo# Mach-O: a pair of 8-byte X86_64_RELOC_UNSIGNED and X86_64_RELOC_SUBTRACTOR.quad l___profc_foo-l___profd_foo# COFF: we actually use IMAGE_REL_AMD64_REL32/IMAGE_REL_ARM64_REL32 so# the high 32-bit value is zero even if .L__profc_foo &lt; .L__profd_foo# As compensation, we truncate CountersDelta in the header so that# __llvm_profile_merge_from_buffer and llvm-profdata reader keep working..quad .L__profc_foo-.L__profd_foo```(Note: link.exe sorts `.lprfc` before `.lprfd` even if the object writerhas `.lprfd` before `.lprfc`, so we cannot work around by reordering`.lprfc` and `.lprfd`.)With this change, a stage 2 (`-DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_BUILD_INSTRUMENTED=IR`)`ld -pie` linked clang is 1.74% smaller due to fewer R_X86_64_RELATIVE relocations.```% readelf -r pie | awk &apos;$3~/R.*/{s[$3]++} END {for (k in s) print k, s[k]}&apos;R_X86_64_JUMP_SLO 331R_X86_64_TPOFF64 2R_X86_64_RELATIVE 476059  # was: 607712R_X86_64_64 2616R_X86_64_GLOB_DAT 31```The absolute function address (used by llvm-profdata to collect indirect calltargets) can be converted to relative as well, but is not done in this patch.Differential Revision: https://reviews.llvm.org/D104556

            List of files:
            /llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll</description>
        <pubDate>Fri, 30 Jul 2021 18:52:18 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>9e51d1f3 - [InstrProfiling] If no value profiling, make data variable private and (for Windows) use one comdat</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll#9e51d1f3</link>
        <description>[InstrProfiling] If no value profiling, make data variable private and (for Windows) use one comdat`__profd_*` variables are referenced by code only when value profiling isenabled. If disabled (e.g. default -fprofile-instr-generate), the symbols justwaste space on ELF/Mach-O. We change the comdat symbol from `__profd_*` to`__profc_*` because an internal symbol does not provide deduplication featureson COFF. The choice doesn&apos;t matter on ELF.(In -DLLVM_BUILD_INSTRUMENTED_COVERAGE=on build, there is now no `__profd_*` symbols.)On Windows this enables further optimization. We are no longer affected by thelink.exe limitation: an external symbol in IMAGE_COMDAT_SELECT_ASSOCIATIVE cancause duplicate definition error.https://lists.llvm.org/pipermail/llvm-dev/2021-May/150758.htmlWe can thus use llvm.compiler.used instead of llvm.used like ELF (D97585).This avoids many `/INCLUDE:` directives in `.drectve`.Here is rnk&apos;s measurement for Chrome:```This reduced object file size of base_unittests.exe, compiled with coverage, optimizations, and gmlt debug info by 10%:#BEFORE$ find . -iname &apos;*.obj&apos; | xargs du -b | awk &apos;{ sum += $1 } END { print sum}&apos;1047758867$ du -cksh base_unittests.exe82M     base_unittests.exe82M     total# AFTER$ find . -iname &apos;*.obj&apos; | xargs du -b | awk &apos;{ sum += $1 } END { print sum}&apos;937886499$ du -cksh base_unittests.exe78M     base_unittests.exe78M     total```The change is NFC for Mach-O.Reviewed By: davidxl, rnkDifferential Revision: https://reviews.llvm.org/D103372

            List of files:
            /llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll</description>
        <pubDate>Fri, 04 Jun 2021 20:27:56 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>e9a9c850 - Revert &quot;[InstrProfiling] If no value profiling, make data variable private and (for Windows) use one comdat&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll#e9a9c850</link>
        <description>Revert &quot;[InstrProfiling] If no value profiling, make data variable private and (for Windows) use one comdat&quot;This reverts commit a14fc749aab2c8e1a45d19d512255ebfc69357c3.Breaks check-profile on macOS. See https://reviews.llvm.org/D103372 for details.

            List of files:
            /llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll</description>
        <pubDate>Fri, 04 Jun 2021 13:51:24 +0000</pubDate>
        <dc:creator>Nico Weber &lt;thakis@chromium.org&gt;</dc:creator>
    </item>
<item>
        <title>a14fc749 - [InstrProfiling] If no value profiling, make data variable private and (for Windows) use one comdat</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll#a14fc749</link>
        <description>[InstrProfiling] If no value profiling, make data variable private and (for Windows) use one comdat`__profd_*` variables are referenced by code only when value profiling isenabled. If disabled (e.g. default -fprofile-instr-generate), the symbols justwaste space on ELF/Mach-O. We change the comdat symbol from `__profd_*` to`__profc_*` because an internal symbol does not provide deduplication featureson COFF. The choice doesn&apos;t matter on ELF.(In -DLLVM_BUILD_INSTRUMENTED_COVERAGE=on build, there is now no `__profd_*` symbols.)On Windows this enables further optimization. We are no longer affected by thelink.exe limitation: an external symbol in IMAGE_COMDAT_SELECT_ASSOCIATIVE cancause duplicate definition error.https://lists.llvm.org/pipermail/llvm-dev/2021-May/150758.htmlWe can thus use llvm.compiler.used instead of llvm.used like ELF (D97585).This avoids many `/INCLUDE:` directives in `.drectve`.Here is rnk&apos;s measurement for Chrome:```This reduced object file size of base_unittests.exe, compiled with coverage, optimizations, and gmlt debug info by 10%:#BEFORE$ find . -iname &apos;*.obj&apos; | xargs du -b | awk &apos;{ sum += $1 } END { print sum}&apos;1047758867$ du -cksh base_unittests.exe82M     base_unittests.exe82M     total# AFTER$ find . -iname &apos;*.obj&apos; | xargs du -b | awk &apos;{ sum += $1 } END { print sum}&apos;937886499$ du -cksh base_unittests.exe78M     base_unittests.exe78M     total```Reviewed By: davidxl, rnkDifferential Revision: https://reviews.llvm.org/D103372

            List of files:
            /llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll</description>
        <pubDate>Thu, 03 Jun 2021 20:16:13 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>87c43f3a - [InstrProfiling] Delete linkage/visibility toggling for Windows</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll#87c43f3a</link>
        <description>[InstrProfiling] Delete linkage/visibility toggling for WindowsThe linkage/visibility of `__profn_*` variables are derivedfrom the profiled functions.    extern_weak =&gt; linkonce    available_externally =&gt; linkonce_odr    internal =&gt; private    extern =&gt; private    _ =&gt; unchangedThe linkage/visibility of `__profc_*`/`__profd_*` variables are derived from`__profn_*` with linkage/visibility wrestling for Windows.The changes can be folded to the following without changing semantics.```if (TT.isOSBinFormatCOFF() &amp;&amp; !NeedComdat) {  Linkage = GlobalValue::InternalLinkage;  Visibility = GlobalValue::DefaultVisibility;}```That said, I think we can just delete the code block.An extern/internal function will now use private `__profc_*`/`__profd_*`variables, instead of internal ones. This saves some symbol table entries.A non-comdat {linkonce,weak}_odr function will now use hidden external`__profc_*`/`__profd_*` variables instead of internal ones.  There is potentialobject file size increase because such symbols need `/INCLUDE:` directives.However such non-comdat functions are rare (note that non-comdat weakdefinitions don&apos;t prevent duplicate definition error).The behavior changes match ELF.Reviewed By: rnkDifferential Revision: https://reviews.llvm.org/D103355

            List of files:
            /llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll</description>
        <pubDate>Wed, 02 Jun 2021 23:49:54 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>7145c6ca - [InstrProfiling][test] Improve tests</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll#7145c6ca</link>
        <description>[InstrProfiling][test] Improve tests

            List of files:
            /llvm-project-15.0.7/llvm/test/Instrumentation/InstrProfiling/profiling.ll</description>
        <pubDate>Sat, 29 May 2021 21:30:44 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
</channel>
</rss>
