LLVM
8.0.1
|
This file contains code to lower WebAssembly MachineInstrs to their corresponding MCInst records. More...
#include "WebAssemblyMCInstLower.h"
#include "WebAssemblyAsmPrinter.h"
#include "WebAssemblyMachineFunctionInfo.h"
#include "WebAssemblyRuntimeLibcallSignatures.h"
#include "WebAssemblyUtilities.h"
#include "llvm/CodeGen/AsmPrinter.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/IR/Constants.h"
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCInst.h"
#include "llvm/MC/MCSymbolWasm.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
#include "WebAssemblyGenInstrInfo.inc"
Go to the source code of this file.
Macros | |
#define | GET_INSTRMAP_INFO 1 |
Functions | |
static void | removeRegisterOperands (const MachineInstr *MI, MCInst &OutMI) |
static wasm::ValType | getType (const TargetRegisterClass *RC) |
Variables | |
static cl::opt< bool > | WasmKeepRegisters ("wasm-keep-registers", cl::Hidden, cl::desc("WebAssembly: output stack registers in" " instruction output for test purposes only."), cl::init(false)) |
This file contains code to lower WebAssembly MachineInstrs to their corresponding MCInst records.
Definition in file WebAssemblyMCInstLower.cpp.
#define GET_INSTRMAP_INFO 1 |
Definition at line 35 of file WebAssemblyMCInstLower.cpp.
|
static |
Definition at line 150 of file WebAssemblyMCInstLower.cpp.
References llvm::wasm::F32, llvm::wasm::F64, llvm::wasm::I32, llvm::wasm::I64, llvm_unreachable, and llvm::wasm::V128.
Referenced by allSameType(), llvm::Record::appendLoc(), llvm::object::BaseRelocRef::BaseRelocRef(), branchMaxOffsets(), llvm::MachineIRBuilder::buildBlockAddress(), llvm::MachineIRBuilder::buildBrCond(), llvm::MachineIRBuilder::buildBrIndirect(), llvm::MachineIRBuilder::buildExtract(), llvm::MachineIRBuilder::buildFrameIndex(), llvm::MachineIRBuilder::buildGEP(), llvm::MachineIRBuilder::buildGlobalValue(), llvm::MachineIRBuilder::buildInsert(), llvm::MachineIRBuilder::buildLoadInstr(), llvm::MachineIRBuilder::buildPtrMask(), llvm::MachineIRBuilder::buildSequence(), llvm::MachineIRBuilder::buildStore(), llvm::canConstantFoldCallTo(), llvm::UnOpInit::clone(), llvm::BinOpInit::clone(), llvm::TernOpInit::clone(), cloneConstantExprWithNewAddressSpace(), ComputeNumSignBitsImpl(), concatSubVector(), llvm::ConstantFoldGetElementPtr(), llvm::ConstantFoldLoadFromConstPtr(), llvm::TypedInit::convertInitializerBitRange(), llvm::TypedInit::convertInitializerTo(), llvm::ListInit::convertInitializerTo(), llvm::DefInit::convertInitializerTo(), llvm::TypedInit::convertInitListSlice(), createCallInst(), llvm::createSeparateConstOffsetFromGEPPass(), DoInitialMatch(), llvm::GVNExpression::Expression::dump(), llvm::AMDGPU::HSAMD::MetadataStreamerV2::emitKernel(), encodeBase64StringEntry(), llvm::GVNExpression::BasicExpression::equals(), llvm::UnOpInit::Fold(), llvm::TernOpInit::Fold(), foldIdentityExtractShuffle(), FunctionNumber(), llvm::InlineAsm::get(), GetAEABIUnwindPersonalityName(), llvm::UnOpInit::getAsString(), llvm::object::COFFSymbolRef::getBaseType(), llvm::OpInit::getBit(), llvm::VarInit::getBit(), llvm::VarListElementInit::getBit(), llvm::FieldInit::getBit(), llvm::TypedInit::getCastTo(), getChainID(), llvm::object::COFFSymbolRef::getComplexType(), llvm::getCopyDeclaration(), llvm::ListInit::getElementType(), llvm::TypedInit::getFieldType(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getIntrinsicInstrCost(), getMemSetPatternValue(), llvm::MachineConstantPoolEntry::getSectionKind(), llvm::DIVariable::getSignedness(), llvm::ConstantPoolSDNode::getTargetFlags(), group2Shuffle(), llvm::DbgVariable::hasComplexAddress(), hasValueBeenRAUWed(), instrumentMaskedLoadOrStore(), llvm::object::MachOObjectFile::is64Bit(), llvm::DbgVariable::isArtificial(), llvm::object::Elf_Sym_Impl< ELFT >::isCommon(), llvm::HexagonMCInstrInfo::isCompound(), llvm::rdf::RefNode::isDef(), llvm::HexagonMCInstrInfo::isHVX(), llvm::DbgVariable::isObjectPointer(), llvm::MachineInstr::isOperandSubregIdx(), isReInterleaveMask(), llvm::rdf::RefNode::isUse(), llvm::HexagonMCInstrInfo::isVector(), isWeak(), LLVMTypeOf(), llvm::WebAssemblyMCInstLower::Lower(), llvm::fuzzerop::matchFirstType(), matchScalarInAggregate(), llvm::fuzzerop::matchScalarOfFirstType(), llvm::MachineIRBuilder::materializeGEP(), PerformHeapAllocSRoA(), llvm::ListInit::Profile(), llvm::UnOpInit::Profile(), llvm::BinOpInit::Profile(), llvm::TernOpInit::Profile(), readWideAPInt(), llvm::UnOpInit::resolveReferences(), llvm::BinOpInit::resolveReferences(), llvm::TernOpInit::resolveReferences(), llvm::object::Elf_Sym_Impl< ELFT >::setBinding(), llvm::ELF::Elf32_Sym::setBinding(), llvm::ELF::Elf64_Sym::setBinding(), llvm::object::Elf_Rel_Impl< ELFType< TargetEndianness, false >, false >::setSymbol(), llvm::object::Elf_Rel_Impl< ELFType< TargetEndianness, true >, false >::setSymbol(), llvm::ELF::Elf32_Rel::setSymbol(), llvm::ELF::Elf32_Rela::setSymbol(), llvm::ELF::Elf64_Rel::setSymbol(), llvm::ELF::Elf64_Rela::setSymbol(), llvm::ARMAsmBackend::shouldForceRelocation(), SimplifyGEPInst(), speculatePHIs(), splitGlobal(), llvm::DISubprogram::toSPFlags(), tryUnmergingGEPsAcrossIndirectBr(), llvm::pdb::TpiStream::typeCollection(), validExtractValueIndex(), validInsertValueIndex(), llvm::InnerLoopVectorizer::vectorizeInterleaveGroup(), llvm::InstCombiner::visitLandingPadInst(), llvm::InstCombiner::visitLShr(), and llvm::MetadataAsValue::~MetadataAsValue().
|
static |
Definition at line 274 of file WebAssemblyMCInstLower.cpp.
References assert(), llvm::MCInst::erase(), llvm::MCInst::getNumOperands(), llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), I, llvm::MachineInstr::isDebugInstr(), llvm::MachineInstr::isInlineAsm(), llvm::MachineInstr::isLabel(), llvm::MachineOperand::isReg(), and llvm::MCInst::setOpcode().
Referenced by llvm::WebAssemblyMCInstLower::Lower().