Lines Matching defs:RA
658 /// Marks the liveness of RA depending on L. If L is MaybeLive, it also takes
659 /// all uses in MaybeLiveUses and records them in Uses, such that RA will be
661 void DeadArgumentEliminationPass::markValue(const RetOrArg &RA, Liveness L,
665 markLive(RA);
668 assert(!isLive(RA) && "Use is already live!");
672 markLive(RA);
677 Uses.emplace(MaybeLiveUse, RA);
701 void DeadArgumentEliminationPass::markLive(const RetOrArg &RA) {
702 if (isLive(RA))
705 LiveValues.insert(RA);
708 << RA.getDescription() << " live\n");
709 propagateLiveness(RA);
712 bool DeadArgumentEliminationPass::isLive(const RetOrArg &RA) {
713 return LiveFunctions.count(RA.F) || LiveValues.count(RA);
716 /// Given that RA is a live value, propagate it's liveness to any other values
718 void DeadArgumentEliminationPass::propagateLiveness(const RetOrArg &RA) {
721 // not belonging to RA) to become erased and the iterator invalidated.
722 UseMap::iterator Begin = Uses.lower_bound(RA);
725 for (I = Begin; I != E && I->first == RA; ++I)
728 // Erase RA from the Uses map (from the lower bound to wherever we ended up