<?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 InstrProfilingMerge.c</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>bdbfaf0c - Giving a lot more functions prototypes; NFC</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c#bdbfaf0c</link>
        <description>Giving a lot more functions prototypes; NFCThis should address https://lab.llvm.org/buildbot/#/builders/37/builds/12315and speculatively fix other similar diagnostics.

            List of files:
            /llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c</description>
        <pubDate>Sat, 09 Apr 2022 21:23:32 +0000</pubDate>
        <dc:creator>Aaron Ballman &lt;aaron@aaronballman.com&gt;</dc:creator>
    </item>
<item>
        <title>11d30742 - [InstrProf] Add single byte coverage mode</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c#11d30742</link>
        <description>[InstrProf] Add single byte coverage modeUse the llvm flag `-pgo-function-entry-coverage` to create single byte &quot;counters&quot; to track functions coverage. This mode has significantly less size overhead in both code and data because  * We mark a function as &quot;covered&quot; with a store instead of an increment which generally requires fewer assembly instructions  * We use a single byte per function rather than 8 bytes per blockThe trade off of course is that this mode only tells you if a function has been covered. This is useful, for example, to detect dead code.When combined with debug info correlation [0] we are able to create an instrumented Clang binary that is only 150M (the vanilla Clang binary is 143M). That is an overhead of 7M (4.9%) compared to the default instrumentation (without value profiling) which has an overhead of 31M (21.7%).[0] https://groups.google.com/g/llvm-dev/c/r03Z6JoN7d4Reviewed By: kyuleeDifferential Revision: https://reviews.llvm.org/D116180

            List of files:
            /llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c</description>
        <pubDate>Thu, 27 Jan 2022 19:22:43 +0000</pubDate>
        <dc:creator>Ellis Hoag &lt;ellis.sparky.hoag@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>88d81770 - [InstrProf] Restore InstrProfData.inc to fix Fuchsia builds</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c#88d81770</link>
        <description>[InstrProf] Restore InstrProfData.inc to fix Fuchsia buildshttps://reviews.llvm.org/D116179 introduced some changes to`InstrProfData.inc` which broke some downstream builds. This commitreverts those changes since they only changes two field names.Reviewed By: phosekDifferential Revision: https://reviews.llvm.org/D117631

            List of files:
            /llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c</description>
        <pubDate>Wed, 19 Jan 2022 18:09:56 +0000</pubDate>
        <dc:creator>Ellis Hoag &lt;ellis.sparky.hoag@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>f2147375 - [InstrProf][NFC] Do not assume size of counter type</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c#f2147375</link>
        <description>[InstrProf][NFC] Do not assume size of counter typeExisting code tended to assume that counters had type `uint64_t` andcomputed size from the number of counters. Fix this code to directlycompute the counters size in number of bytes where possible. When thenumber of counters is needed, use `__llvm_profile_counter_entry_size()`or `getCounterTypeSize()`. In a later diff these functions will dependon the profile mode.Change the meaning of `DataSize` and `CountersSize` to make them more clear.* `DataSize` (`CountersSize`) - the size of the data (counter) section in bytes.* `NumData` (`NumCounters`) - the number of data (counter) entries.Reviewed By: kyuleeDifferential Revision: https://reviews.llvm.org/D116179

            List of files:
            /llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c</description>
        <pubDate>Wed, 29 Dec 2021 21:36:28 +0000</pubDate>
        <dc:creator>Ellis Hoag &lt;ellis.sparky.hoag@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>ac719d7c - [InstrProf] Don&apos;t profile merge by default in lightweight mode</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c#ac719d7c</link>
        <description>[InstrProf] Don&apos;t profile merge by default in lightweight modeProfile merging is not supported when using debug info profilecorrelation because the data section won&apos;t be in the binary at runtime.Change the default profile name in this mode to `default_%p.proflite` sowe don&apos;t use profile merging.Reviewed By: kyuleeDifferential Revision: https://reviews.llvm.org/D115979

            List of files:
            /llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c</description>
        <pubDate>Mon, 20 Dec 2021 17:47:32 +0000</pubDate>
        <dc:creator>Ellis Hoag &lt;ellis.sparky.hoag@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>58d9c1ae - [Try2][InstrProf] Attach debug info to counters</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c#58d9c1ae</link>
        <description>[Try2][InstrProf] Attach debug info to countersAdd the llvm flag `-debug-info-correlate` to attach debug info to instrumentation counters so we can correlate raw profile data to their functions. Raw profiles are dumped as `.proflite` files. The next diff enables `llvm-profdata` to consume `.proflite` and debug info files to produce a normal `.profdata` profile.Part of the &quot;lightweight instrumentation&quot; work: https://groups.google.com/g/llvm-dev/c/r03Z6JoN7d4The original diff https://reviews.llvm.org/D114565 was reverted because of the `Instrumentation/InstrProfiling/debug-info-correlate.ll` test, which is fixed in this commit.Reviewed By: kyuleeDifferential Revision: https://reviews.llvm.org/D115693

            List of files:
            /llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c</description>
        <pubDate>Thu, 16 Dec 2021 22:19:03 +0000</pubDate>
        <dc:creator>Ellis Hoag &lt;ellis.sparky.hoag@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>c809da7d - Revert &quot;[InstrProf] Attach debug info to counters&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c#c809da7d</link>
        <description>Revert &quot;[InstrProf] Attach debug info to counters&quot;This reverts commit 800bf8ed29fbcaa9436540e83bc119ec92e7d40f.The `Instrumentation/InstrProfiling/debug-info-correlate.ll` test wasfailing because I forgot the `llc` commands are architecture specific.I&apos;ll follow up with a fix.Differential Revision: https://reviews.llvm.org/D115689

            List of files:
            /llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c</description>
        <pubDate>Tue, 14 Dec 2021 02:08:57 +0000</pubDate>
        <dc:creator>Ellis Hoag &lt;ellis.sparky.hoag@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>800bf8ed - [InstrProf] Attach debug info to counters</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c#800bf8ed</link>
        <description>[InstrProf] Attach debug info to countersAdd the llvm flag `-debug-info-correlate` to attach debug info to instrumentation counters so we can correlate raw profile data to their functions. Raw profiles are dumped as `.proflite` files. The next diff enables `llvm-profdata` to consume `.proflite` and debug info files to produce a normal `.profdata` profile.Part of the &quot;lightweight instrumentation&quot; work: https://groups.google.com/g/llvm-dev/c/r03Z6JoN7d4Reviewed By: kyuleeDifferential Revision: https://reviews.llvm.org/D114565

            List of files:
            /llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c</description>
        <pubDate>Tue, 14 Dec 2021 00:47:47 +0000</pubDate>
        <dc:creator>Ellis Hoag &lt;ellis.sparky.hoag@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>1df7289a - [compiler-rt/profile] Include __llvm_profile_get_magic in module signature</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c#1df7289a</link>
        <description>[compiler-rt/profile] Include __llvm_profile_get_magic in module signatureThe INSTR_PROF_RAW_MAGIC_* number in profraw files should match duringprofile merging.  This causes an error with 32-bit and 64-bit variantsof the same code.  The module signatures for the two binaries areidentical but they use different INSTR_PROF_RAW_MAGIC_* causing afailure when profile-merging is used.  Including it when computing themodule signature yields different signatures for the 32-bit and 64-bitprofiles.Differential Revision: https://reviews.llvm.org/D114054

            List of files:
            /llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c</description>
        <pubDate>Tue, 23 Nov 2021 18:03:04 +0000</pubDate>
        <dc:creator>Pirama Arumuga Nainar &lt;pirama@google.com&gt;</dc:creator>
    </item>
