<?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 ELF_x86_64.cpp</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>9fc0aa45 - [JITLink][ELF] Log enum name of unsupported relocation type.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp#9fc0aa45</link>
        <description>[JITLink][ELF] Log enum name of unsupported relocation type.Logs enum name of unsupported relocation type. This also changes elf/x86 to use common util function (getELFRelocationTypeName) inside llvm object module.Reviewed By: lhamesDifferential Revision: https://reviews.llvm.org/D127715

            List of files:
            /llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp</description>
        <pubDate>Wed, 15 Jun 2022 14:24:18 +0000</pubDate>
        <dc:creator>Sunho Kim &lt;ksunhokim123@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>43acef48 - [JITLink] Refactor and expand DWARF pointer encoding support.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp#43acef48</link>
        <description>[JITLink] Refactor and expand DWARF pointer encoding support.Adds support for pointer encodings commonly used in large/static models,including non-pcrel, sdata/udata8, indirect, and omit.Also refactors pointer-encoding handling to consolidate error generation insidecommon functions, rather than callees of those functions.

            List of files:
            /llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp</description>
        <pubDate>Fri, 15 Apr 2022 18:22:26 +0000</pubDate>
        <dc:creator>Lang Hames &lt;lhames@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>d46409fc - Move DWARFRecordSectionSplitter code to its own file</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp#d46409fc</link>
        <description>Move DWARFRecordSectionSplitter code to its own fileWith 229d576b31f4071ab68c85ac4fabb78cfa502b04 the class EHFrameSplitter was renamed to DWARFRecordSectionSplitter. This change merely moves it to it&apos;s own .cpp/.h fileDifferential Revision: https://reviews.llvm.org/D121721

            List of files:
            /llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp</description>
        <pubDate>Tue, 15 Mar 2022 18:36:06 +0000</pubDate>
        <dc:creator>Shubham Sandeep Rastogi &lt;srastogi22@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>229d576b - Rename EHFrameSplitter to DWARFRecordSectionSplitter</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp#229d576b</link>
        <description>Rename EHFrameSplitter to DWARFRecordSectionSplitterEHFrameSplitter does the exact same work to split up the eh_frame as it would need for any section that follows the DWARF record, therefore this patch just changes the name of it to DWARFRecordSectionSplitter to be more general.Differential Revision: https://reviews.llvm.org/D121486

            List of files:
            /llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp</description>
        <pubDate>Fri, 11 Mar 2022 20:14:05 +0000</pubDate>
        <dc:creator>Shubham Sandeep Rastogi &lt;srastogi22@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>091e3648 - [JITLink][ELF] Support duplicated section names from object file</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp#091e3648</link>
        <description>[JITLink][ELF] Support duplicated section names from object fileELF object files can contain duplicated sections (thus section symbolsas well), espeically when comdats/section groups are present. This patchadds support for generating LinkGraph from object files that haveduplicated section names. This is the first step to properly modelcomdats/section groups.Reviewed By: lhamesDifferential Revision: https://reviews.llvm.org/D114753

            List of files:
            /llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp</description>
        <pubDate>Tue, 18 Jan 2022 16:38:15 +0000</pubDate>
        <dc:creator>Steven Wu &lt;stevenwu@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>118e953b - Re-apply &quot;[JITLink] Update JITLink to use ExecutorAddr rather... &quot; with fixes.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp#118e953b</link>
        <description>Re-apply &quot;[JITLink] Update JITLink to use ExecutorAddr rather... &quot; with fixes.This re-applies 133f86e95492b2a00b944e070878424cfa73f87c, which was reverted inc5965a411c635106a47738b8d2e24db822b7416f while I investigated bot failures.The original failure contained an arithmetic conversion think-o (on line 419 ofEHFrameSupport.cpp) that could cause failures on 32-bit platforms. The issueshould be fixed in this patch.

            List of files:
            /llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp</description>
        <pubDate>Thu, 06 Jan 2022 05:03:06 +0000</pubDate>
        <dc:creator>Lang Hames &lt;lhames@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>c5965a41 - Revert &quot;[JITLink] Update JITLink to use ExecutorAddr rather than...&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp#c5965a41</link>
        <description>Revert &quot;[JITLink] Update JITLink to use ExecutorAddr rather than...&quot;This reverts commit 133f86e95492b2a00b944e070878424cfa73f87c while I investigatethe bot failures at https://lab.llvm.org/buildbot#builders/186/builds/3370.

            List of files:
            /llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp</description>
        <pubDate>Thu, 06 Jan 2022 04:18:40 +0000</pubDate>
        <dc:creator>Lang Hames &lt;lhames@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>133f86e9 - [JITLink] Update JITLink to use ExecutorAddr rather than JITTargetAddress.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp#133f86e9</link>
        <description>[JITLink] Update JITLink to use ExecutorAddr rather than JITTargetAddress.ExecutorAddr is the preferred representation for executor process addresses now.

            List of files:
            /llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp</description>
        <pubDate>Wed, 05 Jan 2022 06:00:06 +0000</pubDate>
        <dc:creator>Lang Hames &lt;lhames@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>21562c03 - [JITLink][ELF][x86-64] Adjust addends for R_X86_64_PLT32 relocations.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp#21562c03</link>
        <description>[JITLink][ELF][x86-64] Adjust addends for R_X86_64_PLT32 relocations.R_X86_64_PLT32 explicitly represents the &apos;-4&apos; PC-adjustment in the relocation&apos;saddend, but JITLink&apos;s x86_64::Branch32PCRel includes the PC-adjustmentimplicitly. We have been zeroing the addend to account for the difference, butthis breaks for branches to non-zero offsets past labels. This patch updates therelocation parsing code to unconditionally adjust the offset by &apos;+4&apos; instead.For branches directly to labels the result is still 0, for branches to offsetspast labels the result is the correct addend for x86_64::Branch32PCRel.

            List of files:
            /llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp</description>
        <pubDate>Sun, 05 Dec 2021 09:31:03 +0000</pubDate>
        <dc:creator>Lang Hames &lt;lhames@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>c22b1106 - [JITLink][ELF][x86-64] Use the right edge-naming function for debugging output.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp#c22b1106</link>
        <description>[JITLink][ELF][x86-64] Use the right edge-naming function for debugging output.Graph edges use the generic x86-64 edge set (the ELF specific edges are onlyused during parsing).

            List of files:
            /llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp</description>
        <pubDate>Sun, 05 Dec 2021 06:12:39 +0000</pubDate>
        <dc:creator>Lang Hames &lt;lhames@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>59c84774 - [NFC][llvm] Inclusive language: remove uses of sanity in llvm/lib/ExecutionEngine/</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp#59c84774</link>
        <description>[NFC][llvm] Inclusive language: remove uses of sanity in llvm/lib/ExecutionEngine/Reworded and removed code comments to avoid using `sanity check` and `sanitytest`.

            List of files:
            /llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp</description>
        <pubDate>Thu, 18 Nov 2021 03:13:32 +0000</pubDate>
        <dc:creator>Zarko Todorovski &lt;zarko@ca.ibm.com&gt;</dc:creator>
    </item>
