Lines Matching full:anti
1 //===----- CriticalAntiDepBreaker.cpp - Anti-dep breaker -------- ---------===//
11 // implements register anti-dependence breaking along a blocks
138 // In the case of a latency tie, prefer an anti-dependency edge over
141 (NextDepth == PredTotalLatency && P->getKind() == SDep::Anti)) {
389 // an anti-dependence with this AntiDepReg, because that would
390 // re-introduce that anti-dependence.
474 // There are three anti-dependencies here, and without special care,
484 // because at each anti-dependence, B is the first register that
485 // isn't A which is free. This re-introduces anti-dependencies
486 // at all but one of the original anti-dependencies that we were
489 // using it to repair an anti-dependence on the same register.
499 // This still has an anti-dependence on B, but at least it isn't on the
508 // Attempt to break anti-dependence edges on the critical path. Walk the
526 // is an anti-dependence that we may be able to break. If it is, set
527 // AntiDepReg to the non-zero register associated with the anti-dependence.
530 // breaking anti-dependence edges that aren't going to significantly
535 // anti-dependencies. The current code here only knows how to break one
537 // the anti-dependencies in an instruction in order to be effective.
543 // Only consider anti-dependence edges.
544 if (Edge->getKind() == SDep::Anti) {
546 assert(AntiDepReg != 0 && "Anti-dependence on reg0?");
548 // Don't break anti-dependencies on non-allocatable registers.
551 // Don't break anti-dependencies if a use down below requires
556 // anti-depends on, don't bother breaking the anti-dependency
561 // same register as the anti-dependency, don't attempt to
566 (P->getKind() != SDep::Anti || P->getReg() != AntiDepReg) :
591 // break this anti-dependency.
617 "Register should be live if it's causing an anti-dependence!");
621 // Look for a suitable register to use to break the anti-dependence.
633 DEBUG(dbgs() << "Breaking anti-dependence edge on "
644 // related to the anti-dependency register, make sure to update that
655 // liveness information for the anti-dependence reg is now