<?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 comdat_internal.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/Transforms/PGOProfile/comdat_internal.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/Transforms/PGOProfile/comdat_internal.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>b5d884a3 - [PGO][test] Change opt -foo tests to -passes= and remove duplicates</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Transforms/PGOProfile/comdat_internal.ll#b5d884a3</link>
        <description>[PGO][test] Change opt -foo tests to -passes= and remove duplicates

            List of files:
            /llvm-project-15.0.7/llvm/test/Transforms/PGOProfile/comdat_internal.ll</description>
        <pubDate>Fri, 15 Apr 2022 03:35:35 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&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/Transforms/PGOProfile/comdat_internal.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/Transforms/PGOProfile/comdat_internal.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/Transforms/PGOProfile/comdat_internal.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/Transforms/PGOProfile/comdat_internal.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/Transforms/PGOProfile/comdat_internal.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/Transforms/PGOProfile/comdat_internal.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/Transforms/PGOProfile/comdat_internal.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/Transforms/PGOProfile/comdat_internal.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>1d7f8c75 - [test] Fix PGOProfile/comdat_internal.ll</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Transforms/PGOProfile/comdat_internal.ll#1d7f8c75</link>
        <description>[test] Fix PGOProfile/comdat_internal.ll

            List of files:
            /llvm-project-15.0.7/llvm/test/Transforms/PGOProfile/comdat_internal.ll</description>
        <pubDate>Sat, 27 Feb 2021 00:27:23 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>e56626e4 - [PGO] Move __profc_ and __profvp_ from their own comdat groups to __profd_&apos;s comdat group</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Transforms/PGOProfile/comdat_internal.ll#e56626e4</link>
        <description>[PGO] Move __profc_ and __profvp_ from their own comdat groups to __profd_&apos;s comdat groupD68041 placed `__profc_`,  `__profd_` and (if exists) `__profvp_` in different comdat groups.There are some issues:* Cost: one or two additional section headers (`.group` section(s)): 64 or 128 bytes on ELF64.* `__profc_`,  `__profd_` and (if exists) `__profvp_` should be retained or  discarded. Placing them into separate comdat groups is conceptually inferior.* If the prevailing group does not include `__profvp_` (value profiling not  used) but a non-prevailing group from another translation unit has `__profvp_`  (the function is inlined into another and triggers value profiling), there  will be a stray `__profvp_` if --gc-sections is not enabled.  This has been fixed by 3d6f53018f845e893ad34f64ff2851a2e5c3ba1d.Actually, we can reuse an existing symbol (we choose `__profd_`) as the groupsignature to avoid a string in the string table (the sole reason that D68041could improve code size is that `__profv_` was an otherwise unused symbol whichwasted string table space). This saves one or two section headers.For a -DCMAKE_BUILD_TYPE=Release -DLLVM_BUILD_INSTRUMENTED=IR build, `ninjaclang lld`, the patch has saved 10.5MiB (2.2%) for the total .o size.Reviewed By: davidxlDifferential Revision: https://reviews.llvm.org/D84723

            List of files:
            /llvm-project-15.0.7/llvm/test/Transforms/PGOProfile/comdat_internal.ll</description>
        <pubDate>Tue, 04 Aug 2020 03:35:50 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;maskray@google.com&gt;</dc:creator>
    </item>
<item>
        <title>36740500 - [PGO] Don&apos;t group COMDAT variables for compiler generated profile variables in ELF</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Transforms/PGOProfile/comdat_internal.ll#36740500</link>
        <description>[PGO] Don&apos;t group COMDAT variables for compiler generated profile variables in ELFWith this patch, compiler generated profile variables will have its own COMDATname for ELF format, which syncs the behavior with COFF. Tested with clangPGO bootstrap. This shows a modest reduction in object sizes in ELF format.Differential Revision: https://reviews.llvm.org/D68041llvm-svn: 373241

            List of files:
            /llvm-project-15.0.7/llvm/test/Transforms/PGOProfile/comdat_internal.ll</description>
        <pubDate>Mon, 30 Sep 2019 18:11:22 +0000</pubDate>
        <dc:creator>Rong Xu &lt;xur@google.com&gt;</dc:creator>
    </item>
