Lines Matching defs:SDValue
78 static void pushStackMapConstant(SmallVectorImpl<SDValue>& Ops,
106 SDValue
141 SDValue SpillSlot = Builder.DAG.CreateStackTemporary(ValueType);
244 /// Return true if-and-only-if the given SDValue can be lowered as either a
247 static bool willLowerDirectly(SDValue Incoming) {
270 SDValue Incoming = Builder.getValue(IncomingValue);
277 SDValue OldLocation = Builder.StatepointLowering.getLocation(Incoming);
310 SDValue Loc =
318 static std::pair<SDValue, SDNode *> lowerCallFromStatepointLoweringInfo(
321 SDValue ReturnValue, CallEndVal;
375 static std::tuple<SDValue, SDValue, MachineMemOperand*>
376 spillIncomingStatepointValue(SDValue Incoming, SDValue Chain,
378 SDValue Loc = Builder.StatepointLowering.getLocation(Incoming);
424 lowerIncomingStatepointValue(SDValue Incoming, bool RequireSpillSlot,
425 SmallVectorImpl<SDValue> &Ops,
489 SDValue Chain = Builder.getRoot();
520 lowerStatepointMetaArgs(SmallVectorImpl<SDValue> &Ops,
522 SmallVectorImpl<SDValue> &GCPtrs,
523 DenseMap<SDValue, int> &LowerAsVReg,
547 SmallSet<SDValue, 8> LPadPointers;
562 SmallSetVector<SDValue, 16> LoweredGCPtrs;
564 DenseMap<SDValue, unsigned> GCPtrIndexMap;
568 auto canPassGCPtrOnVReg = [&](SDValue SD) {
577 SDValue PtrSD = Builder.getValue(V);
623 SDValue SDV = Builder.getValue(V);
629 SDValue SDV = Builder.getValue(V);
644 SDValue Incoming;
662 for (SDValue SDV : LoweredGCPtrs)
674 SmallVector<SDValue, 4> Allocas;
676 SDValue Incoming = Builder.getValue(V);
696 SDValue Base = Builder.getValue(SI.Bases[i]);
700 SDValue Derived = Builder.getValue(SI.Ptrs[i]);
707 SDValue SelectionDAGBuilder::LowerAsSTATEPOINT(
731 SmallVector<SDValue, 10> LoweredMetaArgs;
733 SmallVector<SDValue, 16> LoweredGCArgs;
735 // Maps derived pointer SDValue to statepoint result of relocated pointer.
736 DenseMap<SDValue, int> LowerAsVReg;
745 SDValue ReturnVal;
753 SDValue Chain = CallNode->getOperand(0);
755 SDValue Glue;
773 SmallVector<SDValue, 8> TSOps;
791 SDValue GCTransitionStart =
801 SmallVector<SDValue, 40> Ops;
815 SDValue CallTarget = SDValue(CallNode->getOperand(1).getNode(), 0);
870 DenseMap<SDValue, Register> VirtRegs;
873 SDValue SD = getValue(Derived);
878 SDValue Relocated = SDValue(StatepointMCNode, It->second);
881 // map to the same SDValue.
883 SDValue Res = StatepointLowering.getLocation(SD);
899 SDValue Chain = DAG.getRoot();
912 SDValue SDV = getValue(V);
913 SDValue Loc = StatepointLowering.getLocation(SDV);
949 SmallVector<SDValue, 8> TEOps;
952 TEOps.push_back(SDValue(StatepointMCNode, NumResults - 2));
962 TEOps.push_back(SDValue(StatepointMCNode, NumResults - 1));
966 SDValue GCTransitionStart =
976 SDValue StatepointValues[2] = {SDValue(SinkNode, NumSinkValues - 2),
977 SDValue(SinkNode, NumSinkValues - 1)};
1025 SDValue ActualCallee;
1026 SDValue Callee = getValue(I.getActualCalledOperand());
1063 SmallSet<SDValue, 8> Seen;
1067 SDValue DerivedSD = getValue(Relocate->getDerivedPtr());
1101 SDValue ReturnValue = LowerAsSTATEPOINT(SI);
1133 SDValue Chain = DAG.getEntryNode();
1141 const CallBase *Call, SDValue Callee, const BasicBlock *EHPadBB,
1168 if (SDValue ReturnVal = LowerAsSTATEPOINT(SI)) {
1175 const CallBase *Call, SDValue Callee, const BasicBlock *EHPadBB) {
1201 SDValue CopyFromReg = getCopyFromRegs(SI, RetTy);
1234 "Nonlocal gc.relocate mapped via SDValue");
1235 SDValue SDV = StatepointLowering.getLocation(getValue(DerivedPtr));
1236 assert(SDV.getNode() && "empty SDValue");
1248 SDValue Chain = DAG.getRoot();
1249 SDValue Relocation = RFV.getCopyFromRegs(DAG, FuncInfo, getCurSDLoc(),
1257 SDValue SpillSlot = DAG.getTargetFrameIndex(Index, getFrameIndexTy());
1266 const SDValue Chain = DAG.getRoot(); // != Builder.getRoot()
1278 SDValue SpillLoad =
1288 SDValue SD = getValue(DerivedPtr);
1304 SDValue Callee = DAG.getExternalSymbol(TLI.getLibcallName(RTLIB::DEOPTIMIZE),