LLVM  6.0.0svn
Enumerations | Functions | Variables
llvm::WebAssembly Namespace Reference

Enumerations

enum  Fixups {
  fixup_code_sleb128_i32 = FirstTargetFixupKind, fixup_code_sleb128_i64, fixup_code_uleb128_i32, fixup_code_global_index,
  LastTargetFixupKind, NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind
}
 
enum  OperandType {
  OPERAND_BASIC_BLOCK = MCOI::OPERAND_FIRST_TARGET, OPERAND_LOCAL, OPERAND_GLOBAL, OPERAND_I32IMM,
  OPERAND_I64IMM, OPERAND_F32IMM, OPERAND_F64IMM, OPERAND_FUNCTION32,
  OPERAND_OFFSET32, OPERAND_P2ALIGN, OPERAND_SIGNATURE, OPERAND_TYPEINDEX
}
 
enum  ExprType {
  ExprType::Void = -0x40, ExprType::I32 = -0x01, ExprType::I64 = -0x02, ExprType::F32 = -0x03,
  ExprType::F64 = -0x04, ExprType::I8x16 = -0x05, ExprType::I16x8 = -0x06, ExprType::I32x4 = -0x07,
  ExprType::F32x4 = -0x08, ExprType::B8x16 = -0x09, ExprType::B16x8 = -0x0a, ExprType::B32x4 = -0x0b
}
 This is used to indicate block signatures. More...
 

Functions

const charTypeToString (MVT Ty)
 
const charTypeToString (wasm::ValType Type)
 
unsigned GetDefaultP2Align (unsigned Opcode)
 Return the default p2align value for a load or store with the given opcode. More...
 
wasm::ValType toValType (const MVT &Ty)
 
FastISelcreateFastISel (FunctionLoweringInfo &funcInfo, const TargetLibraryInfo *libInfo)
 
bool isArgument (const MachineInstr &MI)
 
bool isCopy (const MachineInstr &MI)
 
bool isTee (const MachineInstr &MI)
 
bool isChild (const MachineInstr &MI, const WebAssemblyFunctionInfo &MFI)
 Test whether MI is a child of some other node in an expression tree. More...
 
bool isCallIndirect (const MachineInstr &MI)
 

Variables

static const unsigned LoadAddressOperandNo = 3
 The operand number of the load or store address in load/store instructions. More...
 
static const unsigned StoreAddressOperandNo = 2
 
static const unsigned LoadP2AlignOperandNo = 1
 The operand number of the load or store p2align in load/store instructions. More...
 
static const unsigned StoreP2AlignOperandNo = 0
 
static const unsigned Nop = 0x01
 Instruction opcodes emitted via means other than CodeGen. More...
 
static const unsigned End = 0x0b
 

Enumeration Type Documentation

◆ ExprType

This is used to indicate block signatures.

Enumerator
Void 
I32 
I64 
F32 
F64 
I8x16 
I16x8 
I32x4 
F32x4 
B8x16 
B16x8 
B32x4 

Definition at line 161 of file WebAssemblyMCTargetDesc.h.

◆ Fixups

Enumerator
fixup_code_sleb128_i32 
fixup_code_sleb128_i64 
fixup_code_uleb128_i32 
fixup_code_global_index 
LastTargetFixupKind 
NumTargetFixupKinds 

Definition at line 17 of file WebAssemblyFixupKinds.h.

◆ OperandType

Enumerator
OPERAND_BASIC_BLOCK 

Basic block label in a branch construct.

OPERAND_LOCAL 

Local index.

OPERAND_GLOBAL 

Global index.

OPERAND_I32IMM 

32-bit integer immediates.

OPERAND_I64IMM 

64-bit integer immediates.

OPERAND_F32IMM 

32-bit floating-point immediates.

OPERAND_F64IMM 

64-bit floating-point immediates.

OPERAND_FUNCTION32 

32-bit unsigned function indices.

OPERAND_OFFSET32 

32-bit unsigned memory offsets.

OPERAND_P2ALIGN 

p2align immediate for load and store address alignment.

OPERAND_SIGNATURE 

signature immediate for block/loop.

OPERAND_TYPEINDEX 

type signature immediate for call_indirect.

Definition at line 52 of file WebAssemblyMCTargetDesc.h.

Function Documentation

◆ createFastISel()

FastISel * llvm::WebAssembly::createFastISel ( FunctionLoweringInfo funcInfo,
const TargetLibraryInfo libInfo 
)

◆ GetDefaultP2Align()

unsigned llvm::WebAssembly::GetDefaultP2Align ( unsigned  Opcode)
inline

