Lines Matching refs:DL
377 MVT WebAssemblyTargetLowering::getPointerTy(const DataLayout &DL, in getPointerTy() argument
383 return TargetLowering::getPointerTy(DL, AS); in getPointerTy()
386 MVT WebAssemblyTargetLowering::getPointerMemTy(const DataLayout &DL, in getPointerMemTy() argument
392 return TargetLowering::getPointerMemTy(DL, AS); in getPointerMemTy()
460 static MachineBasicBlock *LowerFPToInt(MachineInstr &MI, DebugLoc DL, in LowerFPToInt() argument
517 BuildMI(BB, DL, TII.get(Abs), Tmp0).addReg(InReg); in LowerFPToInt()
519 BuildMI(BB, DL, TII.get(FConst), Tmp1) in LowerFPToInt()
521 BuildMI(BB, DL, TII.get(LT), CmpReg).addReg(Tmp0).addReg(Tmp1); in LowerFPToInt()
529 BuildMI(BB, DL, TII.get(FConst), Tmp1) in LowerFPToInt()
531 BuildMI(BB, DL, TII.get(GE), SecondCmpReg).addReg(Tmp0).addReg(Tmp1); in LowerFPToInt()
532 BuildMI(BB, DL, TII.get(And), AndReg).addReg(CmpReg).addReg(SecondCmpReg); in LowerFPToInt()
536 BuildMI(BB, DL, TII.get(Eqz), EqzReg).addReg(CmpReg); in LowerFPToInt()
540 BuildMI(BB, DL, TII.get(WebAssembly::BR_IF)).addMBB(TrueMBB).addReg(EqzReg); in LowerFPToInt()
541 BuildMI(FalseMBB, DL, TII.get(LoweredOpcode), FalseReg).addReg(InReg); in LowerFPToInt()
542 BuildMI(FalseMBB, DL, TII.get(WebAssembly::BR)).addMBB(DoneMBB); in LowerFPToInt()
543 BuildMI(TrueMBB, DL, TII.get(IConst), TrueReg).addImm(Substitute); in LowerFPToInt()
544 BuildMI(*DoneMBB, DoneMBB->begin(), DL, TII.get(TargetOpcode::PHI), OutReg) in LowerFPToInt()
554 LowerCallResults(MachineInstr &CallResults, DebugLoc DL, MachineBasicBlock *BB, in LowerCallResults() argument
589 MachineInstrBuilder MIB(MF, MF.CreateMachineInstr(MCID, DL)); in LowerCallResults()
605 BuildMI(MF, DL, TII.get(WebAssembly::CONST_I32), RegZero).addImm(0); in LowerCallResults()
658 BuildMI(MF, DL, TII.get(WebAssembly::CONST_I32), RegZero).addImm(0); in LowerCallResults()
664 BuildMI(MF, DL, TII.get(WebAssembly::REF_NULL_FUNCREF), RegFuncref); in LowerCallResults()
668 BuildMI(MF, DL, TII.get(WebAssembly::TABLE_SET_FUNCREF)) in LowerCallResults()
681 DebugLoc DL = MI.getDebugLoc(); in EmitInstrWithCustomInserter() local
687 return LowerFPToInt(MI, DL, BB, TII, false, false, false, in EmitInstrWithCustomInserter()
690 return LowerFPToInt(MI, DL, BB, TII, true, false, false, in EmitInstrWithCustomInserter()
693 return LowerFPToInt(MI, DL, BB, TII, false, true, false, in EmitInstrWithCustomInserter()
696 return LowerFPToInt(MI, DL, BB, TII, true, true, false, in EmitInstrWithCustomInserter()
699 return LowerFPToInt(MI, DL, BB, TII, false, false, true, in EmitInstrWithCustomInserter()
702 return LowerFPToInt(MI, DL, BB, TII, true, false, true, in EmitInstrWithCustomInserter()
705 return LowerFPToInt(MI, DL, BB, TII, false, true, true, in EmitInstrWithCustomInserter()
708 return LowerFPToInt(MI, DL, BB, TII, true, true, true, in EmitInstrWithCustomInserter()
712 return LowerCallResults(MI, DL, BB, Subtarget, TII); in EmitInstrWithCustomInserter()
781 bool WebAssemblyTargetLowering::isLegalAddressingMode(const DataLayout &DL, in isLegalAddressingMode() argument
859 EVT WebAssemblyTargetLowering::getSetCCResultType(const DataLayout &DL, in getSetCCResultType() argument
999 static void fail(const SDLoc &DL, SelectionDAG &DAG, const char *Msg) { in fail() argument
1002 DiagnosticInfoUnsupported(MF.getFunction(), Msg, DL.getDebugLoc())); in fail()
1024 SDLoc DL = CLI.DL; in LowerCall() local
1032 fail(DL, DAG, in LowerCall()
1036 fail(DL, DAG, "WebAssembly doesn't support patch point yet"); in LowerCall()
1041 fail(DL, DAG, Msg); in LowerCall()
1111 fail(DL, DAG, "WebAssembly hasn't implemented nest arguments"); in LowerCall()
1113 fail(DL, DAG, "WebAssembly hasn't implemented inalloca arguments"); in LowerCall()
1115 fail(DL, DAG, "WebAssembly hasn't implemented cons regs arguments"); in LowerCall()
1117 fail(DL, DAG, "WebAssembly hasn't implemented cons regs last arguments"); in LowerCall()
1124 DAG.getConstant(Out.Flags.getByValSize(), DL, MVT::i32); in LowerCall()
1126 Chain = DAG.getMemcpy(Chain, DL, FINode, OutVal, SizeNode, in LowerCall()
1202 SDValue Add = DAG.getNode(ISD::ADD, DL, PtrVT, FINode, in LowerCall()
1203 DAG.getConstant(Offset, DL, PtrVT)); in LowerCall()
1205 DAG.getStore(Chain, DL, Arg, Add, in LowerCall()
1209 Chain = DAG.getNode(ISD::TokenFactor, DL, MVT::Other, Chains); in LowerCall()
1211 FINode = DAG.getIntPtrConstant(0, DL); in LowerCall()
1219 Callee = DAG.getTargetGlobalAddress(GA->getGlobal(), DL, in LowerCall()
1222 Callee = DAG.getNode(WebAssemblyISD::Wrapper, DL, in LowerCall()
1244 fail(DL, DAG, "WebAssembly hasn't implemented inalloca return values"); in LowerCall()
1246 fail(DL, DAG, "WebAssembly hasn't implemented cons regs return values"); in LowerCall()
1248 fail(DL, DAG, in LowerCall()
1270 SDValue TableSlot = DAG.getConstant(0, DL, MVT::i32); in LowerCall()
1273 WebAssemblyISD::TABLE_SET, DL, DAG.getVTList(MVT::Other), TableSetOps, in LowerCall()
1287 return DAG.getNode(WebAssemblyISD::RET_CALL, DL, NodeTys, Ops); in LowerCall()
1292 SDValue Res = DAG.getNode(WebAssemblyISD::CALL, DL, InTyList, Ops); in LowerCall()
1312 const SmallVectorImpl<SDValue> &OutVals, const SDLoc &DL, in LowerReturn() argument
1317 fail(DL, DAG, "WebAssembly doesn't support non-C calling conventions"); in LowerReturn()
1321 Chain = DAG.getNode(WebAssemblyISD::RETURN, DL, MVT::Other, RetOps); in LowerReturn()
1329 fail(DL, DAG, "WebAssembly hasn't implemented inalloca results"); in LowerReturn()
1331 fail(DL, DAG, "WebAssembly hasn't implemented cons regs results"); in LowerReturn()
1333 fail(DL, DAG, "WebAssembly hasn't implemented cons regs last results"); in LowerReturn()
1341 const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &DL, in LowerFormalArguments() argument
1344 fail(DL, DAG, "WebAssembly doesn't support non-C calling conventions"); in LowerFormalArguments()
1359 fail(DL, DAG, "WebAssembly hasn't implemented inalloca arguments"); in LowerFormalArguments()
1361 fail(DL, DAG, "WebAssembly hasn't implemented nest arguments"); in LowerFormalArguments()
1363 fail(DL, DAG, "WebAssembly hasn't implemented cons regs arguments"); in LowerFormalArguments()
1365 fail(DL, DAG, "WebAssembly hasn't implemented cons regs last arguments"); in LowerFormalArguments()
1368 InVals.push_back(In.Used ? DAG.getNode(WebAssemblyISD::ARGUMENT, DL, In.VT, in LowerFormalArguments()
1370 DL, MVT::i32)) in LowerFormalArguments()
1398 Chain, DL, VarargVreg, in LowerFormalArguments()
1399 DAG.getNode(WebAssemblyISD::ARGUMENT, DL, PtrVT, in LowerFormalArguments()
1400 DAG.getTargetConstant(Ins.size(), DL, MVT::i32))); in LowerFormalArguments()
1446 SDLoc DL(Op); in LowerOperation() local
1467 fail(DL, DAG, "WebAssembly hasn't implemented computed gotos"); in LowerOperation()
1532 SDLoc DL(Op); in LowerStore() local
1545 return DAG.getMemIntrinsicNode(WebAssemblyISD::GLOBAL_SET, DL, Tys, Ops, in LowerStore()
1557 return DAG.getNode(WebAssemblyISD::LOCAL_SET, DL, Tys, Ops); in LowerStore()
1570 SDLoc DL(Op); in LowerLoad() local
1582 return DAG.getMemIntrinsicNode(WebAssemblyISD::GLOBAL_GET, DL, Tys, Ops, in LowerLoad()
1593 SDValue LocalGet = DAG.getNode(WebAssemblyISD::LOCAL_GET, DL, LocalVT, in LowerLoad()
1595 SDValue Result = DAG.getMergeValues({LocalGet, LN->getChain()}, DL); in LowerLoad()
1618 SDLoc DL(Op); in LowerCopyToReg() local
1623 DL, VT, Src), in LowerCopyToReg()
1626 ? DAG.getCopyToReg(Chain, DL, Reg, Copy) in LowerCopyToReg()
1627 : DAG.getCopyToReg(Chain, DL, Reg, Copy, in LowerCopyToReg()
1642 SDLoc DL(Op); in LowerRETURNADDR() local
1645 fail(DL, DAG, in LowerRETURNADDR()
1657 {DAG.getConstant(Depth, DL, MVT::i32)}, CallOptions, DL) in LowerRETURNADDR()
1679 SDLoc DL(Op); in LowerGlobalTLSAddress() local
1712 DAG.getMachineNode(GlobalGet, DL, PtrVT, in LowerGlobalTLSAddress()
1717 GV, DL, PtrVT, GA->getOffset(), WebAssemblyII::MO_TLS_BASE_REL); in LowerGlobalTLSAddress()
1719 DAG.getNode(WebAssemblyISD::WrapperREL, DL, PtrVT, TLSOffset); in LowerGlobalTLSAddress()
1721 return DAG.getNode(ISD::ADD, DL, PtrVT, BaseAddr, SymOffset); in LowerGlobalTLSAddress()
1727 return DAG.getNode(WebAssemblyISD::Wrapper, DL, VT, in LowerGlobalTLSAddress()
1728 DAG.getTargetGlobalAddress(GA->getGlobal(), DL, VT, in LowerGlobalTLSAddress()
1735 SDLoc DL(Op); in LowerGlobalAddress() local
1741 fail(DL, DAG, "Invalid address space for WebAssembly target"); in LowerGlobalAddress()
1761 DAG.getNode(WebAssemblyISD::Wrapper, DL, PtrVT, in LowerGlobalAddress()
1765 WebAssemblyISD::WrapperREL, DL, VT, in LowerGlobalAddress()
1766 DAG.getTargetGlobalAddress(GA->getGlobal(), DL, VT, GA->getOffset(), in LowerGlobalAddress()
1769 return DAG.getNode(ISD::ADD, DL, VT, BaseAddr, SymAddr); in LowerGlobalAddress()
1774 return DAG.getNode(WebAssemblyISD::Wrapper, DL, VT, in LowerGlobalAddress()
1775 DAG.getTargetGlobalAddress(GA->getGlobal(), DL, VT, in LowerGlobalAddress()
1782 SDLoc DL(Op); in LowerExternalSymbol() local
1787 return DAG.getNode(WebAssemblyISD::Wrapper, DL, VT, in LowerExternalSymbol()
1803 SDLoc DL(Op); in LowerBR_JT() local
1824 return DAG.getNode(WebAssemblyISD::BR_TABLE, DL, MVT::Other, Ops); in LowerBR_JT()
1829 SDLoc DL(Op); in LowerVASTART() local
1835 SDValue ArgN = DAG.getCopyFromReg(DAG.getEntryNode(), DL, in LowerVASTART()
1837 return DAG.getStore(Op.getOperand(0), DL, ArgN, Op.getOperand(1), in LowerVASTART()
1856 SDLoc DL(Op); in LowerIntrinsic() local
1871 DAG.getNode(WebAssemblyISD::Wrapper, DL, PtrVT, in LowerIntrinsic()
1874 DAG.getNode(WebAssemblyISD::WrapperREL, DL, PtrVT, Node); in LowerIntrinsic()
1875 return DAG.getNode(ISD::ADD, DL, PtrVT, BaseAddr, SymAddr); in LowerIntrinsic()
1878 return DAG.getNode(WebAssemblyISD::Wrapper, DL, PtrVT, Node); in LowerIntrinsic()
1891 Ops[OpIdx++] = DAG.getConstant(0, DL, MVT::i32, isTarget); in LowerIntrinsic()
1896 return DAG.getNode(WebAssemblyISD::SHUFFLE, DL, Op.getValueType(), Ops); in LowerIntrinsic()
1904 SDLoc DL(Op); in LowerSIGN_EXTEND_INREG() local
1936 DAG.getConstant(IndexVal * Scale, DL, Index->getValueType(0)); in LowerSIGN_EXTEND_INREG()
1938 ISD::EXTRACT_VECTOR_ELT, DL, Extract.getValueType(), in LowerSIGN_EXTEND_INREG()
1940 return DAG.getNode(ISD::SIGN_EXTEND_INREG, DL, Op.getValueType(), NewExtract, in LowerSIGN_EXTEND_INREG()
1947 SDLoc DL(Op); in LowerEXTEND_VECTOR_INREG() local
1975 Ret = DAG.getNode(Ext, DL, in LowerEXTEND_VECTOR_INREG()
1987 SDLoc DL(Op); in LowerConvertLow() local
2045 ExpectedSrcVT, DL, LHSSrcVec, RHSSrcVec, in LowerConvertLow()
2048 return DAG.getNode(LHSOpcode, DL, MVT::v2f64, Src); in LowerConvertLow()
2056 SDLoc DL(Op); in LowerBUILD_VECTOR() local
2197 Result = DAG.getNode(WebAssemblyISD::SWIZZLE, DL, VecT, SwizzleSrc, in LowerBUILD_VECTOR()
2240 Result = DAG.getVectorShuffle(VecT, DL, Src1, Src2, MaskRef); in LowerBUILD_VECTOR()
2268 ConstLanes.push_back(DAG.getConstantFP(0, DL, LaneT)); in LowerBUILD_VECTOR()
2270 ConstLanes.push_back(DAG.getConstant(0, DL, LaneT)); in LowerBUILD_VECTOR()
2273 Result = DAG.getBuildVector(VecT, DL, ConstLanes); in LowerBUILD_VECTOR()
2279 Result = DAG.getSplatBuildVector(VecT, DL, SplatValue); in LowerBUILD_VECTOR()
2292 Result = DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, VecT, Result, Lane, in LowerBUILD_VECTOR()
2293 DAG.getConstant(I, DL, MVT::i32)); in LowerBUILD_VECTOR()
2302 SDLoc DL(Op); in LowerVECTOR_SHUFFLE() local
2321 Ops[OpIdx++] = DAG.getConstant(ByteIndex, DL, MVT::i32); in LowerVECTOR_SHUFFLE()
2325 return DAG.getNode(WebAssemblyISD::SHUFFLE, DL, Op.getValueType(), Ops); in LowerVECTOR_SHUFFLE()
2330 SDLoc DL(Op); in LowerSETCC() local
2339 return DAG.getNode(ISD::SELECT_CC, DL, MVT::i64, LHS[I], RHS[I], in LowerSETCC()
2340 DAG.getConstant(uint64_t(-1), DL, MVT::i64), in LowerSETCC()
2341 DAG.getConstant(uint64_t(0), DL, MVT::i64), CC); in LowerSETCC()
2343 return DAG.getBuildVector(Op->getValueType(0), DL, in LowerSETCC()
2370 SDLoc DL(Op); in unrollVectorShift() local
2372 SDValue Mask = DAG.getConstant(LaneT.getSizeInBits() - 1, DL, MVT::i32); in unrollVectorShift()
2381 DAG.getNode(ISD::AND, DL, MVT::i32, ShiftElements[i], Mask); in unrollVectorShift()
2384 ShiftedValue = DAG.getNode(ISD::SIGN_EXTEND_INREG, DL, MVT::i32, in unrollVectorShift()
2387 DAG.getNode(ShiftOpcode, DL, MVT::i32, ShiftedValue, MaskedShiftValue)); in unrollVectorShift()
2389 return DAG.getBuildVector(Op.getValueType(), DL, UnrolledOps); in unrollVectorShift()
2394 SDLoc DL(Op); in LowerShift() local
2437 ShiftVal = DAG.getAnyExtOrTrunc(ShiftVal, DL, MVT::i32); in LowerShift()
2454 return DAG.getNode(Opcode, DL, Op.getValueType(), Op.getOperand(0), ShiftVal); in LowerShift()
2459 SDLoc DL(Op); in LowerFP_TO_INT_SAT() local
2697 const SDLoc &DL, unsigned VectorWidth) { in extractSubVector() argument
2714 return DAG.getBuildVector(ResultVT, DL, in extractSubVector()
2717 SDValue VecIdx = DAG.getIntPtrConstant(IdxVal, DL); in extractSubVector()
2718 return DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, ResultVT, Vec, VecIdx); in extractSubVector()
2725 static SDValue truncateVectorWithNARROW(EVT DstVT, SDValue In, const SDLoc &DL, in truncateVectorWithNARROW() argument
2755 SDValue Lo = extractSubVector(In, 0, DAG, DL, SubSizeInBits); in truncateVectorWithNARROW()
2756 SDValue Hi = extractSubVector(In, NumElems / 2, DAG, DL, SubSizeInBits); in truncateVectorWithNARROW()
2762 SDValue Res = DAG.getNode(WebAssemblyISD::NARROW_U, DL, OutVT, Lo, Hi); in truncateVectorWithNARROW()
2768 Lo = truncateVectorWithNARROW(PackedVT, Lo, DL, DAG); in truncateVectorWithNARROW()
2769 Hi = truncateVectorWithNARROW(PackedVT, Hi, DL, DAG); in truncateVectorWithNARROW()
2772 SDValue Res = DAG.getNode(ISD::CONCAT_VECTORS, DL, PackedVT, Lo, Hi); in truncateVectorWithNARROW()
2773 return truncateVectorWithNARROW(DstVT, Res, DL, DAG); in truncateVectorWithNARROW()
2796 SDLoc DL(N); in performTruncateCombine() local
2799 In = DAG.getNode(ISD::AND, DL, InVT, In, DAG.getConstant(Mask, DL, InVT)); in performTruncateCombine()
2800 return truncateVectorWithNARROW(OutVT, In, DL, DAG); in performTruncateCombine()
2806 SDLoc DL(N); in performBitcastCombine() local
2820 DAG.getNode(ISD::INTRINSIC_WO_CHAIN, DL, MVT::i32, in performBitcastCombine()
2821 {DAG.getConstant(Intrinsic::wasm_bitmask, DL, MVT::i32), in performBitcastCombine()
2822 DAG.getSExtOrTrunc(N->getOperand(0), DL, in performBitcastCombine()
2824 DL, VT); in performBitcastCombine()
2837 SDLoc DL(N); in performSETCCCombine() local
2863 ISD::INTRINSIC_WO_CHAIN, DL, MVT::i32, in performSETCCCombine()
2864 {DAG.getConstant(Intrin, DL, MVT::i32), in performSETCCCombine()
2865 DAG.getSExtOrTrunc(LHS->getOperand(0), DL, in performSETCCCombine()
2867 DL, MVT::i1); in performSETCCCombine()
2870 Ret = DAG.getNOT(DL, Ret, MVT::i1); in performSETCCCombine()
2872 return DAG.getZExtOrTrunc(Ret, DL, VT); in performSETCCCombine()