diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2022-07-14 18:50:02 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2022-07-14 18:50:02 +0000 |
commit | 1f917f69ff07f09b6dbb670971f57f8efe718b84 (patch) | |
tree | 99293cbc1411737cd995dac10a99b2c40ef0944c /llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp | |
parent | 145449b1e420787bb99721a429341fa6be3adfb6 (diff) | |
download | src-vendor/llvm-project/llvmorg-15-init-16436-g18a6ab5b8d1f.tar.gz src-vendor/llvm-project/llvmorg-15-init-16436-g18a6ab5b8d1f.zip |
Vendor import of llvm-project main llvmorg-15-init-16436-g18a6ab5b8d1f.vendor/llvm-project/llvmorg-15-init-16436-g18a6ab5b8d1f
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp')
-rw-r--r-- | llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp | 27 |
1 files changed, 2 insertions, 25 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp index ba1c4b7233f2..5fcee7af9bde 100644 --- a/llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp +++ b/llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp @@ -12,6 +12,7 @@ //===----------------------------------------------------------------------===// #include "MCTargetDesc/WebAssemblyMCTargetDesc.h" +#include "Utils/WebAssemblyUtilities.h" #include "WebAssembly.h" #include "WebAssemblyMachineFunctionInfo.h" #include "WebAssemblySubtarget.h" @@ -95,31 +96,7 @@ static bool maybeRewriteToFallthrough(MachineInstr &MI, MachineBasicBlock &MBB, if (!MFI.isVRegStackified(Reg)) { unsigned CopyLocalOpc; const TargetRegisterClass *RegClass = MRI.getRegClass(Reg); - switch (RegClass->getID()) { - case WebAssembly::I32RegClassID: - CopyLocalOpc = WebAssembly::COPY_I32; - break; - case WebAssembly::I64RegClassID: - CopyLocalOpc = WebAssembly::COPY_I64; - break; - case WebAssembly::F32RegClassID: - CopyLocalOpc = WebAssembly::COPY_F32; - break; - case WebAssembly::F64RegClassID: - CopyLocalOpc = WebAssembly::COPY_F64; - break; - case WebAssembly::V128RegClassID: - CopyLocalOpc = WebAssembly::COPY_V128; - break; - case WebAssembly::FUNCREFRegClassID: - CopyLocalOpc = WebAssembly::COPY_FUNCREF; - break; - case WebAssembly::EXTERNREFRegClassID: - CopyLocalOpc = WebAssembly::COPY_EXTERNREF; - break; - default: - llvm_unreachable("Unexpected register class for return operand"); - } + CopyLocalOpc = WebAssembly::getCopyOpcodeForRegClass(RegClass); Register NewReg = MRI.createVirtualRegister(RegClass); BuildMI(MBB, MI, MI.getDebugLoc(), TII.get(CopyLocalOpc), NewReg) .addReg(Reg); |