<?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 MCDwarf.cpp</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>e2da7244 - [MCDwarf] Respect -fdebug-prefix-map= for generated assembly debug info (DWARF v5)</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp#e2da7244</link>
        <description>[MCDwarf] Respect -fdebug-prefix-map= for generated assembly debug info (DWARF v5)For generated assembly debug info, MCDwarfLineTableHeader::CompilationDir is anunmapped path set in MCContext::setGenDwarfRootFile. Remap it.A relative destination path of -fdebug-prefix-map= exposes a llvm-dwarfdump bugwhich joins relative DW_AT_comp_dir and directories[0].Fix https://github.com/llvm/llvm-project/issues/56609Reviewed By: dblaikieDifferential Revision: https://reviews.llvm.org/D131749(cherry picked from commit f62e60fb238146113f84e0efb1a2ebc52f05cc0a)

            List of files:
            /llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp</description>
        <pubDate>Fri, 12 Aug 2022 19:52:36 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>c4398881 - [MCDwarf] Use emplace to avoid move assignment. NFC</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp#c4398881</link>
        <description>[MCDwarf] Use emplace to avoid move assignment. NFC(cherry picked from commit b0c4cd35df89479ec152c1f79e18d0264dd276cc)

            List of files:
            /llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp</description>
        <pubDate>Fri, 12 Aug 2022 05:05:49 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>0916d96d - Don&apos;t use Optional::hasValue (NFC)</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp#0916d96d</link>
        <description>Don&apos;t use Optional::hasValue (NFC)

            List of files:
            /llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp</description>
        <pubDate>Tue, 21 Jun 2022 03:17:57 +0000</pubDate>
        <dc:creator>Kazu Hirata &lt;kazu@google.com&gt;</dc:creator>
    </item>
<item>
        <title>129b531c - [llvm] Use value_or instead of getValueOr (NFC)</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp#129b531c</link>
        <description>[llvm] Use value_or instead of getValueOr (NFC)

            List of files:
            /llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp</description>
        <pubDate>Sun, 19 Jun 2022 06:07:11 +0000</pubDate>
        <dc:creator>Kazu Hirata &lt;kazu@google.com&gt;</dc:creator>
    </item>
<item>
        <title>d4bcb45d - [MC][re-land] Omit DWARF unwind info if compact unwind is present where eligible</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp#d4bcb45d</link>
        <description>[MC][re-land] Omit DWARF unwind info if compact unwind is present where eligibleThis reverts commit d941d597837d9e1405086f008c9bd6a71e7263c9.Differential Revision: https://reviews.llvm.org/D122258

            List of files:
            /llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp</description>
        <pubDate>Sun, 12 Jun 2022 21:15:56 +0000</pubDate>
        <dc:creator>Jez Ng &lt;jezng@fb.com&gt;</dc:creator>
    </item>
<item>
        <title>d941d597 - Revert &quot;[MC] Omit DWARF unwind info if compact unwind is present where eligible&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp#d941d597</link>
        <description>Revert &quot;[MC] Omit DWARF unwind info if compact unwind is present where eligible&quot;This reverts commit ef501bf85d8c869248e51371f0e74bcec0e7b229.

            List of files:
            /llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp</description>
        <pubDate>Sun, 12 Jun 2022 14:46:49 +0000</pubDate>
        <dc:creator>Jez Ng &lt;jezng@fb.com&gt;</dc:creator>
    </item>
