[llvm] acca419 - [WebAssembly, MC] Replace getSymA()->getSymbol() with getAddSym. NFC

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Sat Apr 5 14:01:09 PDT 2025


Author: Fangrui Song
Date: 2025-04-05T14:01:05-07:00
New Revision: acca419685b0a288e0b06786e6e7bc27bb087578

URL: https://github.com/llvm/llvm-project/commit/acca419685b0a288e0b06786e6e7bc27bb087578
DIFF: https://github.com/llvm/llvm-project/commit/acca419685b0a288e0b06786e6e7bc27bb087578.diff

LOG: [WebAssembly,MC] Replace getSymA()->getSymbol() with getAddSym. NFC

We will replace the MCSymbolRefExpr member in MCValue with MCSymbol.
This change reduces dependence on MCSymbolRefExpr.

Added: 
    

Modified: 
    llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyWasmObjectWriter.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyWasmObjectWriter.cpp b/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyWasmObjectWriter.cpp
index 941422891832d..7fcd2ec0f64db 100644
--- a/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyWasmObjectWriter.cpp
+++ b/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyWasmObjectWriter.cpp
@@ -65,36 +65,32 @@ static const MCSection *getTargetSection(const MCExpr *Expr) {
 unsigned WebAssemblyWasmObjectWriter::getRelocType(
     const MCValue &Target, const MCFixup &Fixup,
     const MCSectionWasm &FixupSection, bool IsLocRel) const {
-  const MCSymbolRefExpr *RefA = Target.getSymA();
-  assert(RefA);
-  auto& SymA = cast<MCSymbolWasm>(RefA->getSymbol());
-
-  auto Modifier = Target.getAccessVariant();
-
-  switch (Modifier) {
-    case MCSymbolRefExpr::VK_GOT:
-    case MCSymbolRefExpr::VK_WASM_GOT_TLS:
-      return wasm::R_WASM_GLOBAL_INDEX_LEB;
-    case MCSymbolRefExpr::VK_WASM_TBREL:
-      assert(SymA.isFunction());
-      return is64Bit() ? wasm::R_WASM_TABLE_INDEX_REL_SLEB64
-                       : wasm::R_WASM_TABLE_INDEX_REL_SLEB;
-    case MCSymbolRefExpr::VK_WASM_TLSREL:
-      return is64Bit() ? wasm::R_WASM_MEMORY_ADDR_TLS_SLEB64
-                       : wasm::R_WASM_MEMORY_ADDR_TLS_SLEB;
-    case MCSymbolRefExpr::VK_WASM_MBREL:
-      assert(SymA.isData());
-      return is64Bit() ? wasm::R_WASM_MEMORY_ADDR_REL_SLEB64
-                       : wasm::R_WASM_MEMORY_ADDR_REL_SLEB;
-    case MCSymbolRefExpr::VK_WASM_TYPEINDEX:
-      return wasm::R_WASM_TYPE_INDEX_LEB;
-    case MCSymbolRefExpr::VK_None:
-      break;
-    case MCSymbolRefExpr::VK_WASM_FUNCINDEX:
-      return wasm::R_WASM_FUNCTION_INDEX_I32;
-    default:
-      report_fatal_error("unknown VariantKind");
-      break;
+  auto &SymA = cast<MCSymbolWasm>(*Target.getAddSym());
+  auto Spec = Target.getSymSpecifier();
+  switch (Spec) {
+  case MCSymbolRefExpr::VK_GOT:
+  case MCSymbolRefExpr::VK_WASM_GOT_TLS:
+    return wasm::R_WASM_GLOBAL_INDEX_LEB;
+  case MCSymbolRefExpr::VK_WASM_TBREL:
+    assert(SymA.isFunction());
+    return is64Bit() ? wasm::R_WASM_TABLE_INDEX_REL_SLEB64
+                     : wasm::R_WASM_TABLE_INDEX_REL_SLEB;
+  case MCSymbolRefExpr::VK_WASM_TLSREL:
+    return is64Bit() ? wasm::R_WASM_MEMORY_ADDR_TLS_SLEB64
+                     : wasm::R_WASM_MEMORY_ADDR_TLS_SLEB;
+  case MCSymbolRefExpr::VK_WASM_MBREL:
+    assert(SymA.isData());
+    return is64Bit() ? wasm::R_WASM_MEMORY_ADDR_REL_SLEB64
+                     : wasm::R_WASM_MEMORY_ADDR_REL_SLEB;
+  case MCSymbolRefExpr::VK_WASM_TYPEINDEX:
+    return wasm::R_WASM_TYPE_INDEX_LEB;
+  case MCSymbolRefExpr::VK_None:
+    break;
+  case MCSymbolRefExpr::VK_WASM_FUNCINDEX:
+    return wasm::R_WASM_FUNCTION_INDEX_I32;
+  default:
+    report_fatal_error("unknown VariantKind");
+    break;
   }
 
   switch (unsigned(Fixup.getKind())) {


        


More information about the llvm-commits mailing list