Lines Matching defs:RA
657 /// Marks the liveness of RA depending on L. If L is MaybeLive, it also takes
658 /// all uses in MaybeLiveUses and records them in Uses, such that RA will be
660 void DeadArgumentEliminationPass::markValue(const RetOrArg &RA, Liveness L,
664 markLive(RA);
667 assert(!isLive(RA) && "Use is already live!");
671 markLive(RA);
676 Uses.emplace(MaybeLiveUse, RA);
700 void DeadArgumentEliminationPass::markLive(const RetOrArg &RA) {
701 if (isLive(RA))
704 LiveValues.insert(RA);
707 << RA.getDescription() << " live\n");
708 propagateLiveness(RA);
711 bool DeadArgumentEliminationPass::isLive(const RetOrArg &RA) {
712 return LiveFunctions.count(RA.F) || LiveValues.count(RA);
715 /// Given that RA is a live value, propagate it's liveness to any other values
717 void DeadArgumentEliminationPass::propagateLiveness(const RetOrArg &RA) {
720 // not belonging to RA) to become erased and the iterator invalidated.
721 UseMap::iterator Begin = Uses.lower_bound(RA);
724 for (I = Begin; I != E && I->first == RA; ++I)
727 // Erase RA from the Uses map (from the lower bound to wherever we ended up