[all-commits] [llvm/llvm-project] 50428f: [WebAssembly] Add WebAssembly::Specifier

Fangrui Song via All-commits all-commits at lists.llvm.org
Tue Apr 8 19:45:03 PDT 2025


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

  Changed paths:
    M llvm/include/llvm/MC/MCExpr.h
    M llvm/include/llvm/MC/MCWasmStreamer.h
    M llvm/lib/MC/MCWasmStreamer.cpp
    M llvm/lib/MC/WasmObjectWriter.cpp
    M llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp
    M llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmTypeCheck.cpp
    M llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp
    M llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp
    M llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCAsmInfo.cpp
    A llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCExpr.h
    M llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyWasmObjectWriter.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp

  Log Message:
  -----------
  [WebAssembly] Add WebAssembly::Specifier

Move wasm-specific members outside of MCSymbolRefExpr::VariantKind (a
legacy interface I am eliminating). Most changes are mechanic and
similar to what I've done for many ELF targets (e.g. X86 #132149)

Notes:

* `fixSymbolsInTLSFixups` is replaced with `setTLS` in
  `WebAssemblyWasmObjectWriter::getRelocType`, similar to what I've done
  for many ELF targets.
* `SymA->setUsedInGOT()` in `recordRelocation` is moved to
  `getRelocType`.

While here, rename "Modifier' to "Specifier":

> "Relocation modifier", though concise, suggests adjustments happen during the linker's relocation step rather than the assembler's expression evaluation. I landed on "relocation specifier" as the winner. It's clear, aligns with Arm and IBM’s usage, and fits the assembler's role seamlessly.

Pull Request: https://github.com/llvm/llvm-project/pull/133116



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