LLVM
8.0.1
|
Enumerations | |
enum | Fixups { fixup_code_sleb128_i32 = FirstTargetFixupKind, fixup_code_sleb128_i64, fixup_code_uleb128_i32, 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_VEC_I8IMM, OPERAND_VEC_I16IMM, OPERAND_VEC_I32IMM, OPERAND_VEC_I64IMM, OPERAND_FUNCTION32, OPERAND_OFFSET32, OPERAND_P2ALIGN, OPERAND_SIGNATURE, OPERAND_TYPEINDEX, OPERAND_EVENT, OPERAND_BRLIST } |
enum | ExprType : unsigned { ExprType::Void = 0x40, ExprType::I32 = 0x7F, ExprType::I64 = 0x7E, ExprType::F32 = 0x7D, ExprType::F64 = 0x7C, ExprType::V128 = 0x7B, ExprType::ExceptRef = 0x68, ExprType::Invalid = 0x00 } |
This is used to indicate block signatures. 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 |
const char *const | ClangCallTerminateFn = "__clang_call_terminate" |
const char *const | CxaBeginCatchFn = "__cxa_begin_catch" |
const char *const | CxaRethrowFn = "__cxa_rethrow" |
const char *const | StdTerminateFn = "_ZSt9terminatev" |
const char *const | PersonalityWrapperFn |
|
strong |
This is used to indicate block signatures.
Enumerator | |
---|---|
Void | |
I32 | |
I64 | |
F32 | |
F64 | |
V128 | |
ExceptRef | |
Invalid |
Definition at line 344 of file WebAssemblyMCTargetDesc.h.
Enumerator | |
---|---|
fixup_code_sleb128_i32 | |
fixup_code_sleb128_i64 | |
fixup_code_uleb128_i32 | |
LastTargetFixupKind | |
NumTargetFixupKinds |
Definition at line 17 of file WebAssemblyFixupKinds.h.
Definition at line 47 of file WebAssemblyMCTargetDesc.h.
Definition at line 283 of file WebAssemblyInstPrinter.cpp.
References llvm::wasm::WASM_TYPE_EXCEPT_REF, llvm::wasm::WASM_TYPE_F32, llvm::wasm::WASM_TYPE_F64, llvm::wasm::WASM_TYPE_FUNC, llvm::wasm::WASM_TYPE_FUNCREF, llvm::wasm::WASM_TYPE_I32, llvm::wasm::WASM_TYPE_I64, llvm::wasm::WASM_TYPE_NORESULT, and llvm::wasm::WASM_TYPE_V128.
Referenced by llvm::WebAssemblyInstPrinter::printWebAssemblySignatureOperand(), and typeToString().
FastISel * llvm::WebAssembly::createFastISel | ( | FunctionLoweringInfo & | funcInfo, |
const TargetLibraryInfo * | libInfo | ||
) |
Definition at line 1399 of file WebAssemblyFastISel.cpp.
Referenced by llvm::WebAssemblyTargetLowering::WebAssemblyTargetLowering().
MachineBasicBlock* llvm::WebAssembly::getBottom | ( | const T * | Unit | ) |
Return the "bottom" block of an entity, which can be either a MachineLoop or WebAssemblyException.
This differs from MachineLoop::getBottomBlock in that it works even if the entity is discontiguous.
Definition at line 60 of file WebAssemblyUtilities.h.
References llvm::MachineBasicBlock::getNumber().
Referenced by SortBlocks().
unsigned llvm::WebAssembly::getCalleeOpNo | ( | const MachineInstr & | MI | ) |
Returns the operand number of a callee, assuming the argument is a call instruction.
Definition at line 169 of file WebAssemblyUtilities.cpp.
References llvm::MachineInstr::getOpcode(), and llvm_unreachable.
Referenced by isCatchAllTerminatePad(), isCatchTerminatePad(), mayThrow(), and Query().
Return the default p2align value for a load or store with the given opcode.
Definition at line 121 of file WebAssemblyMCTargetDesc.h.
References llvm_unreachable.
Referenced by llvm::WebAssemblyInstPrinter::printWebAssemblyP2AlignOperand(), and RewriteP2Align().
bool llvm::WebAssembly::isArgument | ( | const MachineInstr & | MI | ) |
Definition at line 28 of file WebAssemblyUtilities.cpp.
References llvm::MachineInstr::getOpcode().
Referenced by llvm::WebAssemblyFrameLowering::emitPrologue(), findStartOfTree(), HasArgumentDef(), INITIALIZE_PASS(), and MoveAndTeeForMultiUse().
bool llvm::WebAssembly::isCallDirect | ( | const MachineInstr & | MI | ) |
Definition at line 105 of file WebAssemblyUtilities.cpp.
References llvm::MachineInstr::getOpcode().
bool llvm::WebAssembly::isCallIndirect | ( | const MachineInstr & | MI | ) |
Definition at line 137 of file WebAssemblyUtilities.cpp.
References llvm::MachineInstr::getOpcode().
Referenced by llvm::WebAssemblyMCInstLower::Lower(), and mayThrow().
bool llvm::WebAssembly::isCatch | ( | const MachineInstr & | MI | ) |
Definition at line 270 of file WebAssemblyUtilities.cpp.
References llvm::MachineInstr::getOpcode().
Referenced by eraseDeadBBsAndChildren(), and INITIALIZE_PASS().
bool llvm::WebAssembly::isCatchAllTerminatePad | ( | const MachineBasicBlock & | MBB | ) |
Returns if the given BB is a single BB terminate pad which starts with a 'catch_all' insrtruction.
Definition at line 333 of file WebAssemblyUtilities.cpp.
References getCalleeOpNo(), llvm::MachineOperand::getGlobal(), llvm::Value::getName(), llvm::MachineBasicBlock::isEHPad(), llvm::MachineOperand::isGlobal(), MI, and StdTerminateFn.
Referenced by AppendEndToFunction(), and llvm::WebAssemblyExceptionInfo::recalculate().
bool llvm::WebAssembly::isCatchTerminatePad | ( | const MachineBasicBlock & | MBB | ) |
Returns if the given BB is a single BB terminate pad which starts with a 'catch' instruction.
Definition at line 313 of file WebAssemblyUtilities.cpp.
References ClangCallTerminateFn, getCalleeOpNo(), llvm::MachineOperand::getGlobal(), llvm::Value::getName(), llvm::MachineBasicBlock::isEHPad(), llvm::MachineOperand::isGlobal(), and MI.
Referenced by eraseDeadBBsAndChildren(), and llvm::WebAssemblyExceptionInfo::getAnalysisUsage().
bool llvm::WebAssembly::isChild | ( | const MachineInstr & | MI, |
const WebAssemblyFunctionInfo & | MFI | ||
) |
Test whether MI is a child of some other node in an expression tree.
Definition at line 93 of file WebAssemblyUtilities.cpp.
References llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isDef(), llvm::MachineOperand::isImplicit(), llvm::MachineOperand::isReg(), llvm::TargetRegisterInfo::isVirtualRegister(), llvm::WebAssemblyFunctionInfo::isVRegStackified(), and Reg.
bool llvm::WebAssembly::isCopy | ( | const MachineInstr & | MI | ) |
Definition at line 56 of file WebAssemblyUtilities.cpp.
References llvm::MachineInstr::getOpcode().
Referenced by findStartOfTree().
bool llvm::WebAssembly::isMarker | ( | const MachineInstr & | MI | ) |
Definition at line 226 of file WebAssemblyUtilities.cpp.
References llvm::bitc::END_BLOCK, llvm::MachineInstr::getOpcode(), and llvm::AMDGPUISD::LOOP.
bool llvm::WebAssembly::isRethrow | ( | const MachineInstr & | MI | ) |
Definition at line 258 of file WebAssemblyUtilities.cpp.
References llvm::MachineInstr::getOpcode().
Referenced by ExplicitlyBranchesTo().
bool llvm::WebAssembly::isTee | ( | const MachineInstr & | MI | ) |
Definition at line 74 of file WebAssemblyUtilities.cpp.
References llvm::MachineInstr::getOpcode().
Referenced by findStartOfTree().
bool llvm::WebAssembly::isThrow | ( | const MachineInstr & | MI | ) |
Definition at line 246 of file WebAssemblyUtilities.cpp.
References llvm::MachineInstr::getOpcode().
Referenced by eraseDeadBBsAndChildren().
bool llvm::WebAssembly::mayThrow | ( | const MachineInstr & | MI | ) |
Definition at line 284 of file WebAssemblyUtilities.cpp.
References assert(), ClangCallTerminateFn, CxaBeginCatchFn, llvm::dyn_cast(), F(), getCalleeOpNo(), llvm::MachineOperand::getGlobal(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::isCall(), isCallIndirect(), llvm::MachineOperand::isGlobal(), PersonalityWrapperFn, and StdTerminateFn.
Referenced by llvm::Instruction::mayHaveSideEffects(), and llvm::Instruction::mayReadOrWriteMemory().
wasm::ValType llvm::WebAssembly::toValType | ( | const MVT & | Ty | ) |
Definition at line 132 of file WebAssemblyMCTargetDesc.cpp.
References llvm::wasm::EXCEPT_REF, llvm::MVT::ExceptRef, llvm::MVT::f32, llvm::wasm::F32, llvm::MVT::f64, llvm::wasm::F64, llvm::MVT::i32, llvm::wasm::I32, llvm::MVT::i64, llvm::wasm::I64, llvm_unreachable, llvm::MVT::SimpleTy, llvm::wasm::V128, llvm::MVT::v16i8, llvm::MVT::v2f64, llvm::MVT::v2i64, llvm::MVT::v4f32, llvm::MVT::v4i32, and llvm::MVT::v8i16.
Referenced by llvm::ValTypesFromMVTs().
const char * llvm::WebAssembly::typeToString | ( | wasm::ValType | Ty | ) |
Definition at line 308 of file WebAssemblyInstPrinter.cpp.
References anyTypeToString().
Referenced by llvm::WebAssemblyTargetAsmStreamer::emitEndFunc(), llvm::WebAssemblyTargetAsmStreamer::emitGlobalType(), and printTypes().
Definition at line 21 of file WebAssemblyUtilities.cpp.
Referenced by eraseDeadBBsAndChildren(), isCatchTerminatePad(), and mayThrow().
Definition at line 22 of file WebAssemblyUtilities.cpp.
Referenced by mayThrow().
Definition at line 23 of file WebAssemblyUtilities.cpp.
Referenced by eraseDeadBBsAndChildren().
Definition at line 357 of file WebAssemblyMCTargetDesc.h.
The operand number of the load or store address in load/store instructions.
Definition at line 336 of file WebAssemblyMCTargetDesc.h.
Referenced by llvm::WebAssemblyRegisterInfo::eliminateFrameIndex().
The operand number of the load or store p2align in load/store instructions.
Definition at line 340 of file WebAssemblyMCTargetDesc.h.
Referenced by RewriteP2Align().
Instruction opcodes emitted via means other than CodeGen.
Definition at line 356 of file WebAssemblyMCTargetDesc.h.
Referenced by llvm::HexagonMCInstrInfo::padEndloop().
Definition at line 25 of file WebAssemblyUtilities.cpp.
Referenced by mayThrow().
Definition at line 24 of file WebAssemblyUtilities.cpp.
Referenced by eraseDeadBBsAndChildren(), isCatchAllTerminatePad(), and mayThrow().
Definition at line 337 of file WebAssemblyMCTargetDesc.h.
Referenced by llvm::WebAssemblyRegisterInfo::eliminateFrameIndex().
Definition at line 341 of file WebAssemblyMCTargetDesc.h.
Referenced by RewriteP2Align().