<item>
        <title>ef501bf8 - [MC] Omit DWARF unwind info if compact unwind is present where eligible</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp#ef501bf8</link>
        <description>[MC] Omit DWARF unwind info if compact unwind is present where eligiblePreviously, omitting unnecessary DWARF unwinds was only done in twocases:* For Darwin + aarch64, if no DWARF unwind info is needed for all the  functions in a TU, then the `__eh_frame` section would be omitted  entirely. If any one function needed DWARF unwind, then MC would emit  DWARF unwind entries for all the functions in the TU.* For watchOS, MC would omit DWARF unwind on a per-function basis, as  long as compact unwind was available for that function.This diff makes it so that we omit DWARF unwind on a per-function basisfor Darwin + aarch64 as well. In addition, we introduce the flag`--emit-dwarf-unwind=` which can toggle between `always`,`no-compact-unwind` (only emit DWARF when CU cannot be emitted for agiven function), and the target platform `default`.  `no-compact-unwind`is particularly useful for newer x86_64 platforms: we don&apos;t want to omitDWARF unwind for x86_64 in general due to possible backwards compatissues, but we should make it possible for people to opt into thisbehavior if they are only targeting newer platforms.**Motivation:** I&apos;m working on adding support for `__eh_frame` to LLD,but I&apos;m concerned that we would suffer a perf hit. Processing compactunwind is already expensive, and that&apos;s a simpler format than EH frames.Given that MC currently produces one EH frame entry for every compactunwind entry, I don&apos;t think processing them will be cheap. I tried to dosomething clever on LLD&apos;s end to drop the unnecessary EH frames at parsetime, but this made the code significantly more complex. So I&apos;m lookingat fixing this at the MC level instead.**Addendum:** It turns out that there was a latent bug in the X86backend when `OmitDwarfIfHaveCompactUnwind` is naively enabled, which isnot too surprising given that this combination has not been heretoforeused.For functions that have unwind info that cannot be encoded with CU, MCwould end up dropping both the compact unwind entry (OK; existingbehavior) as well as the DWARF entries (not OK).  This diff fixes thingsso that we emit the DWARF entry, as well as a CU entry with encoding`UNWIND_X86_MODE_DWARF` -- this basically tells the unwinder to look forthe DWARF entry. I&apos;m not 100% sure the `UNWIND_X86_MODE_DWARF` CU entryis necessary, this was the simplest fix. ld64 seems to be able to handleboth the absence and presence of this CU entry. Ultimately ld64 (andLLD) will synthesize `UNWIND_X86_MODE_DWARF` if it is absent, so thereis no impact to the final binary size.Reviewed By: davide, lhamesDifferential Revision: https://reviews.llvm.org/D122258

            List of files:
            /llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp</description>
        <pubDate>Sun, 12 Jun 2022 14:03:56 +0000</pubDate>
        <dc:creator>Jez Ng &lt;jezng@fb.com&gt;</dc:creator>
    </item>
<item>
        <title>adf4142f - [MC] De-capitalize SwitchSection. NFC</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp#adf4142f</link>
        <description>[MC] De-capitalize SwitchSection. NFCAdd SwitchSection to return switchSection. The API will be removed soon.

            List of files:
            /llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp</description>
        <pubDate>Sat, 11 Jun 2022 05:50:55 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>0593ce5f - [MC] Add &apos;G&apos; to augmentation string for MTE instrumented functions</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp#0593ce5f</link>
        <description>[MC] Add &apos;G&apos; to augmentation string for MTE instrumented functionsThis was agreed on inhttps://lists.llvm.org/pipermail/llvm-dev/2020-May/141345.htmlThe thread proposed two options* add a character to augmentation string and handle in libuwind* use a separate personality function.It was determined that this is the simpler and better option.This is part of ARM&apos;s Aarch64 ABI:https://github.com/ARM-software/abi-aa/blob/main/aadwarf64/aadwarf64.rst#id22The next step after this is teaching libunwind to untag when thisaugmentation character is set.Reviewed By: MaskRay, eugenisDifferential Revision: https://reviews.llvm.org/D127007

            List of files:
            /llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp</description>
        <pubDate>Fri, 03 Jun 2022 01:05:02 +0000</pubDate>
        <dc:creator>Florian Mayer &lt;fmayer@google.com&gt;</dc:creator>
    </item>
<item>
        <title>c87d405b - [DWARF] Add API to get data from MCDwarfLineStr</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp#c87d405b</link>
        <description>[DWARF] Add API to get data from MCDwarfLineStrThis API will be used in D121876, to get finalized string data for.debug_line_str.Reviewed By: dblaikie, rafaulerDifferential Revision: https://reviews.llvm.org/D124052

            List of files:
            /llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp</description>
        <pubDate>Thu, 21 Apr 2022 21:07:05 +0000</pubDate>
        <dc:creator>Alexander Yermolovich &lt;ayermolo@fb.com&gt;</dc:creator>
    </item>
<item>
        <title>330268ba - [Support/Hash functions] Change the `final()` and `result()` of the hashing functions to return an array of bytes</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp#330268ba</link>
        <description>[Support/Hash functions] Change the `final()` and `result()` of the hashing functions to return an array of bytesReturning `std::array&lt;uint8_t, N&gt;` is better ergonomics for the hashing functions usage, instead of a `StringRef`:* When returning `StringRef`, client code is &quot;jumping through hoops&quot; to do string manipulations instead of dealing with fixed array of bytes directly, which is more natural* Returning `std::array&lt;uint8_t, N&gt;` avoids the need for the hasher classes to keep a field just for the purpose of wrapping it and returning it as a `StringRef`As part of this patch also:* Introduce `TruncatedBLAKE3` which is useful for using BLAKE3 as the hasher type for `HashBuilder` with non-default hash sizes.* Make `MD5Result` inherit from `std::array&lt;uint8_t, 16&gt;` which improves &amp; simplifies its API.Differential Revision: https://reviews.llvm.org/D123100

            List of files:
            /llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp</description>
        <pubDate>Mon, 04 Apr 2022 23:48:30 +0000</pubDate>
        <dc:creator>Argyrios Kyrtzidis &lt;kyrtzidis@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>f15014ff - Revert &quot;Rename llvm::array_lengthof into llvm::size to match std::size from C++17&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp#f15014ff</link>
        <description>Revert &quot;Rename llvm::array_lengthof into llvm::size to match std::size from C++17&quot;This reverts commit ef8206320769ad31422a803a0d6de6077fd231d2.- It conflicts with the existing llvm::size in STLExtras, which will now  never be called.- Calling it without llvm:: breaks C++17 compat

            List of files:
            /llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp</description>
        <pubDate>Wed, 26 Jan 2022 15:55:53 +0000</pubDate>
        <dc:creator>Benjamin Kramer &lt;benny.kra@googlemail.com&gt;</dc:creator>
    </item>
