LLVM  4.0.0
Enumerations | Functions | Variables
llvm::WebAssembly Namespace Reference

Enumerations

enum  OperandType {
  OPERAND_BASIC_BLOCK = MCOI::OPERAND_FIRST_TARGET, OPERAND_LOCAL, OPERAND_I32IMM, OPERAND_I64IMM,
  OPERAND_F32IMM, OPERAND_F64IMM, OPERAND_FUNCTION32, OPERAND_OFFSET32,
  OPERAND_P2ALIGN, OPERAND_SIGNATURE
}
 
enum  ExprType {
  ExprType::Void = 0x40, ExprType::I32 = 0x7f, ExprType::I64 = 0x7e, ExprType::F32 = 0x7d,
  ExprType::F64 = 0x7c, ExprType::I8x16 = 0x7b, ExprType::I16x8 = 0x7a, ExprType::I32x4 = 0x79,
  ExprType::F32x4 = 0x78, ExprType::B8x16 = 0x77, ExprType::B16x8 = 0x76, ExprType::B32x4 = 0x75
}
 This is used to indicate block signatures. More...
 
enum  ValType {
  ValType::I32 = 0x7f, ValType::I64 = 0x7e, ValType::F32 = 0x7d, ValType::F64 = 0x7c,
  ValType::I8x16 = 0x7b, ValType::I16x8 = 0x7a, ValType::I32x4 = 0x79, ValType::F32x4 = 0x78,
  ValType::B8x16 = 0x77, ValType::B16x8 = 0x76, ValType::B32x4 = 0x75
}
 This is used to indicate local types. More...
 

Functions

const char * TypeToString (MVT Ty)
 
unsigned GetDefaultP2Align (unsigned Opcode)
 Return the default p2align value for a load or store with the given opcode. More...
 
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...
 

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

This is used to indicate block signatures.

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

Definition at line 143 of file WebAssemblyMCTargetDesc.h.

Enumerator
OPERAND_BASIC_BLOCK 

Basic block label in a branch construct.

OPERAND_LOCAL 

Local 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.

Definition at line 45 of file WebAssemblyMCTargetDesc.h.

This is used to indicate local types.

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

Definition at line 159 of file WebAssemblyMCTargetDesc.h.

Function Documentation

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

Definition at line 1274 of file WebAssemblyFastISel.cpp.

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

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

Definition at line 100 of file WebAssemblyMCTargetDesc.h.

References llvm_unreachable.

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

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

Definition at line 20 of file WebAssemblyUtilities.cpp.

References llvm::MachineInstr::getOpcode().

Referenced by HasArgumentDef().

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

Definition at line 36 of file WebAssemblyUtilities.cpp.

References llvm::MachineInstr::getOpcode().

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

Definition at line 48 of file WebAssemblyUtilities.cpp.

References llvm::MachineInstr::getOpcode().

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

Variable Documentation

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

Definition at line 175 of file WebAssemblyMCTargetDesc.h.

