[all-commits] [llvm/llvm-project] 11a02d: [JITLink][PowerPC] Change method to check if a sym...

bzEq via All-commits all-commits at lists.llvm.org
Tue Jul 25 20:21:11 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 11a02de7829aa252e84d96c7353ff39c34c3bd38
      https://github.com/llvm/llvm-project/commit/11a02de7829aa252e84d96c7353ff39c34c3bd38
  Author: Kai Luo <lkail at cn.ibm.com>
  Date:   2023-07-26 (Wed, 26 Jul 2023)

  Changed paths:
    M llvm/include/llvm/ExecutionEngine/JITLink/ppc64.h
    M llvm/lib/ExecutionEngine/JITLink/ELF_ppc64.cpp
    M llvm/lib/ExecutionEngine/JITLink/ppc64.cpp
    M llvm/test/ExecutionEngine/JITLink/ppc64/external_weak.s

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




More information about the All-commits mailing list