Return the default p2align value for a load or store with the given opcode.

Definition at line 111 of file WebAssemblyMCTargetDesc.h.

References llvm_unreachable.

Referenced by llvm::WebAssemblyInstPrinter::printWebAssemblyP2AlignOperand(), and RewriteP2Align().

◆ isArgument()

bool llvm::WebAssembly::isArgument ( const MachineInstr MI)

◆ isCallIndirect()

bool llvm::WebAssembly::isCallIndirect ( const MachineInstr MI)

◆ isChild()

bool llvm::WebAssembly::isChild ( const MachineInstr MI,
const WebAssemblyFunctionInfo MFI 
)

◆ isCopy()

bool llvm::WebAssembly::isCopy ( const MachineInstr MI)

Definition at line 37 of file WebAssemblyUtilities.cpp.

References llvm::MachineInstr::getOpcode().

Referenced by FindStartOfTree().

◆ isTee()

bool llvm::WebAssembly::isTee ( const MachineInstr MI)

Definition at line 49 of file WebAssemblyUtilities.cpp.

References llvm::MachineInstr::getOpcode().

Referenced by FindStartOfTree().

◆ toValType()

wasm::ValType llvm::WebAssembly::toValType ( const MVT Ty)

◆ TypeToString() [1/2]

const char * llvm::WebAssembly::TypeToString ( MVT  Ty)

◆ TypeToString() [2/2]

const char * llvm::WebAssembly::TypeToString ( wasm::ValType  Type)

Variable Documentation

◆ End

const unsigned llvm::WebAssembly::End = 0x0b
static

Definition at line 178 of file WebAssemblyMCTargetDesc.h.

