[llvm] 8ccc7e0 - [WebAssembly][NFC] Refactor table handling in WebAssembly::wasmSymbolSetType
Alex Bradbury via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 5 20:58:32 PDT 2022
Author: Alex Bradbury
Date: 2022-07-06T04:54:13+01:00
New Revision: 8ccc7e0aa461350bce02d70669c11f4a5e300ee7
URL: https://github.com/llvm/llvm-project/commit/8ccc7e0aa461350bce02d70669c11f4a5e300ee7
DIFF: https://github.com/llvm/llvm-project/commit/8ccc7e0aa461350bce02d70669c11f4a5e300ee7.diff
LOG: [WebAssembly][NFC] Refactor table handling in WebAssembly::wasmSymbolSetType
Use the isExternRefType and isFuncRefType helpers rather than
reimplementing that logic in this function (which acts as a blocker to
work to prototype alternative IR-level representations of reference
types).
Added:
Modified:
llvm/lib/Target/WebAssembly/Utils/WebAssemblyTypeUtilities.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/WebAssembly/Utils/WebAssemblyTypeUtilities.cpp b/llvm/lib/Target/WebAssembly/Utils/WebAssemblyTypeUtilities.cpp
index 0f1655718481a..e087c7bd52b3c 100644
--- a/llvm/lib/Target/WebAssembly/Utils/WebAssemblyTypeUtilities.cpp
+++ b/llvm/lib/Target/WebAssembly/Utils/WebAssemblyTypeUtilities.cpp
@@ -179,19 +179,14 @@ void WebAssembly::wasmSymbolSetType(MCSymbolWasm *Sym, const Type *GlobalVT,
bool IsTable = false;
if (GlobalVT->isArrayTy() &&
WebAssembly::isRefType(GlobalVT->getArrayElementType())) {
- MVT VT;
IsTable = true;
- switch (GlobalVT->getArrayElementType()->getPointerAddressSpace()) {
- case WebAssembly::WasmAddressSpace::WASM_ADDRESS_SPACE_FUNCREF:
- VT = MVT::funcref;
- break;
- case WebAssembly::WasmAddressSpace::WASM_ADDRESS_SPACE_EXTERNREF:
- VT = MVT::externref;
- break;
- default:
- report_fatal_error("unhandled address space type");
- }
- Type = WebAssembly::toValType(VT);
+ const Type *ElTy = GlobalVT->getArrayElementType();
+ if (WebAssembly::isExternRefType(ElTy))
+ Type = wasm::ValType::EXTERNREF;
+ else if (WebAssembly::isFuncRefType(ElTy))
+ Type = wasm::ValType::FUNCREF;
+ else
+ report_fatal_error("unhandled reference type");
} else if (VTs.size() == 1) {
Type = WebAssembly::toValType(VTs[0]);
} else
More information about the llvm-commits
mailing list