<item>
        <title>7b1d7937 - Reland &quot;Change the X86 datalayout to add three address spaces</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Transforms/PGOProfile/comdat_internal.ll#7b1d7937</link>
        <description>Reland &quot;Change the X86 datalayout to add three address spaces for 32 bit signed, 32 bit unsigned, and 64 bit pointers.&quot;This reverts 57076d3199fc2b0af4a3736b7749dd5462cacda5.Original review at https://reviews.llvm.org/D64931.Review for added fix at https://reviews.llvm.org/D66843.llvm-svn: 371568

            List of files:
            /llvm-project-15.0.7/llvm/test/Transforms/PGOProfile/comdat_internal.ll</description>
        <pubDate>Tue, 10 Sep 2019 23:15:38 +0000</pubDate>
        <dc:creator>Amy Huang &lt;akhuang@google.com&gt;</dc:creator>
    </item>
<item>
        <title>57076d31 - Revert &quot;Change the X86 datalayout to add three address spaces for 32 bit signed,&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Transforms/PGOProfile/comdat_internal.ll#57076d31</link>
        <description>Revert &quot;Change the X86 datalayout to add three address spaces for 32 bit signed,&quot;This reverts commit r370083 because it caused check-lld failures onsanitizer-x86_64-linux-fast.llvm-svn: 370142

            List of files:
            /llvm-project-15.0.7/llvm/test/Transforms/PGOProfile/comdat_internal.ll</description>
        <pubDate>Wed, 28 Aug 2019 01:08:54 +0000</pubDate>
        <dc:creator>Vlad Tsyrklevich &lt;vlad@tsyrklevich.net&gt;</dc:creator>
    </item>
<item>
        <title>1299945b - Change the X86 datalayout to add three address spaces for 32 bit signed,</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Transforms/PGOProfile/comdat_internal.ll#1299945b</link>
        <description>Change the X86 datalayout to add three address spaces for 32 bit signed,32 bit unsigned, and 64 bit pointers.llvm-svn: 370083

            List of files:
            /llvm-project-15.0.7/llvm/test/Transforms/PGOProfile/comdat_internal.ll</description>
        <pubDate>Tue, 27 Aug 2019 17:46:53 +0000</pubDate>
        <dc:creator>Amy Huang &lt;akhuang@google.com&gt;</dc:creator>
    </item>
<item>
        <title>cee313d2 - Revert &quot;Temporarily Revert &quot;Add basic loop fusion pass.&quot;&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Transforms/PGOProfile/comdat_internal.ll#cee313d2</link>
        <description>Revert &quot;Temporarily Revert &quot;Add basic loop fusion pass.&quot;&quot;The reversion apparently deleted the test/Transforms directory.Will be re-reverting again.llvm-svn: 358552

            List of files:
            /llvm-project-15.0.7/llvm/test/Transforms/PGOProfile/comdat_internal.ll</description>
        <pubDate>Wed, 17 Apr 2019 04:52:47 +0000</pubDate>
        <dc:creator>Eric Christopher &lt;echristo@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>60faea19 - Resubmit r297897: [PGO] Value profile for size of memory intrinsic calls</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Transforms/PGOProfile/comdat_internal.ll#60faea19</link>
        <description>Resubmit r297897: [PGO] Value profile for size of memory intrinsic callsR297897 inadvertently enabled annotation for memop profiling. This new patchfixed it.llvm-svn: 297996

            List of files:
            /llvm-project-15.0.7/llvm/test/Transforms/PGOProfile/comdat_internal.ll</description>
        <pubDate>Thu, 16 Mar 2017 21:15:48 +0000</pubDate>
        <dc:creator>Rong Xu &lt;xur@google.com&gt;</dc:creator>
    </item>
<item>
        <title>971de622 - Revert &quot;[PGO] Value profile for size of memory intrinsic calls&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Transforms/PGOProfile/comdat_internal.ll#971de622</link>
        <description>Revert &quot;[PGO] Value profile for size of memory intrinsic calls&quot;This commit reverts r297897 and r297909.llvm-svn: 297951

            List of files:
            /llvm-project-15.0.7/llvm/test/Transforms/PGOProfile/comdat_internal.ll</description>
        <pubDate>Thu, 16 Mar 2017 13:16:35 +0000</pubDate>
        <dc:creator>Eric Liu &lt;ioeric@google.com&gt;</dc:creator>
    </item>
