Lines Matching refs:IfConv
771 SSAIfConv IfConv; member in __anone8860c9c0311::EarlyIfConverter
811 void updateDomTree(MachineDominatorTree *DomTree, const SSAIfConv &IfConv, in updateDomTree() argument
816 MachineDomTreeNode *HeadNode = DomTree->getNode(IfConv.Head); in updateDomTree()
821 assert(Node->getBlock() == IfConv.Tail && "Unexpected children"); in updateDomTree()
841 Traces->invalidate(IfConv.Head); in invalidateTraces()
842 Traces->invalidate(IfConv.Tail); in invalidateTraces()
843 Traces->invalidate(IfConv.TBB); in invalidateTraces()
844 Traces->invalidate(IfConv.FBB); in invalidateTraces()
876 MachineLoop *CurrentLoop = Loops->getLoopFor(IfConv.Head); in shouldConvertIf()
882 if (CurrentLoop && any_of(IfConv.Cond, [&](MachineOperand &MO) { in shouldConvertIf()
909 MachineTraceMetrics::Trace TBBTrace = MinInstr->getTrace(IfConv.getTPred()); in shouldConvertIf()
910 MachineTraceMetrics::Trace FBBTrace = MinInstr->getTrace(IfConv.getFPred()); in shouldConvertIf()
918 MachineBasicBlock &MBB = *IfConv.Head; in shouldConvertIf()
925 if (IfConv.TBB != IfConv.Tail) in shouldConvertIf()
926 ExtraBlocks.push_back(IfConv.TBB); in shouldConvertIf()
949 MachineTraceMetrics::Trace HeadTrace = MinInstr->getTrace(IfConv.Head); in shouldConvertIf()
951 HeadTrace.getInstrCycles(*IfConv.Head->getFirstTerminator()).Depth; in shouldConvertIf()
956 MachineTraceMetrics::Trace TailTrace = MinInstr->getTrace(IfConv.Tail); in shouldConvertIf()
965 for (unsigned i = 0, e = IfConv.PHIs.size(); i != e; ++i) { in shouldConvertIf()
966 SSAIfConv::PHIInfo &PI = IfConv.PHIs[i]; in shouldConvertIf()
1065 while (IfConv.canConvertIf(MBB) && shouldConvertIf()) { in tryConvertIf()
1069 IfConv.convertIf(RemovedBlocks); in tryConvertIf()
1071 updateDomTree(DomTree, IfConv, RemovedBlocks); in tryConvertIf()
1098 IfConv.runOnMachineFunction(MF); in runOnMachineFunction()
1124 SSAIfConv IfConv; member in __anone8860c9c0b11::EarlyIfPredicator
1163 auto TrueProbability = MBPI->getEdgeProbability(IfConv.Head, IfConv.TBB); in shouldConvertIf()
1164 if (IfConv.isTriangle()) { in shouldConvertIf()
1166 (IfConv.TBB == IfConv.Tail) ? *IfConv.FBB : *IfConv.TBB; in shouldConvertIf()
1184 for (MachineInstr &I : *IfConv.TBB) { in shouldConvertIf()
1190 for (MachineInstr &I : *IfConv.FBB) { in shouldConvertIf()
1196 return TII->isProfitableToIfCvt(*IfConv.TBB, TCycle, TExtra, *IfConv.FBB, in shouldConvertIf()
1204 while (IfConv.canConvertIf(MBB, /*Predicate*/ true) && shouldConvertIf()) { in tryConvertIf()
1207 IfConv.convertIf(RemovedBlocks, /*Predicate*/ true); in tryConvertIf()
1209 updateDomTree(DomTree, IfConv, RemovedBlocks); in tryConvertIf()
1231 IfConv.runOnMachineFunction(MF); in runOnMachineFunction()