[all-commits] [llvm/llvm-project] abc1f3: [BOLT][AArch64] Replace NOP with adrp in AdrRelaxa...

treapster via All-commits all-commits at lists.llvm.org
Wed Feb 22 01:57:38 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: abc1f3329831606b06a934bba8ac3fc3df522e07
      https://github.com/llvm/llvm-project/commit/abc1f3329831606b06a934bba8ac3fc3df522e07
  Author: Denis Revunov <revunov.denis at huawei-partners.com>
  Date:   2023-02-22 (Wed, 22 Feb 2023)

  Changed paths:
    M bolt/lib/Passes/ADRRelaxationPass.cpp
    M bolt/test/runtime/AArch64/adrrelaxationpass.s

  Log Message:
  -----------
  [BOLT][AArch64] Replace NOP with adrp in AdrRelaxationPass to preserve relative offsets.

Avoid replacing one adr instruction with two adrp+add by utilizing linker-provided nops
when they are present. By doing so we preserve relative offsets of next instructions
in a function which reduces chances to break undetected jump tables. This commit makes
release-mode lld-linked clang, lld and etc work after BOLT.

Reviewed By: rafauler, yota9

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




More information about the All-commits mailing list