<item>
        <title>ef820632 - Rename llvm::array_lengthof into llvm::size to match std::size from C++17</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp#ef820632</link>
        <description>Rename llvm::array_lengthof into llvm::size to match std::size from C++17As a conquence move llvm::array_lengthof from STLExtras.h toSTLForwardCompat.h (which is included by STLExtras.h so no buildbreakage expected).

            List of files:
            /llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp</description>
        <pubDate>Wed, 26 Jan 2022 15:11:12 +0000</pubDate>
        <dc:creator>serge-sans-paille &lt;sguelton@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>86b08ed6 - [DebugInfo][NFC] Do not call &apos;isRootFile&apos; for DWARF Version &lt; 5</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp#86b08ed6</link>
        <description>[DebugInfo][NFC] Do not call &apos;isRootFile&apos; for DWARF Version &lt; 5A quicker comparison should be done first.Differential Revision: https://reviews.llvm.org/D117786

            List of files:
            /llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp</description>
        <pubDate>Fri, 21 Jan 2022 06:04:44 +0000</pubDate>
        <dc:creator>Igor Kudrin &lt;ikudrin@accesssoftek.com&gt;</dc:creator>
    </item>
<item>
        <title>75184f14 - [DebugInfo] Fix handling &apos;# line &quot;file&quot;&apos; for DWARFv5</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp#75184f14</link>
        <description>[DebugInfo] Fix handling &apos;# line &quot;file&quot;&apos; for DWARFv5`CppHashInfo.Filename` is a `StringRef` that references a part of thesource file and it is not null-terminated at the end of the file name.`AsmParser::parseAndMatchAndEmitTargetInstruction()` passes it to`getStreamer().emitDwarfFileDirective()`, and it eventually comes to`isRootFile()`. The comparison fails because `FileName.data()` is notproperly terminated.In addition, the old code might cause a significant speed degradationfor long source files. The `operator!=()` for `std::string` and`const char *` can be implemented in a way that it finds the length ofthe second argument first, which slows the comparison for long data.`parseAndMatchAndEmitTargetInstruction()` calls`emitDwarfFileDirective()` every time if `CppHashInfo.Filename` is notempty. As a result, the longer the source file is, the slower thecompilation wend, and for a very long file, it might take hours insteadof a couple of seconds normally.Differential Revision: https://reviews.llvm.org/D117785

            List of files:
            /llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp</description>
        <pubDate>Fri, 21 Jan 2022 06:04:32 +0000</pubDate>
        <dc:creator>Igor Kudrin &lt;ikudrin@accesssoftek.com&gt;</dc:creator>
    </item>
<item>
        <title>6747d44b - [DebugInfo] Fix end_sequence of debug_line in LTO Object</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp#6747d44b</link>
        <description>[DebugInfo] Fix end_sequence of debug_line in LTO ObjectIn a LTO build, the `end_sequence` in debug_line table for each compile unit (CU) points the end of text section which merged all CUs. The `end_sequence` needs to point to the end of each CU&apos;s range. This bug often causes invalid `debug_line` table in the final `.dSYM` binary for MachO after running `dsymutil` which tries to compensate an out-of-range address of `end_sequence`.The fix is to sync the line table termination with the range operations that are already maintained in DwarfDebug. When CU or section changes, or nodebug functions appear or module is finished, the prior pending line table is terminated using the last range label. In the MC path where no range is tracked, the old logic is conservatively used to end the line table using the section end symbol.Reviewed By: dblaikieDifferential Revision: https://reviews.llvm.org/D108261

            List of files:
            /llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp</description>
        <pubDate>Mon, 15 Nov 2021 04:18:36 +0000</pubDate>
        <dc:creator>Kyungwoo Lee &lt;kyulee@fb.com&gt;</dc:creator>
    </item>
