[all-commits] [llvm/llvm-project] 7117af: [BOLT] Improve dynamic relocations support for CI

Vladislav Khmelevsky via All-commits all-commits at lists.llvm.org
Mon Mar 13 03:03:40 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 7117af529ebd389a0eee1ed2683ba2ec8fc21449
      https://github.com/llvm/llvm-project/commit/7117af529ebd389a0eee1ed2683ba2ec8fc21449
  Author: Vladislav Khmelevsky <och95 at yandex.ru>
  Date:   2023-03-13 (Mon, 13 Mar 2023)

  Changed paths:
    M bolt/include/bolt/Core/BinaryFunction.h
    M bolt/include/bolt/Rewrite/RewriteInstance.h
    M bolt/lib/Core/BinaryContext.cpp
    M bolt/lib/Core/BinaryFunction.cpp
    M bolt/lib/Rewrite/RewriteInstance.cpp
    M bolt/test/AArch64/constant_island_pie_update.s

  Log Message:
  -----------
  [BOLT] Improve dynamic relocations support for CI

This patch fixes few problems with supporting dynamic relocations in CI.
1. After dynamic relocations and functions were read search for dynamic
relocations located in functions. Currently we expected them only to be
relative and only to be in constant island. Mark islands of such
functions to have dynamic relocations and create CI access symbol on the
relocation offset, so the BD would be created for such place.
2. During function disassemble and handling address reference for
constant island check if the referred external CI has dynamic
relocation. And if it has one we would continue to refer original CI
rather then creating a local copy.
3. After function disassembly stage mark function that has dynamic reloc
in CI as non-simple. We don't want such functions to be optimized, since
such passes as split function would create 2 copies of CI which we
unable to support currently.
4. During updating output values for BF search for BD located in CI and
update their output locations.
5. On dynamic relocation patching stage search for binary data located
on relocation offset. If it was moved use new relocation offset value
rather then an old one.

Vladislav Khmelevsky,
Advanced Software Technology Lab, Huawei

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


  Commit: 40b273998af142aefd7e72657b0a76194f8de2db
      https://github.com/llvm/llvm-project/commit/40b273998af142aefd7e72657b0a76194f8de2db
  Author: Vladislav Khmelevsky <och95 at yandex.ru>
  Date:   2023-03-13 (Mon, 13 Mar 2023)

  Changed paths:
    M bolt/test/runtime/X86/instrumentation-xmm.c

  Log Message:
  -----------
  [BOLT] Pass instrumentation-file arg for X86 xmm test

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


Compare: https://github.com/llvm/llvm-project/compare/23b0df72d272...40b273998af1


More information about the All-commits mailing list