Lines Matching defs:LoopFuser

537 struct LoopFuser {  struct
540 FusionCandidateCollection FusionCandidates;
542 LoopDepthTree LDT;
543 DomTreeUpdater DTU;
545 LoopInfo &LI;
546 DominatorTree &DT;
547 DependenceInfo &DI;
548 ScalarEvolution &SE;
549 PostDominatorTree &PDT;
550 OptimizationRemarkEmitter &ORE;
551 AssumptionCache ∾
553 const TargetTransformInfo &TTI;
556 LoopFuser(LoopInfo &LI, DominatorTree &DT, DependenceInfo &DI, in LoopFuser() function
566 bool fuseLoops(Function &F) { in fuseLoops()
633 bool isControlFlowEquivalent(const FusionCandidate &FC0, in isControlFlowEquivalent()
644 void collectFusionCandidates(const LoopVector &LV) { in collectFusionCandidates()
690 bool isBeneficialFusion(const FusionCandidate &FC0, in isBeneficialFusion()
704 haveIdenticalTripCounts(const FusionCandidate &FC0, in haveIdenticalTripCounts()
763 void peelFusionCandidate(FusionCandidate &FC0, const FusionCandidate &FC1, in peelFusionCandidate()
834 bool fuseCandidates() { in fuseCandidates()
1026 class AddRecLoopReplacer : public SCEVRewriteVisitor<AddRecLoopReplacer> {
1064 bool accessDiffIsPositive(const Loop &L0, const Loop &L1, Instruction &I0, in accessDiffIsPositive()
1118 bool dependencesAllowFusion(const FusionCandidate &FC0, in dependencesAllowFusion()
1165 bool dependencesAllowFusion(const FusionCandidate &FC0, in dependencesAllowFusion()
1229 bool isAdjacent(const FusionCandidate &FC0, in isAdjacent()
1250 bool haveIdenticalGuards(const FusionCandidate &FC0, in haveIdenticalGuards()
1273 void simplifyLatchBranch(const FusionCandidate &FC) const { in simplifyLatchBranch()
1287 void mergeLatch(const FusionCandidate &FC0, const FusionCandidate &FC1) { in mergeLatch()
1324 Loop *performFusion(const FusionCandidate &FC0, const FusionCandidate &FC1) { in performFusion()
1533 void reportLoopFusion(const FusionCandidate &FC0, const FusionCandidate &FC1, in reportLoopFusion()
1564 Loop *fuseGuardedLoops(const FusionCandidate &FC0, in fuseGuardedLoops()