<item>
        <title>cc3115cd - [JITLink][x86-64] Lift GOT, PLT table managers into x86_64.h; reuse for MachO.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp#cc3115cd</link>
        <description>[JITLink][x86-64] Lift GOT, PLT table managers into x86_64.h; reuse for MachO.This lifts the global offset table and procedure linkage table builders out ofELF_x86_64.h and into x86_64.h, renaming them with generic namesx86_64::GOTTableBuilder and x86_64::PLTTableBuilder. MachO_x86_64.cpp is updatedto use these classes instead of the older PerGraphGOTAndStubsBuilder tool.

            List of files:
            /llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp</description>
        <pubDate>Tue, 19 Oct 2021 04:41:08 +0000</pubDate>
        <dc:creator>Lang Hames &lt;lhames@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>bc03a9c0 - Simplify the TableManager class and move it into a public header.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp#bc03a9c0</link>
        <description>Simplify the TableManager class and move it into a public header.Moves visitEdge into the TableManager derivatives, replacing the fixEdgeKindmethods in those classes. The visitEdge method takes on responsibility forupdating the edge target, as well as its kind.

            List of files:
            /llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp</description>
        <pubDate>Tue, 19 Oct 2021 01:11:48 +0000</pubDate>
        <dc:creator>Lang Hames &lt;lhames@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>849b36bf - [JITLink][NFC] Add TableManager to replace PerGraph...Builder pass</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp#849b36bf</link>
        <description>[JITLink][NFC] Add TableManager to replace PerGraph...Builder passThis patch add a TableManager which reponsible for fixing edges that need entries to reference the target symbol and constructing such entries.In the past, the PerGraphGOTAndPLTStubsBuilder pass was used to build GOT and PLT entry, and the PerGraphTLSInfoEntryBuilder pass was used to build TLSInfo entry. By generalizing the behavior of building entry, I added a TableManager which could be reused when built GOT, PLT and TLSInfo entries.If this patch makes sense and can be accepted, I will apply the TableManager to other targets(MachO_x86_64, MachO_arm64, ELF_riscv), and delete the file PerGraphGOTAndPLTStubsBuilder.hReviewed By: lhamesDifferential Revision: https://reviews.llvm.org/D110383

            List of files:
            /llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp</description>
        <pubDate>Thu, 14 Oct 2021 15:06:43 +0000</pubDate>
        <dc:creator>luxufan &lt;932494295@qq.com&gt;</dc:creator>
    </item>
