Lines Matching refs:ScheduleData
841 struct ScheduleData;
2511 TreeEntry *newTreeEntry(ArrayRef<Value *> VL, Optional<ScheduleData *> Bundle, in newTreeEntry()
2524 Optional<ScheduleData *> Bundle, in newTreeEntry()
2560 ScheduleData *BundleMember = *Bundle; in newTreeEntry()
2693 struct ScheduleData { struct in llvm::slpvectorizer::BoUpSLP
2698 ScheduleData() = default;
2722 for (const ScheduleData *BundleMember = this; BundleMember; in verify()
2786 for (const ScheduleData *BundleMember = this; BundleMember; in unscheduledDepsInBundle()
2800 ScheduleData *SD = NextInBundle; in dump()
2821 ScheduleData *FirstInBundle = nullptr; argument
2825 ScheduleData *NextInBundle = nullptr; argument
2829 ScheduleData *NextLoadStore = nullptr; argument
2833 SmallVector<ScheduleData *, 4> MemoryDependencies; argument
2839 SmallVector<ScheduleData *, 4> ControlDependencies; argument
2867 const BoUpSLP::ScheduleData &SD) { in operator <<()
2916 ScheduleData *getScheduleData(Instruction *I) { in getScheduleData()
2920 ScheduleData *SD = ScheduleDataMap.lookup(I); in getScheduleData()
2926 ScheduleData *getScheduleData(Value *V) { in getScheduleData()
2932 ScheduleData *getScheduleData(Value *V, Value *Key) { in getScheduleData()
2937 ScheduleData *SD = I->second.lookup(Key); in getScheduleData()
2944 bool isInSchedulingRegion(ScheduleData *SD) const { in isInSchedulingRegion()
2951 void schedule(ScheduleData *SD, ReadyListType &ReadyList) { in schedule()
2955 for (ScheduleData *BundleMember = SD; BundleMember; in schedule()
2964 doForAllOpcodes(I, [&ReadyList](ScheduleData *OpDef) { in schedule()
2970 ScheduleData *DepBundle = OpDef->FirstInBundle; in schedule()
3014 for (ScheduleData *MemoryDepSD : BundleMember->MemoryDependencies) { in schedule()
3019 ScheduleData *DepBundle = MemoryDepSD->FirstInBundle; in schedule()
3028 for (ScheduleData *DepSD : BundleMember->ControlDependencies) { in schedule()
3032 ScheduleData *DepBundle = DepSD->FirstInBundle; in schedule()
3062 doForAllOpcodes(I, [](ScheduleData *SD) { SD->verify(); }); in verify()
3073 function_ref<void(ScheduleData *SD)> Action) { in doForAllOpcodes()
3074 if (ScheduleData *SD = getScheduleData(V)) in doForAllOpcodes()
3087 doForAllOpcodes(I, [&](ScheduleData *SD) { in initialFillReadyList()
3100 ScheduleData *buildBundle(ArrayRef<Value *> VL);
3107 Optional<ScheduleData *>
3115 ScheduleData *allocateScheduleDataChunks();
3124 ScheduleData *PrevLoadStore,
3125 ScheduleData *NextLoadStore);
3129 void calculateDependencies(ScheduleData *SD, bool InsertInReadyList,
3138 std::vector<std::unique_ptr<ScheduleData[]>> ScheduleDataChunks;
3150 DenseMap<Instruction *, ScheduleData *> ScheduleDataMap;
3153 DenseMap<Value *, SmallDenseMap<Value *, ScheduleData *>>
3157 SetVector<ScheduleData *> ReadyInsts;
3167 ScheduleData *FirstLoadStoreInRegion = nullptr;
3171 ScheduleData *LastLoadStoreInRegion = nullptr;
4837 Optional<ScheduleData *> Bundle = BS.tryScheduleBundle(VL, this, S); in buildTree_rec()
9049 BoUpSLP::ScheduleData *
9051 ScheduleData *Bundle = nullptr; in buildBundle()
9052 ScheduleData *PrevInBundle = nullptr; in buildBundle()
9056 ScheduleData *BundleMember = getScheduleData(V); in buildBundle()
9078 Optional<BoUpSLP::ScheduleData *>
9092 ScheduleData *Bundle) { in tryScheduleBundle()
9100 doForAllOpcodes(I, [](ScheduleData *SD) { SD->clearDependencies(); }); in tryScheduleBundle()
9120 ScheduleData *Picked = ReadyInsts.pop_back_val(); in tryScheduleBundle()
9148 ScheduleData *BundleMember = getScheduleData(V); in tryScheduleBundle()
9183 ScheduleData *Bundle = getScheduleData(OpValue); in cancelScheduling()
9196 ScheduleData *BundleMember = Bundle; in cancelScheduling()
9200 ScheduleData *Next = BundleMember->NextInBundle; in cancelScheduling()
9210 BoUpSLP::ScheduleData *BoUpSLP::BlockScheduling::allocateScheduleDataChunks() { in allocateScheduleDataChunks()
9213 ScheduleDataChunks.push_back(std::make_unique<ScheduleData[]>(ChunkSize)); in allocateScheduleDataChunks()
9230 ScheduleData *ISD = getScheduleData(I); in extendSchedulingRegion()
9235 ScheduleData *SD = allocateScheduleDataChunks(); in extendSchedulingRegion()
9299 ScheduleData *PrevLoadStore, in initScheduleData()
9300 ScheduleData *NextLoadStore) { in initScheduleData()
9301 ScheduleData *CurrentLoadStore = PrevLoadStore; in initScheduleData()
9306 ScheduleData *SD = ScheduleDataMap.lookup(I); in initScheduleData()
9342 void BoUpSLP::BlockScheduling::calculateDependencies(ScheduleData *SD, in calculateDependencies()
9347 SmallVector<ScheduleData *, 10> WorkList; in calculateDependencies()
9351 ScheduleData *SD = WorkList.pop_back_val(); in calculateDependencies()
9352 for (ScheduleData *BundleMember = SD; BundleMember; in calculateDependencies()
9365 if (ScheduleData *UseSD = getScheduleData(BundleMember->Inst)) { in calculateDependencies()
9367 ScheduleData *DestBundle = UseSD->FirstInBundle; in calculateDependencies()
9375 if (ScheduleData *UseSD = getScheduleData(cast<Instruction>(U))) { in calculateDependencies()
9377 ScheduleData *DestBundle = UseSD->FirstInBundle; in calculateDependencies()
9391 ScheduleData *DestBundle = DepDest->FirstInBundle; in calculateDependencies()
9456 ScheduleData *DepDest = BundleMember->NextLoadStore; in calculateDependencies()
9489 ScheduleData *DestBundle = DepDest->FirstInBundle; in calculateDependencies()
9528 doForAllOpcodes(I, [&](ScheduleData *SD) { in resetSchedule()
9557 bool operator()(ScheduleData *SD1, ScheduleData *SD2) const { in scheduleBlock()
9561 std::set<ScheduleData *, ScheduleDataCompare> ReadyInsts; in scheduleBlock()
9568 BS->doForAllOpcodes(I, [this, &Idx, BS](ScheduleData *SD) { in scheduleBlock()
9587 ScheduleData *picked = *ReadyInsts.begin(); in scheduleBlock()
9592 for (ScheduleData *BundleMember = picked; BundleMember; in scheduleBlock()
9611 BS->doForAllOpcodes(I, [&](ScheduleData *SD) { in scheduleBlock()