History log of /llvm-project/llvm/lib/ExecutionEngine/JITLink/ELF_ppc64.cpp (Results 1 – 19 of 19)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6
# 2ccf7ed2 05-Dec-2024 Jared Wyles <jared.wyles@gmail.com>

[JITLink] Switch to SymbolStringPtr for Symbol names (#115796)

Use SymbolStringPtr for Symbol names in LinkGraph. This reduces string interning
on the boundary between JITLink and ORC, and allows p

[JITLink] Switch to SymbolStringPtr for Symbol names (#115796)

Use SymbolStringPtr for Symbol names in LinkGraph. This reduces string interning
on the boundary between JITLink and ORC, and allows pointer comparisons (rather
than string comparisons) between Symbol names. This should improve the
performance and readability of code that bridges between JITLink and ORC (e.g.
ObjectLinkingLayer and ObjectLinkingLayer::Plugins).

To enable use of SymbolStringPtr a std::shared_ptr<SymbolStringPool> is added to
LinkGraph and threaded through to its construction sites in LLVM and Bolt. All
LinkGraphs that are to have symbol names compared by pointer equality must point
to the same SymbolStringPool instance, which in ORC sessions should be the pool
attached to the ExecutionSession.
---------

Co-authored-by: Lang Hames <lhames@gmail.com>

show more ...


Revision tags: llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5
# bf383dca 02-Nov-2023 Kazu Hirata <kazu@google.com>

[llvm] Stop including llvm/Support/Endian.h (NFC)

Identified with misc-include-cleaner.


Revision tags: llvmorg-17.0.4, llvmorg-17.0.3
# 18dc8dcd 14-Oct-2023 Kai Luo <lkail@cn.ibm.com>

[PowerPC][JITLink] Support R_PPC64_GOT_TLSGD_PCREL34 (#68660)

`R_PPC64_GOT_TLSGD_PCREL34` is generated for pwr10+.


# 4a0ccfa8 13-Oct-2023 Kazu Hirata <kazu@google.com>

Use llvm::endianness::{big,little,native} (NFC)

Note that llvm::support::endianness has been renamed to
llvm::endianness while becoming an enum class as opposed to an
enum. This patch replaces suppo

Use llvm::endianness::{big,little,native} (NFC)

Note that llvm::support::endianness has been renamed to
llvm::endianness while becoming an enum class as opposed to an
enum. This patch replaces support::{big,little,native} with
llvm::endianness::{big,little,native}.

show more ...


# a712244f 13-Oct-2023 Kai Luo <lkail@cn.ibm.com>

[PowerPC][JITLink] Support R_PPC64_GOT_PCREL34 (#68658)

`R_PPC64_GOT_PCREL34` is generated for pwr10+.


# a9d50568 11-Oct-2023 Kazu Hirata <kazu@google.com>

Use llvm::endianness (NFC)

Now that llvm::support::endianness has been renamed to
llvm::endianness, we can use the shorter form. This patch replaces
support::endianness with llvm::endianness.


# b05dbc4d 11-Oct-2023 Kazu Hirata <kazu@google.com>

[llvm] Use llvm::endianness::{big,little,native} (NFC)

Now that llvm::support::endianness has been renamed to
llvm::endianness, we can use the shorter form. This patch replaces
support::endianness:

[llvm] Use llvm::endianness::{big,little,native} (NFC)

Now that llvm::support::endianness has been renamed to
llvm::endianness, we can use the shorter form. This patch replaces
support::endianness::{big,little,native} with
llvm::endianness::{big,little,native}.

show more ...


Revision tags: llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0
# 1dae4dd0 14-Sep-2023 Kai Luo <lkail@cn.ibm.com>

[JITLink][PowerPC] Fix incorrect assertion of addend for R_PPC64_REL24

There is case that R_PPC64_REL24 with non-zero addend. The assertion is incorrectly triggered in such situation.

Reviewed By:

[JITLink][PowerPC] Fix incorrect assertion of addend for R_PPC64_REL24

There is case that R_PPC64_REL24 with non-zero addend. The assertion is incorrectly triggered in such situation.

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D158708

show more ...


Revision tags: llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3
# 94239712 14-Aug-2023 Eymen Ünay <eymenunay@outlook.com>

Fix typos in comments of ExecutionEngine (NFC)

Reviewed By: sgraenitz

Differential Revision: https://reviews.llvm.org/D157226


# b6e2eac2 12-Aug-2023 Kai Luo <lkail@cn.ibm.com>

[JITLink][PowerPC] Add relocations included in rtdyld but missing from jitlink

RuntimeDyld has implemented more relocations than JITLink for ppc64. This patch adds relocations missing from JITLink f

[JITLink][PowerPC] Add relocations included in rtdyld but missing from jitlink

RuntimeDyld has implemented more relocations than JITLink for ppc64. This patch adds relocations missing from JITLink for ppc64.

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D157366

show more ...


Revision tags: llvmorg-17.0.0-rc2
# 9c38a178 02-Aug-2023 Kai Luo <lkail@cn.ibm.com>

[JITLink][PowerPC] Add basic TLS support for ppc64

Add basic TLS support for ppc64. Only global-dynamic model is supported.

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D155

[JITLink][PowerPC] Add basic TLS support for ppc64

Add basic TLS support for ppc64. Only global-dynamic model is supported.

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D155926

show more ...


# 5cb2a78a 02-Aug-2023 Kai Luo <lkail@cn.ibm.com>

[Orc][PowerPC] Enable ELFNixPlatform support for ppc64le

Since jitlink for ppc64le is ready for general use, test cases in compiler-rt for ELFNixPlatform support can be enabled.

Reviewed By: lhames

[Orc][PowerPC] Enable ELFNixPlatform support for ppc64le

Since jitlink for ppc64le is ready for general use, test cases in compiler-rt for ELFNixPlatform support can be enabled.

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D156399

show more ...


# ca6d86f6 02-Aug-2023 Kai Luo <lkail@cn.ibm.com>

[JITLink][PowerPC] Support R_PPC64_PCREL34

PC-relative instructions are added in ISA-3.1 implemented by pwr10. This patch adds basic pc-relative relocation.

Reviewed By: lhames

Differential Revisi

[JITLink][PowerPC] Support R_PPC64_PCREL34

PC-relative instructions are added in ISA-3.1 implemented by pwr10. This patch adds basic pc-relative relocation.

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D155771

show more ...


Revision tags: llvmorg-17.0.0-rc1
# 11a02de7 26-Jul-2023 Kai Luo <lkail@cn.ibm.com>

[JITLink][PowerPC] Change method to check if a symbol is external to current object

After PrePrunePass `claimOrExternalizeWeakAndCommonSymbols`, a defined symbol might become external. So determine

[JITLink][PowerPC] Change method to check if a symbol is external to current object

After PrePrunePass `claimOrExternalizeWeakAndCommonSymbols`, a defined symbol might become external. So determine a function call is external or not when building the linkgraph is not accurate. This largely affects updating TOC pointer on PowerPC. TOC pointer is supposed to be the same in one object file(if no mulitple TOC appears) and is updated when control flow transferred to another object file.

This patch defers checking a function call is external or not, in `buildTables_ELF_ppc64` which is a PostPrunePass.

This patch fixes failures when `jitlink -orc-runtime=/path/to/libort_rt.a` is used.

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D155925

show more ...


Revision tags: llvmorg-18-init
# 995f199f 24-Jul-2023 Kai Luo <lkail@cn.ibm.com>

[JITLink][PowerPC] Correct handling of R_PPC64_REL24_NOTOC

According to the ELFv2 ABI

> This relocation type is used to specify a function call where the TOC pointer is not initialized. It is simil

[JITLink][PowerPC] Correct handling of R_PPC64_REL24_NOTOC

According to the ELFv2 ABI

> This relocation type is used to specify a function call where the TOC pointer is not initialized. It is similar to R_PPC64_REL24 in that it specifies a symbol to be resolved. If the symbol resolves to a function that requires a TOC pointer (as determined by st_other bits) then a link editor must arrange for the call to be via the global entry point of the called function. Any stub code must not rely on a valid TOC base address in r2.

This patch fixes handling of `R_PPC64_REL24_NOTOC` by using the same stub code sequence as lld.

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D155672

show more ...


# 74f2a769 10-Jul-2023 Lang Hames <lhames@gmail.com>

[JITLink] Rename TableManager::appendEntry, add comment.

Renames TableManager's appendEntry method to registerPreExistingEntry and adds
a comment to explain its purpose. (TableManager subclasses are

[JITLink] Rename TableManager::appendEntry, add comment.

Renames TableManager's appendEntry method to registerPreExistingEntry and adds
a comment to explain its purpose. (TableManager subclasses are required to
implement a createEntry method which also appends entries to the map: this
rename aims to avoid any confusion between these methods)

show more ...


# 61358d4f 10-Jul-2023 Kai Luo <lkail@cn.ibm.com>

[JITLink][PowerPC] Add TOC and relocations for ppc64

This patch builds TOC and adds common relocations for ppc64.

To build TOC, sections belong to TOC are merged into one section, serves as GOT and

[JITLink][PowerPC] Add TOC and relocations for ppc64

This patch builds TOC and adds common relocations for ppc64.

To build TOC, sections belong to TOC are merged into one section, serves as GOT and small data accessing.

Relocations commonly seen in local function call, external function call and global variable reference are added.

References
- https://youtu.be/i-inxFudrgI
- https://maskray.me/blog/2023-02-26-linker-notes-on-power-isa
- https://openpowerfoundation.org/specifications/64bitelfabi/

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D154198

show more ...


# 52b88457 27-Jun-2023 Job Noorman <jnoorman@igalia.com>

[JITLink] Use SubtargetFeatures to store features in LinkGraph

D149522 introduced target features to LinkGraph. However, to avoid a
public dependency on MC, the features were stored in a std::vector

[JITLink] Use SubtargetFeatures to store features in LinkGraph

D149522 introduced target features to LinkGraph. However, to avoid a
public dependency on MC, the features were stored in a std::vector
instead of using SubtargetFeatures directly.

Since SubtargetFeatures was moved from MC to TargetParser (D150549), we
can now use it directly to store the features. This patch implements
that and removes the (private) dependency on MC.

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D153749

show more ...


Revision tags: llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2
# 8313507a 13-Apr-2023 Lang Hames <lhames@gmail.com>

[JITLink][ELF][ppc64] Add skeleton ppc64 support and ELF/ppc64 JITLink backend.

This patch introduces a skeleton JITLink ppc64 support header and ELF/ppc64
backend. No relocations are supported in t

[JITLink][ELF][ppc64] Add skeleton ppc64 support and ELF/ppc64 JITLink backend.

This patch introduces a skeleton JITLink ppc64 support header and ELF/ppc64
backend. No relocations are supported in this initial version, but given a
program requiring no relocations (e.g. one that just returns a constant value
from main) the new backend is able to construct a LinkGraph from a ppc64 ELF
relocatable object, and the llvm-jitlink tool is able to execute it.

This commit should also serve as a good example of how to introduce a JITLink
backend for a new architecture.

Reviewed By: sgraenitz, v.g.vassilev, vchuravy, nemanjai, jain98, MaskRay

Differential Revision: https://reviews.llvm.org/D148192

show more ...