Lines Matching full:writes
291 // Check if this is one of multiple writes performed by this
404 // We only allow move elimination for writes that update a full physical
406 // registers because writes to those registers are not partial writes. If a
426 bool RegisterFile::tryEliminateMoveOrSwap(MutableArrayRef<WriteState> Writes,
428 if (Writes.size() != Reads.size())
431 // This logic assumes that writes and reads are contributed by a register move
434 // exactly two writes.
435 if (Writes.empty() || Writes.size() > 2)
440 RegisterMappings[Writes[0].getRegisterID()].second;
446 (RMT.NumMoveEliminated + Writes.size()) > RMT.MaxMoveEliminatedPerCycle)
449 for (size_t I = 0, E = Writes.size(); I < E; ++I) {
451 const WriteState &WS = Writes[E - (I + 1)];
456 for (size_t I = 0, E = Writes.size(); I < E; ++I) {
458 WriteState &WS = Writes[E - (I + 1)];
504 SmallVectorImpl<WriteRef> &Writes,
511 LLVM_DEBUG(dbgs() << "[PRF] collecting writes for register "
521 Writes.push_back(WR);
536 Writes.push_back(WR);
549 if (Writes.size() > 1) {
550 sort(Writes, [](const WriteRef &Lhs, const WriteRef &Rhs) {
553 auto It = llvm::unique(Writes);
554 Writes.resize(std::distance(Writes.begin(), It));
558 for (const WriteRef &WR : Writes) {
571 SmallVector<WriteRef, 4> Writes;
578 collectWrites(STI, RS, Writes, CommittedWrites);
579 for (const WriteRef &WR : Writes) {
601 Writes.clear();
634 // We know that this read depends on all the writes in DependentWrites.