<item>
        <title>4ed52798 - [PGO] Value profile for size of memory intrinsic calls</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Transforms/PGOProfile/comdat_internal.ll#4ed52798</link>
        <description>[PGO] Value profile for size of memory intrinsic callsThis patch adds the value profile support to profile the size parameter ofmemory intrinsic calls: memcpy, memcmp, and memmov.Differential Revision: http://reviews.llvm.org/D28965llvm-svn: 297897

            List of files:
            /llvm-project-15.0.7/llvm/test/Transforms/PGOProfile/comdat_internal.ll</description>
        <pubDate>Wed, 15 Mar 2017 21:47:27 +0000</pubDate>
        <dc:creator>Rong Xu &lt;xur@google.com&gt;</dc:creator>
    </item>
<item>
        <title>55891fc7 - Re-apply &quot;[profiling] Remove dead profile name vars after emitting name data&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Transforms/PGOProfile/comdat_internal.ll#55891fc7</link>
        <description>Re-apply &quot;[profiling] Remove dead profile name vars after emitting name data&quot;This reverts 295092 (re-applies 295084), with a fix for danglingreferences from the array of coverage names passed down from frontends.I missed this in my initial testing because I only checked test/Profile,and not test/CoverageMapping as well.Original commit message:The profile name variables passed to counter increment intrinsics are deadafter we emit the finalized name data in __llvm_prf_nm. However, we neglect toerase these name variables. This causes huge size increases in the__TEXT,__const section as well as slowdowns when linker dead stripping isdisabled. Some affected projects are so massive that they fail to link onDarwin, because only the small code model is supported.Fix the issue by throwing away the name constants as soon as we&apos;re done withthem.Differential Revision: https://reviews.llvm.org/D29921llvm-svn: 295099

            List of files:
            /llvm-project-15.0.7/llvm/test/Transforms/PGOProfile/comdat_internal.ll</description>
        <pubDate>Tue, 14 Feb 2017 20:03:48 +0000</pubDate>
        <dc:creator>Vedant Kumar &lt;vsk@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>27ebdf4b - Revert &quot;[profiling] Remove dead profile name vars after emitting name data&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Transforms/PGOProfile/comdat_internal.ll#27ebdf4b</link>
        <description>Revert &quot;[profiling] Remove dead profile name vars after emitting name data&quot;This reverts commit r295084. There is a test failure on:http://lab.llvm.org:8011/builders/clang-atom-d525-fedora-rel/builds/2620/llvm-svn: 295092

            List of files:
            /llvm-project-15.0.7/llvm/test/Transforms/PGOProfile/comdat_internal.ll</description>
        <pubDate>Tue, 14 Feb 2017 19:08:39 +0000</pubDate>
        <dc:creator>Vedant Kumar &lt;vsk@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>bb104846 - [profiling] Remove dead profile name vars after emitting name data</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Transforms/PGOProfile/comdat_internal.ll#bb104846</link>
        <description>[profiling] Remove dead profile name vars after emitting name dataThe profile name variables passed to counter increment intrinsics aredead after we emit the finalized name data in __llvm_prf_nm. However, weneglect to erase these name variables. This causes huge size increasesin the __TEXT,__const section as well as slowdowns when linker deadstripping is disabled. Some affected projects are so massive that theyfail to link on Darwin, because only the small code model is supported.Fix the issue by throwing away the name constants as soon as we&apos;re donewith them.Differential Revision: https://reviews.llvm.org/D29921llvm-svn: 295084

            List of files:
            /llvm-project-15.0.7/llvm/test/Transforms/PGOProfile/comdat_internal.ll</description>
        <pubDate>Tue, 14 Feb 2017 18:48:48 +0000</pubDate>
        <dc:creator>Vedant Kumar &lt;vsk@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>20f5df1d - Resubmit &quot;[PGO] Turn off comdat renaming in IR PGO by default&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Transforms/PGOProfile/comdat_internal.ll#20f5df1d</link>
        <description>Resubmit &quot;[PGO] Turn off comdat renaming in IR PGO by default&quot;This patch resubmits the changes in r291588.llvm-svn: 291696

            List of files:
            /llvm-project-15.0.7/llvm/test/Transforms/PGOProfile/comdat_internal.ll</description>
        <pubDate>Wed, 11 Jan 2017 20:19:41 +0000</pubDate>
        <dc:creator>Rong Xu &lt;xur@google.com&gt;</dc:creator>
    </item>
</channel>
</rss>
