Lines Matching refs:IfConv
769 SSAIfConv IfConv; member in __anon4c5015260311::EarlyIfConverter
809 void updateDomTree(MachineDominatorTree *DomTree, const SSAIfConv &IfConv, in updateDomTree() argument
814 MachineDomTreeNode *HeadNode = DomTree->getNode(IfConv.Head); in updateDomTree()
819 assert(Node->getBlock() == IfConv.Tail && "Unexpected children"); in updateDomTree()
839 Traces->invalidate(IfConv.Head); in invalidateTraces()
840 Traces->invalidate(IfConv.Tail); in invalidateTraces()
841 Traces->invalidate(IfConv.TBB); in invalidateTraces()
842 Traces->invalidate(IfConv.FBB); in invalidateTraces()
874 MachineLoop *CurrentLoop = Loops->getLoopFor(IfConv.Head); in shouldConvertIf()
880 if (CurrentLoop && any_of(IfConv.Cond, [&](MachineOperand &MO) { in shouldConvertIf()
907 MachineTraceMetrics::Trace TBBTrace = MinInstr->getTrace(IfConv.getTPred()); in shouldConvertIf()
908 MachineTraceMetrics::Trace FBBTrace = MinInstr->getTrace(IfConv.getFPred()); in shouldConvertIf()
916 MachineBasicBlock &MBB = *IfConv.Head; in shouldConvertIf()
923 if (IfConv.TBB != IfConv.Tail) in shouldConvertIf()
924 ExtraBlocks.push_back(IfConv.TBB); in shouldConvertIf()
947 MachineTraceMetrics::Trace HeadTrace = MinInstr->getTrace(IfConv.Head); in shouldConvertIf()
949 HeadTrace.getInstrCycles(*IfConv.Head->getFirstTerminator()).Depth; in shouldConvertIf()
954 MachineTraceMetrics::Trace TailTrace = MinInstr->getTrace(IfConv.Tail); in shouldConvertIf()
963 for (SSAIfConv::PHIInfo &PI : IfConv.PHIs) { in shouldConvertIf()
1062 while (IfConv.canConvertIf(MBB) && shouldConvertIf()) { in tryConvertIf()
1066 IfConv.convertIf(RemovedBlocks); in tryConvertIf()
1068 updateDomTree(DomTree, IfConv, RemovedBlocks); in tryConvertIf()
1095 IfConv.runOnMachineFunction(MF); in runOnMachineFunction()
1121 SSAIfConv IfConv; member in __anon4c5015260b11::EarlyIfPredicator
1160 auto TrueProbability = MBPI->getEdgeProbability(IfConv.Head, IfConv.TBB); in shouldConvertIf()
1161 if (IfConv.isTriangle()) { in shouldConvertIf()
1163 (IfConv.TBB == IfConv.Tail) ? *IfConv.FBB : *IfConv.TBB; in shouldConvertIf()
1181 for (MachineInstr &I : *IfConv.TBB) { in shouldConvertIf()
1187 for (MachineInstr &I : *IfConv.FBB) { in shouldConvertIf()
1193 return TII->isProfitableToIfCvt(*IfConv.TBB, TCycle, TExtra, *IfConv.FBB, in shouldConvertIf()
1201 while (IfConv.canConvertIf(MBB, /*Predicate*/ true) && shouldConvertIf()) { in tryConvertIf()
1204 IfConv.convertIf(RemovedBlocks, /*Predicate*/ true); in tryConvertIf()
1206 updateDomTree(DomTree, IfConv, RemovedBlocks); in tryConvertIf()
1228 IfConv.runOnMachineFunction(MF); in runOnMachineFunction()