<item>
        <title>962a2479 - Re-apply e50aea58d59, &quot;Major JITLinkMemoryManager refactor&quot;. with fixes.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp#962a2479</link>
        <description>Re-apply e50aea58d59, &quot;Major JITLinkMemoryManager refactor&quot;. with fixes.Adds explicit narrowing casts to JITLinkMemoryManager.cpp.Honors -slab-address option in llvm-jitlink.cpp, which was accidentallydropped in the refactor.This effectively reverts commit 6641d29b70993bce6dbd7e0e0f1040753d38842f.

            List of files:
            /llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp</description>
        <pubDate>Tue, 12 Oct 2021 03:55:30 +0000</pubDate>
        <dc:creator>Lang Hames &lt;lhames@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>6641d29b - Revert &quot;[JITLink][ORC] Major JITLinkMemoryManager refactor.&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp#6641d29b</link>
        <description>Revert &quot;[JITLink][ORC] Major JITLinkMemoryManager refactor.&quot;This reverts commit e50aea58d59c8cfae807a7fee21c4227472c0678 while Iinvestigate bot failures.

            List of files:
            /llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp</description>
        <pubDate>Tue, 12 Oct 2021 02:23:41 +0000</pubDate>
        <dc:creator>Lang Hames &lt;lhames@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>e50aea58 - [JITLink][ORC] Major JITLinkMemoryManager refactor.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp#e50aea58</link>
        <description>[JITLink][ORC] Major JITLinkMemoryManager refactor.This commit substantially refactors the JITLinkMemoryManager API to: (1) addasynchronous versions of key operations, (2) give memory manager implementationsfull control over link graph address layout, (3) enable more efficient trackingof allocated memory, and (4) support &quot;allocation actions&quot; and finalize-lifetimememory.Together these changes provide a more usable API, and enable more powerful andefficient memory manager implementations.To support these changes the JITLinkMemoryManager::Allocation inner class hasbeen split into two new classes: InFlightAllocation, and FinalizedAllocation.The allocate method returns an InFlightAllocation that tracks memory (bothworking and executor memory) prior to finalization. The finalize method returnsa FinalizedAllocation object, and the InFlightAllocation is discarded. BreakingAllocation into InFlightAllocation and FinalizedAllocation allowsInFlightAllocation subclassses to be written more naturally, and FinalizedAllocto be implemented and used efficiently (see (3) below).In addition to the memory manager changes this commit also introduces a newMemProt type to represent memory protections (MemProt replaces use ofsys::Memory::ProtectionFlags in JITLink), and a new MemDeallocPolicy type thatcan be used to indicate when a section should be deallocated (see (4) below).Plugin/pass writers who were using sys::Memory::ProtectionFlags will have toswitch to MemProt -- this should be straightworward. Clients with out-of-treememory managers will need to update their implementations. Clients usingin-tree memory managers should mostly be able to ignore it.Major features:(1) More asynchrony:The allocate and deallocate methods are now asynchronous by default, withsynchronous convenience wrappers supplied. The asynchronous versions allowclients (including JITLink) to request and deallocate memory without blocking.(2) Improved control over graph address layout:Instead of a SegmentRequestMap, JITLinkMemoryManager::allocate now takes areference to the LinkGraph to be allocated. The memory manager is responsiblefor calculating the memory requirements for the graph, and laying out the graph(setting working and executor memory addresses) within the allocated memory.This gives memory managers full control over JIT&apos;d memory layout. For clientsthat don&apos;t need or want this degree of control the new &quot;BasicLayout&quot; utility canbe used to get a segment-based view of the graph, similar to the one provided bySegmentRequestMap. Once segment addresses are assigned the BasicLayout::applymethod can be used to automatically lay out the graph.(3) Efficient tracking of allocated memory.The FinalizedAlloc type is a wrapper for an ExecutorAddr and requires only64-bits to store in the controller. The meaning of the address held by theFinalizedAlloc is left up to the memory manager implementation, but theFinalizedAlloc type enforces a requirement that deallocate be called on anynon-default values prior to destruction. The deallocate method takes avector&lt;FinalizedAlloc&gt;, allowing for bulk deallocation of many allocations in asingle call.Memory manager implementations will typically store the address of someallocation metadata in the executor in the FinalizedAlloc, as holding thismetadata in the executor is often cheaper and may allow for clean deallocationeven in failure cases where the connection with the controller is lost.(4) Support for &quot;allocation actions&quot; and finalize-lifetime memory.Allocation actions are pairs (finalize_act, deallocate_act) of JITTargetAddresstriples (fn, arg_buffer_addr, arg_buffer_size), that can be attached to afinalize request. At finalization time, after memory protections have beenapplied, each of the &quot;finalize_act&quot; elements will be called in order (skippingany elements whose fn value is zero) as((char*(*)(const char *, size_t))fn)((const char *)arg_buffer_addr,                                     (size_t)arg_buffer_size);At deallocation time the deallocate elements will be run in reverse order (againskipping any elements where fn is zero).The returned char * should be null to indicate success, or a non-nullheap-allocated string error message to indicate failure.These actions allow finalization and deallocation to be extended to includeoperations like registering and deregistering eh-frames, TLS sections,initializer and deinitializers, and language metadata sections. Previously theseoperations required separate callWrapper invocations. Compared to callWrapperinvocations, actions require no extra IPC/RPC, reducing costs and eliminatinga potential source of errors.Finalize lifetime memory can be used to support finalize actions: Sections withfinalize lifetime should be destroyed by memory managers immediately afterfinalization actions have been run. Finalize memory can be used to supportfinalize actions (e.g. with extra-metadata, or synthesized finalize actions)without incurring permanent memory overhead.

            List of files:
            /llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp</description>
        <pubDate>Mon, 11 Oct 2021 00:39:24 +0000</pubDate>
        <dc:creator>Lang Hames &lt;lhames@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>b384736b - Revert &quot;[JITLink][NFC] Add TableManager to replace PerGraph...Builder pass&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp#b384736b</link>
        <description>Revert &quot;[JITLink][NFC] Add TableManager to replace PerGraph...Builder pass&quot;This reverts commit 50a278c2aef21bf9b78865ad7c7554e506434b9c.

            List of files:
            /llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp</description>
        <pubDate>Wed, 06 Oct 2021 13:33:04 +0000</pubDate>
        <dc:creator>luxufan &lt;932494295@qq.com&gt;</dc:creator>
    </item>