<item>
        <title>83302c84 - [profile] Fix profile merging with binary IDs</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c#83302c84</link>
        <description>[profile] Fix profile merging with binary IDsThis fixes support for merging profiles which broke as a consequenceof e50a38840dc3db5813f74b1cd2e10e6d984d0e67. The issue was missingadjustment in merge logic to account for the binary IDs which arenow included in the raw profile just after header.In addition, this change also:* Includes the version in module signature that&apos;s used for mergingto avoid accidental attempts to merge incompatible profiles.* Moves the binary IDs size field after version field in the headeras was suggested in the review.Differential Revision: https://reviews.llvm.org/D107143

            List of files:
            /llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c</description>
        <pubDate>Fri, 30 Jul 2021 09:40:27 +0000</pubDate>
        <dc:creator>Petr Hosek &lt;phosek@google.com&gt;</dc:creator>
    </item>
<item>
        <title>d3dd07e3 - Revert &quot;[profile] Fix profile merging with binary IDs&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c#d3dd07e3</link>
        <description>Revert &quot;[profile] Fix profile merging with binary IDs&quot;This reverts commit dcadd64986b8a84dc244d4e7faa848fb4c18cea6.

            List of files:
            /llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c</description>
        <pubDate>Sat, 31 Jul 2021 01:53:48 +0000</pubDate>
        <dc:creator>Petr Hosek &lt;phosek@google.com&gt;</dc:creator>
    </item>
<item>
        <title>dcadd649 - [profile] Fix profile merging with binary IDs</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c#dcadd649</link>
        <description>[profile] Fix profile merging with binary IDsThis fixes support for merging profiles which broke as a consequenceof e50a38840dc3db5813f74b1cd2e10e6d984d0e67. The issue was missingadjustment in merge logic to account for the binary IDs which arenow included in the raw profile just after header.In addition, this change also:* Includes the version in module signature that&apos;s used for mergingto avoid accidental attempts to merge incompatible profiles.* Moves the binary IDs size field after version field in the headeras was suggested in the review.Differential Revision: https://reviews.llvm.org/D107143

            List of files:
            /llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c</description>
        <pubDate>Fri, 30 Jul 2021 09:40:27 +0000</pubDate>
        <dc:creator>Petr Hosek &lt;phosek@google.com&gt;</dc:creator>
    </item>
