[all-commits] [llvm/llvm-project] 5771c9: [XRay] Change xray_instr_map sled addresses from a...

Fangrui Song via All-commits all-commits at lists.llvm.org
Tue Apr 21 09:36:39 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 5771c9856249345f09b860fa2b20b762113d521b
      https://github.com/llvm/llvm-project/commit/5771c9856249345f09b860fa2b20b762113d521b
  Author: Fangrui Song <maskray at google.com>
  Date:   2020-04-21 (Tue, 21 Apr 2020)

  Changed paths:
    M compiler-rt/lib/xray/xray_interface.cpp
    M compiler-rt/lib/xray/xray_interface_internal.h
    M compiler-rt/lib/xray/xray_x86_64.cpp
    M llvm/include/llvm/CodeGen/AsmPrinter.h
    M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
    M llvm/lib/Target/X86/X86MCInstLower.cpp
    M llvm/test/CodeGen/X86/xray-attribute-instrumentation.ll
    M llvm/test/CodeGen/X86/xray-log-args.ll
    M llvm/test/CodeGen/X86/xray-section-group.ll
    M llvm/test/DebugInfo/X86/xray-split-dwarf-interaction.ll

  Log Message:
  -----------
  [XRay] Change xray_instr_map sled addresses from absolute to PC relative for x86-64

xray_instr_map contains absolute addresses of sleds, which are relocated
by `R_*_RELATIVE` when linked in -pie or -shared mode.

By making these addresses relative to PC, we can avoid the dynamic
relocations and remove the SHF_WRITE flag from xray_instr_map.  We can
thus save VM pages containg xray_instr_map (because they are not
modified).

This patch changes x86-64 and bumps the sled version to 2. Subsequent
changes will change powerpc64le and AArch64.

Reviewed By: dberris, ianlevesque

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




More information about the All-commits mailing list