[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