Lines Matching full:anti
1 //===----- AggressiveAntiDepBreaker.cpp - Anti-dep breaker ----------------===//
11 // implements register anti-dependence breaking during post-RA
12 // scheduling. It attempts to break all anti-dependencies within a
35 cl::desc("Debug control for aggressive anti-dep breaker"),
39 cl::desc("Debug control for aggressive anti-dep breaker"),
257 /// AntiDepEdges - Return in Edges the anti- and output- dependencies
263 if ((P->getKind() == SDep::Anti) || (P->getKind() == SDep::Output)) {
285 // In the case of a latency tie, prefer an anti-dependency edge over
288 (NextDepth == PredTotalLatency && P->getKind() == SDep::Anti)) {
536 // break the anti-dependence.
694 /// BreakAntiDependencies - Identifiy anti-dependencies within the
726 // break critical-path anti-dependencies.
743 DEBUG(dbgs() << "\n===== Aggressive anti-dependency breaking\n");
752 // Attempt to break anti-dependence edges. Walk the instructions
764 DEBUG(dbgs() << "Anti: ");
773 // The dependence edges that represent anti- and output-
790 // but don't cause any anti-dependence breaking themselves)
792 // Attempt to break each anti-dependency...
797 if ((Edge->getKind() != SDep::Anti) &&
802 assert(AntiDepReg != 0 && "Anti-dependence on reg0?");
805 // Don't break anti-dependencies on non-allocatable registers.
809 // Don't break anti-dependencies for critical path registers
814 // If the anti-dep register liveness "passes-thru", then
820 // No anti-dep breaking for implicit deps
830 // it anti-depends on, don't bother breaking the
831 // anti-dependency since those edges would prevent such
836 // same register as the anti-dependency, don't attempt to
841 (P->getKind() != SDep::Anti || P->getReg() != AntiDepReg) :
849 if ((P->getSUnit() == NextSU) && (P->getKind() != SDep::Anti) &&
878 // Look for a suitable register to use to break the anti-dependence.
881 DEBUG(dbgs() << "\tBreaking anti-dependence edge on "
906 // information related to the anti-dependency register, make