History log of /llvm-project/llvm/lib/ExecutionEngine/JITLink/ELF_i386.cpp (Results 1 – 14 of 14)
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
# 5716f836 16-Oct-2024 Jameson Nash <vtjnash@gmail.com>

[JITLink] Fix i686 R_386_32 and other relocation values (#111091)

Fix R_386_32 and other relocations by correcting Addend computations.


Revision tags: 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, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init
# 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
# 348d0a6b 17-May-2023 Job Noorman <jnoorman@igalia.com>

[JITLink] Add target features to LinkGraph

This patch adds SubtargetFeatures to LinkGraph. Similar to Triple, some
targets might use this information while linking.

One example, and the reason this

[JITLink] Add target features to LinkGraph

This patch adds SubtargetFeatures to LinkGraph. Similar to Triple, some
targets might use this information while linking.

One example, and the reason this patch was written, is linker relaxation
on RISC-V: different relaxations are possible depending on if the C
extension is enabled.

Note that the features are stored as `std::vector<std::string>` to prevent a
public dependency on MC. There is still a private dependency to be able to
convert SubtargetFeatures to a vector.

Reviewed By: lhames

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

show more ...


Revision tags: llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3
# 59b8db1d 14-Feb-2023 Stefan Gränitz <stefan.graenitz@gmail.com>

[JITLink] Drop const qualifier from argument to ELFLinkGraphBuilder's ctors (NFC)

These values are moved into the base class constructors, so the `const` doesn't make any sense. Turns out, I acciden

[JITLink] Drop const qualifier from argument to ELFLinkGraphBuilder's ctors (NFC)

These values are moved into the base class constructors, so the `const` doesn't make any sense. Turns out, I accidentally introduced it myself with 2ed91da0f1f3 and since than it spread by copy/paste.

show more ...


Revision tags: llvmorg-16.0.0-rc2
# cd9fd425 29-Jan-2023 Kshitij Jain <jkshtj@outlook.com>

[JITLink] Adds support for PLT based relocations to the ELF/i386 JITLink backend

This commit adds support for PLT based relocations. Specifically -
1. It adds logic to create a `PLTTableManager` in

[JITLink] Adds support for PLT based relocations to the ELF/i386 JITLink backend

This commit adds support for PLT based relocations. Specifically -
1. It adds logic to create a `PLTTableManager` in the `buildTables_ELF_i386`
function, which is called as part of the post-prune JITLink passes. The `PLTTableManager`
handles creating pointer jump stubs and related GOT entries for position independent
code.

2. It also adds a pre-fixup pass to optimize away PLT based calls in position independent
code, when possible.

Reviewed By: lhames

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

show more ...


Revision tags: llvmorg-16.0.0-rc1, llvmorg-17-init
# 78e3168c 14-Jan-2023 NAKAMURA Takumi <geek4civic@gmail.com>

JITLink/ELF_i386.cpp: Fix a warning in D141746. [-Wswitch]


# a3e975d4 14-Jan-2023 Kshitij Jain <jkshtj@outlook.com>

Fixes handling logic for i386/ELF GOTPC relocation

The i386/ELF JITLink backend was not correctly handling the GOTPC relocation
by skipping the in-built addend, which was manifesting itself in the f

Fixes handling logic for i386/ELF GOTPC relocation

The i386/ELF JITLink backend was not correctly handling the GOTPC relocation
by skipping the in-built addend, which was manifesting itself in the form of
a segmentation fault in the `LF_external_to_absolute_conversion.s` test. This
CR has fixed that issue.

Reviewed By: lhames

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

show more ...


Revision tags: llvmorg-15.0.7
# 1b123d9f 19-Dec-2022 Kshitij Jain <jkshtj@outlook.com>

Adds support for GOT relocations to i386/ELF backend

This CR adds support for GOT relocations to the JITLink i386/ELF backend.

Reviewed By: lhames

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

Adds support for GOT relocations to i386/ELF backend

This CR adds support for GOT relocations to the JITLink i386/ELF backend.

Reviewed By: lhames

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

show more ...


Revision tags: llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4
# 2a3b257a 31-Oct-2022 Kshitij Jain <jkshtj@outlook.com>

[JITLink][i386] Adds absolute and pc relative relocation support for ELF/i386.

This commit adds support for 32 bit absolute and pc relative relocations in
ELF/i386 objects, along with simple regress

[JITLink][i386] Adds absolute and pc relative relocation support for ELF/i386.

This commit adds support for 32 bit absolute and pc relative relocations in
ELF/i386 objects, along with simple regression tests.

Reviewed By: sgraenitz, lhames

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

show more ...


Revision tags: llvmorg-15.0.3, working, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3
# ce377df5 21-Aug-2022 Kazu Hirata <kazu@google.com>

Ensure newlines at the end of files (NFC)


# eca99070 16-Aug-2022 Kazu Hirata <kazu@google.com>

[ExecutionEngine] Fix a warning

This patch fixes the warning:

llvm/lib/ExecutionEngine/JITLink/ELF_i386.cpp:66:11: error: unused
type alias 'Base' [-Werror,-Wunused-local-typedef]


# 29fe204b 16-Aug-2022 Kshitij Jain <jkshtj@outlook.com>

Re-apply "[JITLink] Introduce ELF/i386 backend " with correct authorship.

I (lhames) accidentally pushed 5f300397c6ae8fa7ca3547ec2b7a3cd844f3ed59 on
Kshitij Jain's behalf without updating the patch

Re-apply "[JITLink] Introduce ELF/i386 backend " with correct authorship.

I (lhames) accidentally pushed 5f300397c6ae8fa7ca3547ec2b7a3cd844f3ed59 on
Kshitij Jain's behalf without updating the patch author first (my apologies
Kshitij!).

Re-applying with correct authorship.

https://reviews.llvm.org/D131347

show more ...


# 5f300397 15-Aug-2022 Lang Hames <lhames@gmail.com>

[JITLink] Introduce ELF/i386 backend support for JITLink.

This initial ELF/i386 JITLink backend enables JIT-linking of minimal ELF i386
object files. No relocations are supported yet.

Reviewed By:

[JITLink] Introduce ELF/i386 backend support for JITLink.

This initial ELF/i386 JITLink backend enables JIT-linking of minimal ELF i386
object files. No relocations are supported yet.

Reviewed By: lhames

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

show more ...