Home
last modified time | relevance | path

Searched refs:WebAssembly (Results 1 – 25 of 157) sorted by relevance

1234567

/llvm-project-15.0.7/llvm/lib/Target/WebAssembly/MCTargetDesc/
H A DWebAssemblyMCTargetDesc.h38 namespace WebAssembly {
131 namespace WebAssembly {
331 case WebAssembly::TEE_I32: in isTee()
353 case WebAssembly::CALL: in isCallDirect()
354 case WebAssembly::CALL_S: in isCallDirect()
389 case WebAssembly::BLOCK: in isMarker()
393 case WebAssembly::LOOP: in isMarker()
394 case WebAssembly::LOOP_S: in isMarker()
397 case WebAssembly::TRY: in isMarker()
398 case WebAssembly::TRY_S: in isMarker()
[all …]
H A DWebAssemblyMCCodeEmitter.cpp99 case WebAssembly::OPERAND_I32IMM: in encodeInstruction()
105 case WebAssembly::OPERAND_I64IMM: in encodeInstruction()
121 case WebAssembly::OPERAND_GLOBAL: in encodeInstruction()
141 case WebAssembly::OPERAND_I32IMM: in encodeInstruction()
144 case WebAssembly::OPERAND_I64IMM: in encodeInstruction()
149 case WebAssembly::OPERAND_TABLE: in encodeInstruction()
150 case WebAssembly::OPERAND_OFFSET32: in encodeInstruction()
151 case WebAssembly::OPERAND_SIGNATURE: in encodeInstruction()
153 case WebAssembly::OPERAND_GLOBAL: in encodeInstruction()
154 case WebAssembly::OPERAND_TAG: in encodeInstruction()
[all …]
H A DWebAssemblyInstPrinter.cpp121 case WebAssembly::LOOP: in printInst()
122 case WebAssembly::LOOP_S: in printInst()
127 case WebAssembly::BLOCK: in printInst()
128 case WebAssembly::BLOCK_S: in printInst()
132 case WebAssembly::TRY: in printInst()
133 case WebAssembly::TRY_S: in printInst()
158 case WebAssembly::END_TRY: in printInst()
169 case WebAssembly::CATCH: in printInst()
170 case WebAssembly::CATCH_S: in printInst()
186 if (Opc == WebAssembly::CATCH || Opc == WebAssembly::CATCH_S) { in printInst()
[all …]
/llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Utils/
H A DWebAssemblyUtilities.cpp66 case WebAssembly::THROW: in mayThrow()
67 case WebAssembly::THROW_S: in mayThrow()
68 case WebAssembly::RETHROW: in mayThrow()
69 case WebAssembly::RETHROW_S: in mayThrow()
110 case WebAssembly::CALL: in getCalleeOp()
111 case WebAssembly::CALL_S: in getCalleeOp()
112 case WebAssembly::RET_CALL: in getCalleeOp()
113 case WebAssembly::RET_CALL_S: in getCalleeOp()
187 return WebAssembly::COPY_I32; in getCopyOpcodeForRegClass()
189 return WebAssembly::COPY_I64; in getCopyOpcodeForRegClass()
[all …]
H A DWebAssemblyTypeUtilities.cpp45 WebAssembly::BlockType WebAssembly::parseBlockType(StringRef Type) { in parseBlockType()
59 MVT WebAssembly::parseMVT(StringRef Type) { in parseMVT()
111 S += WebAssembly::typeToString(Type); in typeListToString()
153 case WebAssembly::I32RegClassID: in regClassToValType()
155 case WebAssembly::I64RegClassID: in regClassToValType()
157 case WebAssembly::F32RegClassID: in regClassToValType()
159 case WebAssembly::F64RegClassID: in regClassToValType()
161 case WebAssembly::V128RegClassID: in regClassToValType()
163 case WebAssembly::FUNCREFRegClassID: in regClassToValType()
165 case WebAssembly::EXTERNREFRegClassID: in regClassToValType()
[all …]
/llvm-project-15.0.7/llvm/lib/Target/WebAssembly/
H A DWebAssemblyExplicitLocals.cpp89 if (RC == &WebAssembly::I32RegClass) in getDropOpcode()
90 return WebAssembly::DROP_I32; in getDropOpcode()
91 if (RC == &WebAssembly::I64RegClass) in getDropOpcode()
92 return WebAssembly::DROP_I64; in getDropOpcode()
93 if (RC == &WebAssembly::F32RegClass) in getDropOpcode()
94 return WebAssembly::DROP_F32; in getDropOpcode()
95 if (RC == &WebAssembly::F64RegClass) in getDropOpcode()
96 return WebAssembly::DROP_F64; in getDropOpcode()
98 return WebAssembly::DROP_V128; in getDropOpcode()
100 return WebAssembly::DROP_FUNCREF; in getDropOpcode()
[all …]
H A DWebAssemblyFastISel.cpp1034 Opc = I32 ? WebAssembly::EQ_I32 : WebAssembly::EQ_I64; in selectICmp()
1037 Opc = I32 ? WebAssembly::NE_I32 : WebAssembly::NE_I64; in selectICmp()
1103 Opc = F32 ? WebAssembly::EQ_F32 : WebAssembly::EQ_F64; in selectFCmp()
1106 Opc = F32 ? WebAssembly::NE_F32 : WebAssembly::NE_F64; in selectFCmp()
1109 Opc = F32 ? WebAssembly::GT_F32 : WebAssembly::GT_F64; in selectFCmp()
1112 Opc = F32 ? WebAssembly::GE_F32 : WebAssembly::GE_F64; in selectFCmp()
1115 Opc = F32 ? WebAssembly::LT_F32 : WebAssembly::LT_F64; in selectFCmp()
1118 Opc = F32 ? WebAssembly::LE_F32 : WebAssembly::LE_F64; in selectFCmp()
1121 Opc = F32 ? WebAssembly::LE_F32 : WebAssembly::LE_F64; in selectFCmp()
1125 Opc = F32 ? WebAssembly::LT_F32 : WebAssembly::LT_F64; in selectFCmp()
[all …]
H A DWebAssemblyRegStackify.cpp182 case WebAssembly::DIV_S_I32: in query()
183 case WebAssembly::DIV_S_I64: in query()
184 case WebAssembly::REM_S_I32: in query()
185 case WebAssembly::REM_S_I64: in query()
186 case WebAssembly::DIV_U_I32: in query()
187 case WebAssembly::DIV_U_I64: in query()
188 case WebAssembly::REM_U_I32: in query()
189 case WebAssembly::REM_U_I64: in query()
217 case WebAssembly::DIV_S_I32: in query()
218 case WebAssembly::DIV_S_I64: in query()
[all …]
H A DWebAssemblyInstrInfo.cpp39 WebAssembly::CATCHRET), in WebAssemblyInstrInfo()
45 case WebAssembly::CONST_I32: in isReallyTriviallyReMaterializable()
46 case WebAssembly::CONST_I64: in isReallyTriviallyReMaterializable()
47 case WebAssembly::CONST_F32: in isReallyTriviallyReMaterializable()
48 case WebAssembly::CONST_F64: in isReallyTriviallyReMaterializable()
107 case WebAssembly::BR_IF: in analyzeBranch()
115 case WebAssembly::BR_UNLESS: in analyzeBranch()
123 case WebAssembly::BR: in analyzeBranch()
181 BuildMI(&MBB, DL, get(WebAssembly::BR)).addMBB(FBB); in insertBranch()
195 {WebAssembly::TI_LOCAL, "wasm-local"}, in getSerializableTargetIndices()
[all …]
H A DWebAssemblyCFGStackify.cpp39 using WebAssembly::SortRegionInfo;
354 WebAssembly::BlockType ReturnType = WebAssembly::BlockType::Void; in placeBlockMarker()
1449 case WebAssembly::END_LOOP: in recalculateScopeTops()
1450 case WebAssembly::END_TRY: in recalculateScopeTops()
1451 case WebAssembly::DELEGATE: in recalculateScopeTops()
1454 case WebAssembly::CATCH: in recalculateScopeTops()
1657 case WebAssembly::BLOCK: in rewriteDepthImmediates()
1658 case WebAssembly::TRY: in rewriteDepthImmediates()
1665 case WebAssembly::LOOP: in rewriteDepthImmediates()
1687 case WebAssembly::CATCH: in rewriteDepthImmediates()
[all …]
H A DWebAssemblyRegisterInfo.cpp47 for (auto Reg : {WebAssembly::SP32, WebAssembly::SP64, WebAssembly::FP32, in getReservedRegs()
48 WebAssembly::FP64}) in getReservedRegs()
73 unsigned AddrOperandNum = WebAssembly::getNamedOperandIdx( in eliminateFrameIndex()
74 MI.getOpcode(), WebAssembly::OpName::addr); in eliminateFrameIndex()
76 unsigned OffsetOperandNum = WebAssembly::getNamedOperandIdx( in eliminateFrameIndex()
77 MI.getOpcode(), WebAssembly::OpName::off); in eliminateFrameIndex()
146 /* !hasFP */ {WebAssembly::SP32, WebAssembly::SP64}, in getFrameRegister()
147 /* hasFP */ {WebAssembly::FP32, WebAssembly::FP64}}; in getFrameRegister()
157 return &WebAssembly::I64RegClass; in getPointerRegClass()
158 return &WebAssembly::I32RegClass; in getPointerRegClass()
H A DWebAssemblyFrameLowering.cpp176 ? WebAssembly::SP64 in getSPReg()
177 : WebAssembly::SP32; in getSPReg()
182 ? WebAssembly::FP64 in getFPReg()
183 : WebAssembly::FP32; in getFPReg()
189 ? WebAssembly::CONST_I64 in getOpcConst()
195 ? WebAssembly::ADD_I64 in getOpcAdd()
196 : WebAssembly::ADD_I32; in getOpcAdd()
201 ? WebAssembly::SUB_I64 in getOpcSub()
202 : WebAssembly::SUB_I32; in getOpcSub()
207 ? WebAssembly::AND_I64 in getOpcAnd()
[all …]
H A DWebAssemblyAsmPrinter.cpp341 &F, WebAssembly::WasmEnableEmEH || WebAssembly::WasmEnableEmSjLj, in emitDecls()
604 case WebAssembly::ARGUMENT_i32: in emitInstruction()
605 case WebAssembly::ARGUMENT_i32_S: in emitInstruction()
606 case WebAssembly::ARGUMENT_i64: in emitInstruction()
607 case WebAssembly::ARGUMENT_i64_S: in emitInstruction()
608 case WebAssembly::ARGUMENT_f32: in emitInstruction()
609 case WebAssembly::ARGUMENT_f32_S: in emitInstruction()
610 case WebAssembly::ARGUMENT_f64: in emitInstruction()
611 case WebAssembly::ARGUMENT_f64_S: in emitInstruction()
612 case WebAssembly::ARGUMENT_v16i8: in emitInstruction()
[all …]
H A DWebAssemblyISelDAGToDAG.cpp91 assert(Tag == WebAssembly::CPP_EXCEPTION || WebAssembly::C_LONGJMP); in getTagSymNode()
95 const char *SymName = Tag == WebAssembly::CPP_EXCEPTION in getTagSymNode()
110 auto GlobalGetIns = PtrVT == MVT::i64 ? WebAssembly::GLOBAL_GET_I64 in Select()
111 : WebAssembly::GLOBAL_GET_I32; in Select()
128 Fence = CurDAG->getMachineNode(WebAssembly::COMPILER_FENCE, in Select()
138 WebAssembly::ATOMIC_FENCE, in Select()
194 CurDAG->getMachineNode(WebAssembly::CATCH, DL, in Select()
217 CurDAG->getMachineNode(WebAssembly::THROW, DL, in Select()
248 CurDAG->getMachineNode(WebAssembly::CALL_PARAMS, DL, MVT::Glue, Ops); in Select()
251 ? WebAssembly::CALL_RESULTS in Select()
[all …]
H A DWebAssemblyReplacePhysRegs.cpp76 for (unsigned PReg = WebAssembly::NoRegister + 1; in runOnMachineFunction()
77 PReg < WebAssembly::NUM_TARGET_REGS; ++PReg) { in runOnMachineFunction()
79 if (PReg == WebAssembly::VALUE_STACK || PReg == WebAssembly::ARGUMENTS) in runOnMachineFunction()
84 unsigned VReg = WebAssembly::NoRegister; in runOnMachineFunction()
88 if (VReg == WebAssembly::NoRegister) { in runOnMachineFunction()
H A DWebAssemblyMCInstLower.cpp53 if (WebAssembly::isWasmVarAddressSpace(Global->getAddressSpace()) && in GetGlobalAddressSymbol()
62 WebAssembly::wasmSymbolSetType(WasmSym, GlobalVT, VTs); in GetGlobalAddressSymbol()
80 F, WebAssembly::WasmEnableEmEH || WebAssembly::WasmEnableEmSjLj, in GetGlobalAddressSymbol()
198 if (Info.OperandType == WebAssembly::OPERAND_TYPEINDEX) { in lower()
214 if (WebAssembly::isCallIndirect(MI->getOpcode())) in lower()
219 if (MI->getOpcode() == WebAssembly::RET_CALL_INDIRECT) in lower()
224 } else if (Info.OperandType == WebAssembly::OPERAND_SIGNATURE) { in lower()
225 auto BT = static_cast<WebAssembly::BlockType>(MO.getImm()); in lower()
226 assert(BT != WebAssembly::BlockType::Invalid); in lower()
227 if (BT == WebAssembly::BlockType::Multivalue) { in lower()
[all …]
H A DREADME.txt1 //===-- README.txt - Notes for WebAssembly code gen -----------------------===//
3 The object format emitted by the WebAssembly backed is documented in:
5 * https://github.com/WebAssembly/tool-conventions/blob/main/Linking.md
9 * https://github.com/WebAssembly/tool-conventions/blob/main/BasicCABI.md
11 For more information on WebAssembly itself, see the home page:
22 Rust provides WebAssembly support integrated into Cargo. There are two
33 encoding of WebAssembly itself:
34 * https://github.com/WebAssembly/design/blob/main/Semantics.md
50 WebAssembly.
87 being run after the WebAssembly PEI pass.
[all …]
H A DWebAssemblyLateEHPrepare.cpp158 if (TI->getOpcode() == WebAssembly::CATCHRET) in recordCatchRetBBs()
180 if (WebAssembly::isCatch(MI.getOpcode())) in hoistCatches()
215 !WebAssembly::isCatch(InsertPos->getOpcode())) { in addCatchAlls()
219 TII.get(WebAssembly::CATCH_ALL)); in addCatchAlls()
238 case WebAssembly::CATCHRET: { in replaceFuncletReturns()
242 BuildMI(MBB, TI, TI->getDebugLoc(), TII.get(WebAssembly::BR)) in replaceFuncletReturns()
248 case WebAssembly::CLEANUPRET: { in replaceFuncletReturns()
251 BuildMI(MBB, TI, TI->getDebugLoc(), TII.get(WebAssembly::RETHROW)) in replaceFuncletReturns()
268 if (MI.getOpcode() != WebAssembly::THROW && in removeUnnecessaryUnreachables()
269 MI.getOpcode() != WebAssembly::RETHROW) in removeUnnecessaryUnreachables()
[all …]
H A DWebAssemblyISelLowering.cpp58 Subtarget->hasAddr64() ? WebAssembly::SP64 : WebAssembly::SP32); in WebAssemblyTargetLowering()
440 unsigned Abs = Float64 ? WebAssembly::ABS_F64 : WebAssembly::ABS_F32; in LowerFPToInt()
441 unsigned FConst = Float64 ? WebAssembly::CONST_F64 : WebAssembly::CONST_F32; in LowerFPToInt()
442 unsigned LT = Float64 ? WebAssembly::LT_F64 : WebAssembly::LT_F32; in LowerFPToInt()
443 unsigned GE = Float64 ? WebAssembly::GE_F64 : WebAssembly::GE_F32; in LowerFPToInt()
444 unsigned IConst = Int64 ? WebAssembly::CONST_I64 : WebAssembly::CONST_I32; in LowerFPToInt()
445 unsigned Eqz = WebAssembly::EQZ_I32; in LowerFPToInt()
551 CallOp = WebAssembly::RET_CALL; in LowerCallResults()
553 CallOp = WebAssembly::CALL; in LowerCallResults()
693 case WebAssembly::CALL_RESULTS: in EmitInstrWithCustomInserter()
[all …]
H A DWebAssemblySetP2AlignOperands.cpp63 (UINT64_C(1) << WebAssembly::GetDefaultP2Align(MI.getOpcode())) && in rewriteP2Align()
66 WebAssembly::OPERAND_P2ALIGN && in rewriteP2Align()
72 uint64_t(WebAssembly::GetDefaultP2Align(MI.getOpcode()))); in rewriteP2Align()
87 int16_t P2AlignOpNum = WebAssembly::getNamedOperandIdx( in runOnMachineFunction()
88 MI.getOpcode(), WebAssembly::OpName::p2align); in runOnMachineFunction()
H A DWebAssemblyFixBrTableDefaults.cpp57 assert(MI.getDesc().getOpcode() == WebAssembly::BR_TABLE_I64 && in fixBrTableIndex()
62 if (ExtMI->getOpcode() == WebAssembly::I64_EXTEND_U_I32) { in fixBrTableIndex()
74 MF.getRegInfo().createVirtualRegister(&WebAssembly::I32RegClass); in fixBrTableIndex()
76 WST.getInstrInfo()->get(WebAssembly::I32_WRAP_I64), Reg32) in fixBrTableIndex()
83 MI.setDesc(WST.getInstrInfo()->get(WebAssembly::BR_TABLE_I32)); in fixBrTableIndex()
129 if (RangeCheck->getOpcode() != WebAssembly::GT_U_I32) in fixBrTableDefault()
169 if (WebAssembly::isBrTable(MI)) { in runOnMachineFunction()
/llvm-project-15.0.7/llvm/lib/Target/WebAssembly/Disassembler/
H A DWebAssemblyDisassembler.cpp198 case WebAssembly::OPERAND_LOCAL: in getInstruction()
199 case WebAssembly::OPERAND_GLOBAL: in getInstruction()
201 case WebAssembly::OPERAND_TABLE: in getInstruction()
202 case WebAssembly::OPERAND_OFFSET32: in getInstruction()
203 case WebAssembly::OPERAND_OFFSET64: in getInstruction()
204 case WebAssembly::OPERAND_P2ALIGN: in getInstruction()
206 case WebAssembly::OPERAND_TAG: in getInstruction()
213 case WebAssembly::OPERAND_I32IMM: in getInstruction()
214 case WebAssembly::OPERAND_I64IMM: { in getInstruction()
245 case WebAssembly::OPERAND_F32IMM: { in getInstruction()
[all …]
/llvm-project-15.0.7/clang/lib/Driver/ToolChains/
H A DWebAssembly.cpp31 std::string WebAssembly::getMultiarchTriple(const Driver &D, in getMultiarchTriple()
169 WebAssembly::WebAssembly(const Driver &D, const llvm::Triple &Triple, in WebAssembly() function in WebAssembly
198 bool WebAssembly::IsMathErrnoDefault() const { return false; } in IsMathErrnoDefault()
204 bool WebAssembly::isPICDefault() const { return false; } in isPICDefault()
214 bool WebAssembly::hasBlocksRuntime() const { return false; } in hasBlocksRuntime()
217 bool WebAssembly::SupportsProfiling() const { return false; } in SupportsProfiling()
373 WebAssembly::GetCXXStdlibType(const ArgList &Args) const { in GetCXXStdlibType()
457 SanitizerMask WebAssembly::getSupportedSanitizers() const { in getSupportedSanitizers()
465 Tool *WebAssembly::buildLinker() const { in buildLinker()
469 void WebAssembly::addLibCxxIncludePaths( in addLibCxxIncludePaths()
[all …]
/llvm-project-15.0.7/llvm/utils/gn/secondary/llvm/lib/Target/WebAssembly/MCTargetDesc/
H A DBUILD.gn6 td_file = "../WebAssembly.td"
12 td_file = "../WebAssembly.td"
18 td_file = "../WebAssembly.td"
24 td_file = "../WebAssembly.td"
53 "//llvm/lib/Target/WebAssembly/TargetInfo",
54 "//llvm/lib/Target/WebAssembly/Utils",
/llvm-project-15.0.7/llvm/utils/gn/secondary/llvm/unittests/Target/WebAssembly/
H A DBUILD.gn10 "//llvm/lib/Target/WebAssembly:LLVMWebAssemblyCodeGen",
11 "//llvm/lib/Target/WebAssembly/MCTargetDesc",
12 "//llvm/lib/Target/WebAssembly/TargetInfo",
14 include_dirs = [ "//llvm/lib/Target/WebAssembly" ]

1234567