<item>
        <title>050edef8 - [MC] Make MCDwarfLineStr class public</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp#050edef8</link>
        <description>[MC] Make MCDwarfLineStr class publicAdd MCDwarfLineStr class to the public API.Note that MCDwarfLineTableHeader::Emit(), takes MCDwarfLineStr asan Optional&lt;&gt; parameter making it impossible to use the API if the classis not publicly defined.Reviewed By: alexander-shaposhnikovDifferential Revision: https://reviews.llvm.org/D109412

            List of files:
            /llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp</description>
        <pubDate>Fri, 17 Sep 2021 20:24:15 +0000</pubDate>
        <dc:creator>Maksim Panchenko &lt;maks@fb.com&gt;</dc:creator>
    </item>
<item>
        <title>bbea6425 - RISCV: adjust handling of relocation emission for RISCV</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp#bbea6425</link>
        <description>RISCV: adjust handling of relocation emission for RISCVThis re-architects the RISCV relocation handling to bring theimplementation closer in line with the implementation in binutils.  Wewould previously aggressively resolve the relocation.  With thisrestructuring, we always will emit a paired relocation for any symbolicdifference of the type of S&#177;T[&#177;C] where S and T are labels and C is aconstant.GAS has a special target hook controlled by `RELOC_EXPANSION_POSSIBLE`which indicates that a fixup may be expanded into multiple relocations.This is used by the RISCV backend to always emit a paired relocation -either ADD[WIDTH] + SUB[WIDTH] for text relocations or SET[WIDTH] +SUB[WIDTH] for a debug info relocation.  Irrespective of whether linkerrelaxation support is enabled, symbolic difference is always emitted asa paired relocation.This change also sinks the target specific behaviour down into thetarget specific area rather than exposing it to the shared relocationhandling.  In the process, we also sink the &quot;special&quot; handling for debuginformation down into the RISCV target.  Although this improves the pathfor the other targets, this is not necessarily entirely ideal either.The changes in the debug info emission could be done through anothertype of hook as this functionality would be required by any other targetwhich wishes to do linker relaxation.  However, as there are no othertargets in LLVM which currently do this, this is a reasonable thing todo until such time as the code needs to be shared.Improve the handling of the relocation (and add a reduced test case fromthe Linux kernel) to ensure that we handle complex expressions forsymbolic difference.  This ensures that we correct relocate symbols withthe adddends normalized and associated with the addition portion of thepaired relocation.This change also addresses some review comments from Alex Bradbury aboutthe relocations meant for use in the DWARF CFA being named incorrectly(using ADD6 instead of SET6) in the original change which introduced therelocation type.This resolves the issues with the symbolic difference emissionsufficiently to enable building the Linux kernel with clang+IAS+lld(without linker relaxation).Resolves PR50153, PR50156!Fixes: ClangBuiltLinux/linux#1023, ClangBuiltLinux/linux#1143Reviewed By: nickdesaulniers, maskrayDifferential Revision: https://reviews.llvm.org/D103539

            List of files:
            /llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp</description>
        <pubDate>Wed, 26 May 2021 15:41:11 +0000</pubDate>
        <dc:creator>Saleem Abdulrasool &lt;abdulras@google.com&gt;</dc:creator>
    </item>
<item>
        <title>167e7afc - Implement DW_CFA_LLVM_* for Heterogeneous Debugging</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp#167e7afc</link>
        <description>Implement DW_CFA_LLVM_* for Heterogeneous DebuggingAdd support in MC/MIR for writing/parsing, and DebugInfo.This is part of the Extensions for Heterogeneous Debugging defined athttps://llvm.org/docs/AMDGPUDwarfExtensionsForHeterogeneousDebugging.htmlSpecifically the CFI instructions implemented here are defined athttps://llvm.org/docs/AMDGPUDwarfExtensionsForHeterogeneousDebugging.html#cfa-definition-instructionsReviewed By: clayborgDifferential Revision: https://reviews.llvm.org/D76877

            List of files:
            /llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp</description>
        <pubDate>Mon, 14 Jun 2021 01:27:58 +0000</pubDate>
        <dc:creator>RamNalamothu &lt;VenkataRamanaiah.Nalamothu@amd.com&gt;</dc:creator>
    </item>
<item>
        <title>fafbdfe6 - [Debug-Info] Add names for the debug line prologue.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp#fafbdfe6</link>
        <description>[Debug-Info] Add names for the debug line prologue.Summary: This is a minor patch to add names for the debug line prologue, as a follow-up of D95998.Reviewed By: dblaikie, ikudrin, shchenzDifferential Revision: https://reviews.llvm.org/D98383

            List of files:
            /llvm-project-15.0.7/llvm/lib/MC/MCDwarf.cpp</description>
        <pubDate>Fri, 12 Mar 2021 04:42:19 +0000</pubDate>
        <dc:creator>Esme-Yi &lt;esme.yi@ibm.com&gt;</dc:creator>
    </item>
</channel>
</rss>
