[all-commits] [llvm/llvm-project] 78f39d: [JITLink][RISCV] Use hashmap to find PCREL_HI20 ed...

Jonas Hahnfeld via All-commits all-commits at lists.llvm.org
Mon Feb 12 10:46:04 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 78f39dc70c1feaea5130b90ea3fb7b3ddd62446b
      https://github.com/llvm/llvm-project/commit/78f39dc70c1feaea5130b90ea3fb7b3ddd62446b
  Author: Jonas Hahnfeld <hahnjo at hahnjo.de>
  Date:   2024-02-12 (Mon, 12 Feb 2024)

  Changed paths:
    M llvm/lib/ExecutionEngine/JITLink/ELF_riscv.cpp

  Log Message:
  -----------
  [JITLink][RISCV] Use hashmap to find PCREL_HI20 edge (#78849)

As noted in issues #68594 and #73935, `JITLink/RISCV/ELF_ehframe.s`
fails with libstdc++'s expensive checks because `getRISCVPCRelHi20`
calls `std::equal_range` on the edges which may not be ordered by their
offset. Instead let `ELFJITLinker_riscv` build a hashmap of all edges
with type `R_RISCV_PCREL_HI20` that can be looked up in constant time.

Closes #73935




More information about the All-commits mailing list