<item>
        <title>6ea2f31f - Revert &quot;[profile] Fix profile merging with binary IDs&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c#6ea2f31f</link>
        <description>Revert &quot;[profile] Fix profile merging with binary IDs&quot;This reverts commit 89d6eb6f8c5d94093f30a5f37b193a2422491642, thisseemed to have break a few builders.

            List of files:
            /llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c</description>
        <pubDate>Fri, 30 Jul 2021 21:32:15 +0000</pubDate>
        <dc:creator>Petr Hosek &lt;phosek@google.com&gt;</dc:creator>
    </item>
<item>
        <title>89d6eb6f - [profile] Fix profile merging with binary IDs</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c#89d6eb6f</link>
        <description>[profile] Fix profile merging with binary IDsThis fixes support for merging profiles which broke as a consequenceof e50a38840dc3db5813f74b1cd2e10e6d984d0e67. The issue was missingadjustment in merge logic to account for the binary IDs which arenow included in the raw profile just after header.In addition, this change also:* Includes the version in module signature that&apos;s used for mergingto avoid accidental attempts to merge incompatible profiles.* Moves the binary IDs size field after version field in the headeras was suggested in the review.Differential Revision: https://reviews.llvm.org/D107143

            List of files:
            /llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c</description>
        <pubDate>Fri, 30 Jul 2021 09:40:27 +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/compiler-rt/lib/profile/InstrProfilingMerge.c#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/compiler-rt/lib/profile/InstrProfilingMerge.c</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>b73742bc - [Profile] Remove redundant check</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c#b73742bc</link>
        <description>[Profile] Remove redundant checkThis is already checked outside the loop.Followup to D104050.

            List of files:
            /llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c</description>
        <pubDate>Thu, 10 Jun 2021 23:23:09 +0000</pubDate>
        <dc:creator>Arthur Eubanks &lt;aeubanks@google.com&gt;</dc:creator>
    </item>
<item>
        <title>189428c8 - [Profile] Handle invalid profile data</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c#189428c8</link>
        <description>[Profile] Handle invalid profile dataThis mostly follows LLVM&apos;s InstrProfReader.cpp error handling.Previously, attempting to merge corrupted profile data would result incrashes. See https://crbug.com/1216811#c4.Reviewed By: rnkDifferential Revision: https://reviews.llvm.org/D104050

            List of files:
            /llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c</description>
        <pubDate>Thu, 10 Jun 2021 17:33:47 +0000</pubDate>
        <dc:creator>Arthur Eubanks &lt;aeubanks@google.com&gt;</dc:creator>
    </item>
<item>
        <title>f35032e0 - Reland &quot;[CMake] Support installation of InstrProfData.inc&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c#f35032e0</link>
        <description>Reland &quot;[CMake] Support installation of InstrProfData.inc&quot;This header fragment is useful on its own for any consumer that wantsto use custom instruction profile runtime with the LLVM instrumentation.The concrete use case is in Fuchsia&apos;s kernel where we want to useinstruction profile instrumentation, but we cannot use the compiler-rtruntime because it&apos;s not designed for use in the kernel environment.This change allows installing this header as part of compiler-rt.Differential Revision: https://reviews.llvm.org/D64532

            List of files:
            /llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c</description>
        <pubDate>Fri, 22 Nov 2019 20:09:15 +0000</pubDate>
        <dc:creator>Petr Hosek &lt;phosek@google.com&gt;</dc:creator>
    </item>
<item>
        <title>262b10ba - Revert &quot;[CMake] Support installation of InstrProfData.inc&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c#262b10ba</link>
        <description>Revert &quot;[CMake] Support installation of InstrProfData.inc&quot;This reverts commit f11bc1776fd2815b60e0b1ed97be00b517348162 since it&apos;sfailing to build on some bots.

            List of files:
            /llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c</description>
        <pubDate>Fri, 22 Nov 2019 20:00:23 +0000</pubDate>
        <dc:creator>Petr Hosek &lt;phosek@google.com&gt;</dc:creator>
    </item>
<item>
        <title>f11bc177 - [CMake] Support installation of InstrProfData.inc</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c#f11bc177</link>
        <description>[CMake] Support installation of InstrProfData.incThis header fragment is useful on its own for any consumer that wantsto use custom instruction profile runtime with the LLVM instrumentation.The concrete use case is in Fuchsia&apos;s kernel where we want to useinstruction profile instrumentation, but we cannot use the compiler-rtruntime because it&apos;s not designed for use in the kernel environment.This change allows installing this header as part of compiler-rt.Differential Revision: https://reviews.llvm.org/D64532

            List of files:
            /llvm-project-15.0.7/compiler-rt/lib/profile/InstrProfilingMerge.c</description>
        <pubDate>Fri, 22 Nov 2019 03:39:51 +0000</pubDate>
        <dc:creator>Petr Hosek &lt;phosek@google.com&gt;</dc:creator>
    </item>
</channel>
</rss>