Referenced by llvm::RuntimePointerChecking::CheckingPtrGroup::addPointer(), llvm::User::allocHungoffUses(), llvm::yaml::BlockScalarNode::BlockScalarNode(), BuildVectorFromScalar(), llvm::IDFCalculator< NodeTy >::calculate(), llvm::calculateClrEHStateNumbers(), CloneNodeWithValues(), llvm::ProfileSummaryBuilder::computeDetailedSummary(), llvm::SystemZInstrInfo::convertToThreeAddress(), llvm::convertWideToUTF8(), llvm::AArch64InstrInfo::copyPhysRegTuple(), decodeUTF8(), llvm::SpecificBumpPtrAllocator< llvm::LazyCallGraph::SCC >::DestroyAll(), llvm::DominatorTree::dominates(), llvm::OnDiskChainedHashTableGenerator< Info >::Emit(), llvm::WebAssemblyTargetELFStreamer::emitEndFunc(), EmitGenDwarfInfo(), llvm::AArch64FrameLowering::emitPrologue(), llvm::SystemZSelectionDAGInfo::EmitTargetCodeForMemchr(), llvm::SplitEditor::enterIntvAtEnd(), expandBounds(), llvm::MachineFunction::extractLoadMemRefs(), llvm::MachineFunction::extractStoreMemRefs(), llvm::SIScheduleDAGMI::fillVgprSgprCost(), llvm::SchedDFSImpl::finalize(), findCFILocation(), fitsRegularPattern(), llvm::ScheduleDAGInstrs::fixupKills(), llvm::format_provider< llvm::iterator_range< IterT > >::format(), generateUnsignedDivisionCode(), llvm::DWARFDebugAbbrev::getAbbreviationDeclarationSet(), llvm::MachineLoop::getBottomBlock(), getBoundedStrlen(), llvm::Loop::LocRange::getEnd(), llvm::MCSection::getEndSymbol(), llvm::MCDwarfLineTableHeader::getFile(), llvm::HexagonInstrInfo::getFirstNonDbgInst(), llvm::DIExpression::getFragmentInfo(), llvm::CodeViewContext::getFunctionLineEntries(), llvm::SystemZTTIImpl::getIntImmCost(), llvm::TargetLibraryInfoImpl::getLibFunc(), llvm::object::ArchiveMemberHeader::getName(), llvm::OperandBundleUser< InvokeInst, User::op_iterator >::getNumTotalBundleOperands(), llvm::RegisterBankInfo::getOperandsMapping(), llvm::getToken(), llvm::Use::getUser(), llvm::RegisterBankInfo::OperandsMapper::getVRegs(), llvm::MCSection::hasEnded(), INITIALIZE_PASS(), llvm::StringSet< AllocatorTy >::insert(), llvm::SetVector< const llvm::Constant *, SmallVector< const llvm::Constant *, N >, SmallDenseSet< const llvm::Constant *, N > >::insert(), llvm::object::ExportDirectoryEntryRef::isForwarder(), llvm::isKnownNotFullPoison(), llvm::LiveRange::isUndefIn(), llvm::detail::join_impl(), lowerVECTOR_SHUFFLE_ILVEV(), lowerVECTOR_SHUFFLE_ILVL(), lowerVECTOR_SHUFFLE_ILVOD(), lowerVECTOR_SHUFFLE_ILVR(), lowerVECTOR_SHUFFLE_PCKEV(), lowerVECTOR_SHUFFLE_PCKOD(), MarkIndicesSafe(), llvm::object::COFFObjectFile::moveSymbolNext(), multikey_qsort(), nextIfDebug(), llvm::BranchProbability::normalizeProbabilities(), llvm::Loop::LocRange::operator bool(), llvm::MCSymbol::operator new(), llvm::opt::OptTable::ParseArgs(), parseDouble(), llvm::opt::OptTable::ParseOneArg(), llvm::LLParser::parseTypeAtBeginning(), PlaceBlockMarker(), PlaceLoopMarker(), llvm::RegisterBank::print(), rangeOnlyContains(), false::Chain::rangeOverlapsWith(), readCoverageMappingData(), llvm::InstrProfLookupTrait::ReadData(), llvm::GCOVFunction::readGCDA(), llvm::sampleprof::SampleProfileReaderBinary::readHeader(), llvm::sampleprof::SampleProfileReaderBinary::readNumber(), llvm::sampleprof::SampleProfileReaderBinary::readString(), llvm::RegisterBankInfo::RegisterBankInfo(), llvm::RuntimeDyldMachOCRTPBase< Impl >::registerEHFrames(), llvm::LiveRange::removeSegment(), llvm::SlotIndexes::repairIndexesInRange(), llvm::RegBankSelect::RepairingPlacement::RepairingPlacement(), replaceFallthroughCoroEnd(), llvm::R600InstrInfo::reserveIndirectRegisters(), llvm::RegBankSelect::runOnMachineFunction(), llvm::yaml::ScalarNode::ScalarNode(), llvm::yaml::Output::scalarString(), scan(), scanInlinedCode(), llvm::yaml::Scanner::setError(), shouldSpeculateInstrs(), shouldUseMmap(), simplifyX86extrq(), simplifyX86insertq(), llvm::simple_ilist< T, Options >::sort(), llvm::stripDebugInfo(), toggleBundleKillFlag(), tryBuildVectorReplicate(), fuzzer::TraceState::TryToAddDesiredData(), tryToreplicateChunks(), UpdatePosition(), llvm::RegisterBank::verify(), and llvm::MachObjectWriter::writeObject().

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

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

Definition at line 135 of file WebAssemblyMCTargetDesc.h.

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

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

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

Definition at line 139 of file WebAssemblyMCTargetDesc.h.

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

Instruction opcodes emitted via means other than CodeGen.

Definition at line 174 of file WebAssemblyMCTargetDesc.h.

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

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

Definition at line 140 of file WebAssemblyMCTargetDesc.h.