[all-commits] [llvm/llvm-project] d5893f: MCValue: Replace MCSymbolRefExpr members with MCSy...

Fangrui Song via All-commits all-commits at lists.llvm.org
Sat Apr 5 21:02:31 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: d5893fc2a7e1191afdb4940469ec9371a319b114
      https://github.com/llvm/llvm-project/commit/d5893fc2a7e1191afdb4940469ec9371a319b114
  Author: Fangrui Song <i at maskray.me>
  Date:   2025-04-05 (Sat, 05 Apr 2025)

  Changed paths:
    M llvm/include/llvm/MC/MCExpr.h
    M llvm/include/llvm/MC/MCValue.h
    M llvm/lib/MC/MCAssembler.cpp
    M llvm/lib/MC/MCExpr.cpp
    M llvm/lib/Target/AVR/MCTargetDesc/AVRMCExpr.cpp
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp
    M llvm/test/MC/AArch64/elf-reloc-ptrauth.s

  Log Message:
  -----------
  MCValue: Replace MCSymbolRefExpr members with MCSymbol

Commit 0999cbd0b9ed8aa893cce10d681dec6d54b200ad (2014) introduced
`MCValue::RefKind` for AArch64 ELF as a clean approach to encode the
relocation specifier.

Following numerous migration commits, direct references to getSymA and
getSymB have been eliminated. This allows us to seamlessly update SymA
and SymB, replacing MCSymbolRefExpr with MCSymbol.

Removeing reliance on a MCAssembler::evaluateFixup hack
(`if (Target.SymSpecifier || SA.isUndefined()) {` (previosuly
`if (A->getKind() != MCSymbolRefExpr::VK_None || SA.isUndefined()) {`))
requires 38c3ad36be1facbe6db2dede7e93c0f12fb4e1dc and 4182d2dcb5ecbfc34d41a6cd11810cd36844eddb

Revert the temporary RISCV/LoongArch workaround
(7e62715e0cd433ed97749549c6582c4e1aa689a3) during migration.

MCAssembler::evaluateFixup needs an extra `!Add->isAbsolute()` case
to support `movq abs at GOTPCREL(%rip), %rax; abs = 42` in llvm/test/MC/ELF/relocation-alias.s
(ELFObjectWriter::isSymbolRefDifferenceFullyResolvedImpl asserts if
called on an absolute symbol).



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list