Referenced by llvm::__deregister_frame(), llvm::DwarfCompileUnit::addImportedEntity(), addLiveInRegs(), llvm::RuntimePointerChecking::CheckingPtrGroup::addPointer(), AddRuntimeUnrollDisableMetaData(), AdjustStackOffset(), llvm::BumpPtrAllocatorImpl< MallocAllocator, 65536 >::Allocate(), llvm::MachineFunction::allocateRegisterMask(), llvm::User::allocHungoffUses(), llvm::object::ELFFile< ELFT >::android_relas(), llvm::sampleprof::SampleProfileReaderBinary::at_eof(), llvm::AVROperand::AVROperand(), llvm::yaml::BlockScalarNode::BlockScalarNode(), BuildVectorFromScalar(), llvm::calculateClrEHStateNumbers(), llvm::LiveRangeCalc::calculateValues(), CheckBaseRegAndIndexRegAndScale(), checkScale(), llvm::pdb::ClassLayout::ClassLayout(), CloneNodeWithValues(), llvm::codeview::DebugStringTableSubsection::commit(), llvm::SelectionDAGISel::ComplexPatternFuncMutatesDAG(), llvm::ProfileSummaryBuilder::computeDetailedSummary(), computeUnsignedMinMaxValuesFromKnownBits(), llvm::DWARFVerifier::DieRangeInfo::contains(), llvm::pdb::LayoutItemBase::containsOffset(), llvm::SystemZInstrInfo::convertToThreeAddress(), llvm::convertWideToUTF8(), llvm::AArch64InstrInfo::copyPhysRegTuple(), llvm::LiveRangeCalc::createDeadDefs(), llvm::createHexagonHardwareLoops(), llvm::createStoreClusterDAGMutation(), llvm::SplitEditor::currentIntv(), decodeUTF8(), llvm::SpecificBumpPtrAllocator< llvm::LazyCallGraph::SCC >::DestroyAll(), llvm::OnDiskChainedHashTableGenerator< Info >::Emit(), llvm::DwarfDebug::emitDebugLocEntry(), llvm::WebAssemblyTargetELFStreamer::emitEndFunc(), EmitGenDwarfInfo(), llvm::AArch64FrameLowering::emitPrologue(), llvm::SystemZSelectionDAGInfo::EmitTargetCodeForMemchr(), llvm::MIBundleBuilder::empty(), llvm::MIBundleBuilder::end(), llvm::WinException::endFunclet(), llvm::SplitEditor::enterIntvAtEnd(), llvm::GCNIterativeScheduler::enterRegion(), llvm::BitTracker::MachineEvaluator::evaluate(), expand(), expandBounds(), llvm::MachineFunction::extractLoadMemRefs(), llvm::MachineFunction::extractStoreMemRefs(), llvm::yaml::Scanner::failed(), llvm::SIScheduleDAGMI::fillVgprSgprCost(), llvm::DebugLocEntry::finalize(), llvm::SchedDFSImpl::finalize(), findCFILocation(), findIBRPredecessor(), llvm::DWARFVerifier::DieRangeInfo::findRange(), fitsRegularPattern(), fixPhis(), llvm::parallel::for_each_n(), llvm::format_provider< llvm::iterator_range< IterT > >::format(), generateUnsignedDivisionCode(), llvm::GenericScheduler::GenericScheduler(), llvm::DWARFDebugAbbrev::getAbbreviationDeclarationSet(), llvm::MCObjectStreamer::getAssembler(), getBitWidth(), llvm::MachineLoop::getBottomBlock(), getBoundedStrlen(), getCompareCC(), llvm::User::getDescriptor(), llvm::BasicBlockEdge::getEnd(), llvm::Loop::LocRange::getEnd(), llvm::AVROperand::getEndLoc(), getEquivalentCallShort(), llvm::SIScheduleDAGMI::getExitSU(), llvm::MCDwarfLineTableHeader::getFile(), getFirstInst(), llvm::DIExpression::getFragmentInfo(), llvm::CodeViewContext::getFunctionLineEntries(), llvm::SystemZTTIImpl::getIntImmCost(), llvm::TargetLibraryInfoImpl::getLibFunc(), llvm::coverage::getLineCoverageStats(), getMFHiLoOpc(), llvm::object::ArchiveMemberHeader::getName(), llvm::codeview::LazyRandomTypeCollection::getNext(), llvm::GCNDownwardRPTracker::getNext(), getNonDebugInstr(), llvm::OperandBundleUser< InvokeInst, User::op_iterator >::getNumTotalBundleOperands(), llvm::RegisterBankInfo::getOperandsMapping(), llvm::BranchProbability::getRaw(), llvm::RegisterBankInfo::getRegBank(), llvm::GCNIterativeScheduler::getRegionPressure(), llvm::SystemZInstrInfo::getRegisterInfo(), getStoreTarget(), llvm::SystemZTargetLowering::getTargetNodeName(), llvm::getToken(), getTryAncestor(), llvm::Use::getUser(), llvm::LiveIntervals::getVNInfoAllocator(), llvm::PerFunctionMIParsingState::getVRegInfo(), llvm::RegisterBankInfo::OperandsMapper::getVRegs(), getX86SSEConditionCode(), llvm::LiveIntervals::handleMoveIntoBundle(), hasTiedDef(), ImmInRange(), INITIALIZE_PASS(), llvm::StringSet< AllocatorTy >::insert(), llvm::DWARFVerifier::DieRangeInfo::insert(), llvm::SetVector< llvm::PHINode *, llvm::SmallVector< llvm::PHINode *, 2 > >::insert(), instrumentMaskedLoadOrStore(), llvm::DWARFVerifier::DieRangeInfo::intersects(), isBroadcastShuffle(), isCoverageMappingDummy(), isDebug(), llvm::object::ExportDirectoryEntryRef::isForwarder(), isIdentifierChar(), IsInRanges(), IsKnownPredicateViaMinOrMax(), isLoopIncrement(), isObjectStart(), isOpcodeHandled(), IsPointerOffset(), llvm::LiveRange::isUndefIn(), isValidEncoding(), llvm::detail::join_impl(), llvm::object::Lexer::lex(), llvm::LLLexer::LLLexer(), llvm::coverage::CoverageMapping::load(), lowerVECTOR_SHUFFLE_ILVEV(), lowerVECTOR_SHUFFLE_ILVL(), lowerVECTOR_SHUFFLE_ILVOD(), lowerVECTOR_SHUFFLE_ILVR(), lowerVECTOR_SHUFFLE_PCKEV(), lowerVECTOR_SHUFFLE_PCKOD(), mapArchToCVCPUType(), markIndicesSafe(), maskMatters(), MaybeRewriteToFallthrough(), llvm::DebugLocEntry::MergeValues(), moveInstrOut(), llvm::object::COFFObjectFile::moveSymbolNext(), multipleIterations(), needsReferenceType(), nextIfDebug(), llvm::object::ExportEntry::nodeOffset(), llvm::BranchProbability::normalizeProbabilities(), okayForPHIOfOps(), opcodeEmitsNoInsts(), llvm::RegisterBankInfo::OperandsMapper::OperandsMapper(), llvm::Loop::LocRange::operator bool(), llvm::MCSymbol::operator new(), llvm::SmallPtrSetIterator< PtrTy >::operator*(), llvm::IntervalIterator< NodeTy, OrigContainer_t, GT, IGT >::operator++(), llvm::BumpPtrAllocatorImpl< MallocAllocator, 65536 >::operator=(), llvm::SplitEditor::overlapIntv(), llvm::LiveRange::overlaps(), llvm::parallel::detail::parallel_for_each_n(), llvm::object::WindowsResourceParser::parse(), llvm::opt::OptTable::ParseArgs(), llvm::opt::OptTable::ParseOneArg(), llvm::LLParser::parseTypeAtBeginning(), PlaceBlockMarker(), PlaceLoopMarker(), preassignSwiftErrorRegs(), previousIsLoop(), llvm::IntervalPartition::print(), llvm::RegisterBank::print(), printLivenessInfo(), printRegion(), llvm::BumpPtrAllocatorImpl< MallocAllocator, 65536 >::PrintStats(), profitImm(), llvm::programUndefinedIfFullPoison(), rangeOnlyContains(), false::Chain::rangeOverlapsWith(), readCoverageMappingData(), llvm::InstrProfLookupTrait::ReadData(), llvm::GCOVFunction::readGCDA(), llvm::RawInstrProfReader< IntPtrT >::readHeader(), llvm::sampleprof::SampleProfileReaderBinary::readHeader(), llvm::InstrProfLookupTrait::ReadKey(), llvm::sampleprof::SampleProfileReaderBinary::readNumber(), llvm::sampleprof::SampleProfileReaderBinary::readString(), RedzoneSizeForScale(), llvm::RegisterBankInfo::RegisterBankInfo(), llvm::RuntimeDyldMachOCRTPBase< RuntimeDyldMachOX86_64 >::registerEHFrames(), regOverlapsSet(), removeDeadSegment(), llvm::LiveRange::removeSegment(), llvm::SlotIndexes::repairIndexesInRange(), llvm::RegBankSelect::RepairingPlacement::RepairingPlacement(), replaceAllUsesOfWithIn(), replaceFallthroughCoroEnd(), reportFastISelFailure(), llvm::R600InstrInfo::reserveIndirectRegisters(), llvm::BumpPtrAllocatorImpl< MallocAllocator, 65536 >::Reset(), llvm::BitTracker::run(), llvm::RegBankSelect::runOnMachineFunction(), llvm::yaml::ScalarNode::ScalarNode(), llvm::yaml::Output::scalarString(), scan(), scanInlinedCode(), llvm::yaml::Scanner::setError(), shouldSpeculateInstrs(), shouldUseMmap(), SimplifyBranchOnICmpChain(), simplifyX86extrq(), simplifyX86insertq(), llvm::simple_ilist< MachineInstr, Options... >::sort(), llvm::object::WasmObjectFile::startFunction(), llvm::stripDebugInfo(), SumCanReachMin(), llvm::parallel::detail::TaskGroup::sync(), llvm::detail::to_float(), tryBuildVectorReplicate(), tryToreplicateChunks(), TypeSizeToSizeIndex(), llvm::MachineTraceMetrics::Ensemble::updateDepths(), UpdatePosition(), UseReg(), llvm::RegisterBank::verify(), verifySameBranchInstructions(), llvm::LLLexer::Warning(), llvm::object::WasmObjectFile::WasmObjectFile(), llvm::MachObjectWriter::writeObject(), and llvm::SlotIndexes::~SlotIndexes().

◆ LoadAddressOperandNo

const unsigned llvm::WebAssembly::LoadAddressOperandNo = 3
static

The operand number of the load or store address in load/store instructions.

Definition at line 153 of file WebAssemblyMCTargetDesc.h.

Referenced by llvm::WebAssemblyRegisterInfo::eliminateFrameIndex().

◆ LoadP2AlignOperandNo

const unsigned llvm::WebAssembly::LoadP2AlignOperandNo = 1
static

The operand number of the load or store p2align in load/store instructions.

Definition at line 157 of file WebAssemblyMCTargetDesc.h.

Referenced by RewriteP2Align().

◆ Nop

const unsigned llvm::WebAssembly::Nop = 0x01
static

Instruction opcodes emitted via means other than CodeGen.

Definition at line 177 of file WebAssemblyMCTargetDesc.h.

Referenced by llvm::HexagonMCInstrInfo::padEndloop().

◆ StoreAddressOperandNo

const unsigned llvm::WebAssembly::StoreAddressOperandNo = 2
static

◆ StoreP2AlignOperandNo

const unsigned llvm::WebAssembly::StoreP2AlignOperandNo = 0
static

Definition at line 158 of file WebAssemblyMCTargetDesc.h.

Referenced by RewriteP2Align().