[all-commits] [llvm/llvm-project] c61869: [AArch64][X86] Allow 64-bit label differences lowe...

Fangrui Song via All-commits all-commits at lists.llvm.org
Mon Jun 21 14:32:42 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c618692218d16e88fa20df56b29a8dd09c9e9db7
      https://github.com/llvm/llvm-project/commit/c618692218d16e88fa20df56b29a8dd09c9e9db7
  Author: Fangrui Song <i at maskray.me>
  Date:   2021-06-21 (Mon, 21 Jun 2021)

  Changed paths:
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp
    M llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp
    M llvm/test/MC/AArch64/coff-relocations.s
    M llvm/test/MC/COFF/cross-section-relative-err.s
    M llvm/test/MC/COFF/cross-section-relative.s

  Log Message:
  -----------
  [AArch64][X86] Allow 64-bit label differences lower to IMAGE_REL_*_REL32

`IMAGE_REL_ARM64_REL64/IMAGE_REL_AMD64_REL64` do not exist and `.quad a - .` is
currently not representable.

For instrumentation, `.quad a - .` is useful representing a cross-section
reference in a metadata section, to allow ELF medium/large code models. The COFF
limitation makes such generic instrumentations inconvenient. I plan to make a
PGO/coverage metadata section field relative in D104556.

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




More information about the All-commits mailing list