[all-commits] [llvm/llvm-project] 0ad562: [JITLink][RISCV] Initial Support RISCV64 in JITLink

luxufan via All-commits all-commits at lists.llvm.org
Fri Jul 23 08:47:57 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 0ad562b48bfd7a487eb38ceaa309cdd9a1ad87e7
      https://github.com/llvm/llvm-project/commit/0ad562b48bfd7a487eb38ceaa309cdd9a1ad87e7
  Author: luxufan <932494295 at qq.com>
  Date:   2021-07-23 (Fri, 23 Jul 2021)

  Changed paths:
    A llvm/include/llvm/ExecutionEngine/JITLink/ELF_riscv.h
    A llvm/include/llvm/ExecutionEngine/JITLink/riscv.h
    M llvm/lib/ExecutionEngine/JITLink/CMakeLists.txt
    M llvm/lib/ExecutionEngine/JITLink/ELF.cpp
    A llvm/lib/ExecutionEngine/JITLink/ELF_riscv.cpp
    A llvm/test/ExecutionEngine/JITLink/RISCV/ELF_pc_indirect.s

  Log Message:
  -----------
  [JITLink][RISCV] Initial Support RISCV64 in JITLink

This patch is the initial support, it implements translation from object file to JIT link graph, and very few relocations were supported. Currently, the test file ELF_pc_indirect.s is passed, the HelloWorld program(compiled with mno-relax flag) can be linked correctly and run on instruction emulator correctly.

In the downstream implementation, I have implemented the GOT, PLT function, and EHFrame and some optimization will be implement soon. I will organize the code in to patches, then gradually send it to upstream.

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




More information about the All-commits mailing list