LLVM 24.0.0git
WebAssemblyMCInstLower.h
Go to the documentation of this file.
1//===-- WebAssemblyMCInstLower.h - Lower MachineInstr to MCInst -*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8///
9/// \file
10/// This file declares the class to lower WebAssembly MachineInstrs to
11/// their corresponding MCInst records.
12///
13//===----------------------------------------------------------------------===//
14
15#ifndef LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYMCINSTLOWER_H
16#define LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYMCINSTLOWER_H
17
19#include "llvm/MC/MCInst.h"
21
22namespace llvm {
24class DebugLoc;
25class GlobalValue;
26class MCContext;
27class MCSymbol;
28class MachineInstr;
29class MachineOperand;
30
31/// This class is used to lower an MachineInstr into an MCInst.
33 MCContext &Ctx;
34 WebAssemblyAsmPrinter &Printer;
35
36 MCSymbol *GetGlobalAddressSymbol(const GlobalValue &Global,
37 const DebugLoc &DL) const;
38 MCSymbol *GetExternalSymbolSymbol(const MachineOperand &MO) const;
40 MCOperand lowerTypeIndexOperand(SmallVectorImpl<wasm::ValType> &&,
42 MCOperand lowerEncodedFunctionSignature(const APInt &Sig) const;
43
44public:
47 void lower(const MachineInstr *MI, MCInst &OutMI) const;
48};
49} // end namespace llvm
50
51#endif
amdgpu next use printer
MachineBasicBlock MachineBasicBlock::iterator DebugLoc DL
#define LLVM_LIBRARY_VISIBILITY
Definition Compiler.h:137
IRTranslator LLVM IR MI
static MCOperand lowerSymbolOperand(const MachineOperand &MO, MCSymbol *Sym, const AsmPrinter &AP)
Class for arbitrary precision integers.
Definition APInt.h:78
A debug info location.
Definition DebugLoc.h:126
Context object for machine code objects.
Definition MCContext.h:83
Instances of this class represent a single low-level machine instruction.
Definition MCInst.h:188
Instances of this class represent operands of the MCInst class.
Definition MCInst.h:40
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
Definition MCSymbol.h:42
Representation of each machine instruction.
MachineOperand class - Representation of each machine instruction operand.
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
WebAssemblyMCInstLower(MCContext &ctx, WebAssemblyAsmPrinter &printer)
This is an optimization pass for GlobalISel generic memory operations.
@ Global
Append to llvm.global_dtors.