[all-commits] [llvm/llvm-project] e6724c: [BOLT] Add reading support for Linux ORC sections

maksfb via All-commits all-commits at lists.llvm.org
Thu Jul 13 11:07:49 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e6724cbd8ae34909d524f6d303d88928975bb85d
      https://github.com/llvm/llvm-project/commit/e6724cbd8ae34909d524f6d303d88928975bb85d
  Author: Maksim Panchenko <maks at fb.com>
  Date:   2023-07-13 (Thu, 13 Jul 2023)

  Changed paths:
    M bolt/include/bolt/Core/BinaryFunction.h
    M bolt/lib/Rewrite/LinuxKernelRewriter.cpp

  Log Message:
  -----------
  [BOLT] Add reading support for Linux ORC sections

Read ORC (oops rewind capability) info used for unwinding the stack by
Linux Kernel. The info is stored in .orc_unwind and .orc_unwind_ip
sections. There is also a related .orc_lookup section that is being
populated by the kernel during runtime. Contents of the sections are
sorted for quicker lookup by a post-link objtool.

Unless we modify stack access instructions, we don't have to change ORC
info attributed to instructions in the binary. However, we need to
update instruction addresses and sort both sections based on the new
layout.

For pretty printing, we add "--print-orc" option that prints ORC info
next to instructions in code dumps.

Reviewed By: Amir

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




More information about the All-commits mailing list