Lines Matching defs:WS

27 WriteRef::WriteRef(unsigned SourceIndex, WriteState *WS)
29 Write(WS) {}
107 for (WriteState &WS : IS->getDefs()) {
108 if (WS.isEliminated())
111 MCPhysReg RegID = WS.getRegisterID();
118 assert(WS.getCyclesLeft() != UNKNOWN_CYCLES &&
120 assert(WS.getCyclesLeft() <= 0 && "Invalid cycles left for this write!");
127 if (WR.getWriteState() == &WS)
132 if (OtherWR.getWriteState() == &WS)
136 if (!WS.clearsSuperRegisters())
141 if (OtherWR.getWriteState() == &WS)
230 WriteState &WS = *Write.getWriteState();
231 MCPhysReg RegID = WS.getRegisterID();
256 bool IsWriteZero = WS.isWriteZero();
257 bool IsEliminated = WS.isEliminated();
260 WS.setPRF(RRI.IndexPlusCost.first);
266 if (!WS.clearsSuperRegisters()) {
276 OtherWS->addUser(OtherWrite.getSourceIndex(), &WS);
283 WS.clearsSuperRegisters() ? RegID : WS.getRegisterID();
296 if (OtherWS->getLatency() > WS.getLatency()) {
319 if (!WS.clearsSuperRegisters())
333 const WriteState &WS, MutableArrayRef<unsigned> FreedPhysRegs) {
336 if (WS.isEliminated())
339 MCPhysReg RegID = WS.getRegisterID();
346 assert(WS.getCyclesLeft() != UNKNOWN_CYCLES &&
348 assert(WS.getCyclesLeft() <= 0 && "Invalid cycles left for this write!");
350 bool ShouldFreePhysRegs = !WS.isWriteZero();
355 if (!WS.clearsSuperRegisters()) {
365 if (WR.getWriteState() == &WS)
370 if (OtherWR.getWriteState() == &WS)
374 if (!WS.clearsSuperRegisters())
379 if (OtherWR.getWriteState() == &WS)
384 bool RegisterFile::canEliminateMove(const WriteState &WS, const ReadState &RS,
387 const RegisterMapping &RMTo = RegisterMappings[WS.getRegisterID()];
418 if (RRITo.RenameAs && RRITo.RenameAs != WS.getRegisterID())
419 if (!WS.clearsSuperRegisters())
451 const WriteState &WS = Writes[E - (I + 1)];
452 if (!canEliminateMove(WS, RS, RegisterFileIndex))
458 WriteState &WS = Writes[E - (I + 1)];
461 const RegisterMapping &RMTo = RegisterMappings[WS.getRegisterID()];
468 MCPhysReg AliasReg = RRITo.RenameAs ? RRITo.RenameAs : WS.getRegisterID();
479 WS.setWriteZero();
483 WS.setEliminated();
559 const WriteState &WS = *WR.getWriteState();
561 << MRI.getName(WS.getRegisterID()) << " (defined by instruction #"
580 const WriteState *WS = WR.getWriteState();
581 unsigned WriteResID = WS->getWriteResourceID();
584 if (WS->getCyclesLeft() == UNKNOWN_CYCLES) {
593 int CyclesLeft = WS->getCyclesLeft() - ReadAdvance;
642 WriteState &WS = *WR.getWriteState();
644 WS.addUser(WR.getSourceIndex(), &RS, ReadAdvance);