Lines Matching defs:LoopFuser

562 struct LoopFuser {  struct
565 FusionCandidateCollection FusionCandidates;
567 LoopDepthTree LDT;
568 DomTreeUpdater DTU;
570 LoopInfo &LI;
571 DominatorTree &DT;
572 DependenceInfo &DI;
573 ScalarEvolution &SE;
574 PostDominatorTree &PDT;
575 OptimizationRemarkEmitter &ORE;
576 AssumptionCache ∾
577 const TargetTransformInfo &TTI;
580 LoopFuser(LoopInfo &LI, DominatorTree &DT, DependenceInfo &DI, in LoopFuser() function
590 bool fuseLoops(Function &F) { in fuseLoops()
657 bool isControlFlowEquivalent(const FusionCandidate &FC0, in isControlFlowEquivalent()
668 void collectFusionCandidates(const LoopVector &LV) { in collectFusionCandidates()
714 bool isBeneficialFusion(const FusionCandidate &FC0, in isBeneficialFusion()
728 haveIdenticalTripCounts(const FusionCandidate &FC0, in haveIdenticalTripCounts()
786 void peelFusionCandidate(FusionCandidate &FC0, const FusionCandidate &FC1, in peelFusionCandidate()
858 bool fuseCandidates() { in fuseCandidates()
1073 bool canHoistInst(Instruction &I, in canHoistInst()
1139 bool canSinkInst(Instruction &I, const FusionCandidate &FC1) const { in canSinkInst()
1181 bool collectMovablePreheaderInsts( in collectMovablePreheaderInsts()
1233 class AddRecLoopReplacer : public SCEVRewriteVisitor<AddRecLoopReplacer> {
1271 bool accessDiffIsPositive(const Loop &L0, const Loop &L1, Instruction &I0, in accessDiffIsPositive()
1325 bool dependencesAllowFusion(const FusionCandidate &FC0, in dependencesAllowFusion()
1372 bool dependencesAllowFusion(const FusionCandidate &FC0, in dependencesAllowFusion()
1436 bool isAdjacent(const FusionCandidate &FC0, in isAdjacent()
1445 bool isEmptyPreheader(const FusionCandidate &FC) const { in isEmptyPreheader()
1451 void movePreheaderInsts(const FusionCandidate &FC0, in movePreheaderInsts()
1498 bool haveIdenticalGuards(const FusionCandidate &FC0, in haveIdenticalGuards()
1521 void simplifyLatchBranch(const FusionCandidate &FC) const { in simplifyLatchBranch()
1535 void mergeLatch(const FusionCandidate &FC0, const FusionCandidate &FC1) { in mergeLatch()
1572 Loop *performFusion(const FusionCandidate &FC0, const FusionCandidate &FC1) { in performFusion()
1783 void reportLoopFusion(const FusionCandidate &FC0, const FusionCandidate &FC1, in reportLoopFusion()
1814 Loop *fuseGuardedLoops(const FusionCandidate &FC0, in fuseGuardedLoops()