<item>
        <title>50a278c2 - [JITLink][NFC] Add TableManager to replace PerGraph...Builder pass</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp#50a278c2</link>
        <description>[JITLink][NFC] Add TableManager to replace PerGraph...Builder passThis patch add a TableManager which reponsible for fixing edges that need entries to reference the target symbol and constructing such entries.In the past, the PerGraphGOTAndPLTStubsBuilder pass was used to build GOT and PLT entry, and the PerGraphTLSInfoEntryBuilder pass was used to build TLSInfo entry. By generalizing the behavior of building entry, I added a TableManager which could be reused when built GOT, PLT and TLSInfo entries.If this patch makes sense and can be accepted, I will apply the TableManager to other targets(MachO_x86_64, MachO_arm64, ELF_riscv), and delete the file PerGraphGOTAndPLTStubsBuilder.hReviewed By: lhamesDifferential Revision: https://reviews.llvm.org/D110383

            List of files:
            /llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp</description>
        <pubDate>Wed, 06 Oct 2021 07:52:25 +0000</pubDate>
        <dc:creator>luxufan &lt;932494295@qq.com&gt;</dc:creator>
    </item>
<item>
        <title>01b097af - Fix bad merge the removed switch case</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp#01b097af</link>
        <description>Fix bad merge the removed switch caseWhen https://reviews.llvm.org/D109520 was landed, it reverted the addition of this switchcase added in https://reviews.llvm.org/D109293. This caused `-Wswitch` failures (andpresumably broke the functionality added in the latter patch).

            List of files:
            /llvm-project-15.0.7/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp</description>
        <pubDate>Mon, 20 Sep 2021 17:58:58 +0000</pubDate>
        <dc:creator>Geoffrey Martin-Noble &lt;gcmn@google.com&gt;</dc:creator>
    </item>
</channel>
</rss>
