[all-commits] [llvm/llvm-project] cd9fd4: [JITLink] Adds support for PLT based relocations t...

Kshitij Jain via All-commits all-commits at lists.llvm.org
Sun Jan 29 17:16:36 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: cd9fd4255b48e6c759aa09a4d91249def330b835
      https://github.com/llvm/llvm-project/commit/cd9fd4255b48e6c759aa09a4d91249def330b835
  Author: Kshitij Jain <jkshtj at outlook.com>
  Date:   2023-01-30 (Mon, 30 Jan 2023)

  Changed paths:
    M llvm/include/llvm/ExecutionEngine/JITLink/i386.h
    M llvm/lib/ExecutionEngine/JITLink/ELF_i386.cpp
    M llvm/lib/ExecutionEngine/JITLink/i386.cpp
    R llvm/test/ExecutionEngine/JITLink/i386/ELF_i386_small_pic_relocations.s
    A llvm/test/ExecutionEngine/JITLink/i386/ELF_i386_small_pic_relocations_got.s
    A llvm/test/ExecutionEngine/JITLink/i386/ELF_i386_small_pic_relocations_plt.s

  Log Message:
  -----------
  [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




More information about the All-commits mailing list