Lines Matching defs:BBInfo
80 /// BBInfo - One per MachineBasicBlock, this is used to cache the result
103 struct BBInfo {
121 BBInfo() : IsDone(false), IsBeingAnalyzed(false),
129 /// BBI - Corresponding BBInfo.
140 BBInfo &BBI;
145 IfcvtToken(BBInfo &b, IfcvtKind k, bool s, unsigned d, unsigned d2 = 0)
151 std::vector<BBInfo> BBAnalysis;
177 bool ReverseBranchCondition(BBInfo &BBI);
178 bool ValidSimple(BBInfo &TrueBBI, unsigned &Dups,
180 bool ValidTriangle(BBInfo &TrueBBI, BBInfo &FalseBBI,
183 bool ValidDiamond(BBInfo &TrueBBI, BBInfo &FalseBBI,
185 void ScanInstructions(BBInfo &BBI);
186 BBInfo &AnalyzeBlock(MachineBasicBlock *BB,
188 bool FeasibilityAnalysis(BBInfo &BBI, SmallVectorImpl<MachineOperand> &Cond,
192 void RemoveExtraEdges(BBInfo &BBI);
193 bool IfConvertSimple(BBInfo &BBI, IfcvtKind Kind);
194 bool IfConvertTriangle(BBInfo &BBI, IfcvtKind Kind);
195 bool IfConvertDiamond(BBInfo &BBI, IfcvtKind Kind,
197 void PredicateBlock(BBInfo &BBI,
202 void CopyAndPredicateBlock(BBInfo &ToBBI, BBInfo &FromBBI,
206 void MergeBlocks(BBInfo &ToBBI, BBInfo &FromBBI, bool AddEdges = true);
226 bool blockAlwaysFallThrough(BBInfo &BBI) const {
307 BBInfo &BBI = Token->BBI;
436 bool IfConverter::ReverseBranchCondition(BBInfo &BBI) {
461 bool IfConverter::ValidSimple(BBInfo &TrueBBI, unsigned &Dups,
487 bool IfConverter::ValidTriangle(BBInfo &TrueBBI, BBInfo &FalseBBI,
528 bool IfConverter::ValidDiamond(BBInfo &TrueBBI, BBInfo &FalseBBI,
628 void IfConverter::ScanInstructions(BBInfo &BBI) {
715 bool IfConverter::FeasibilityAnalysis(BBInfo &BBI,
749 IfConverter::BBInfo &IfConverter::AnalyzeBlock(MachineBasicBlock *BB,
751 BBInfo &BBI = BBAnalysis[BB->getNumber()];
783 BBInfo &TrueBBI = AnalyzeBlock(BBI.TrueBB, Tokens);
784 BBInfo &FalseBBI = AnalyzeBlock(BBI.FalseBB, Tokens);
937 BBInfo &PBBI = BBAnalysis[(*PI)->getNumber()];
956 void IfConverter::RemoveExtraEdges(BBInfo &BBI) {
1024 bool IfConverter::IfConvertSimple(BBInfo &BBI, IfcvtKind Kind) {
1025 BBInfo &TrueBBI = BBAnalysis[BBI.TrueBB->getNumber()];
1026 BBInfo &FalseBBI = BBAnalysis[BBI.FalseBB->getNumber()];
1027 BBInfo *CvtBBI = &TrueBBI;
1028 BBInfo *NextBBI = &FalseBBI;
1096 bool IfConverter::IfConvertTriangle(BBInfo &BBI, IfcvtKind Kind) {
1097 BBInfo &TrueBBI = BBAnalysis[BBI.TrueBB->getNumber()];
1098 BBInfo &FalseBBI = BBAnalysis[BBI.FalseBB->getNumber()];
1099 BBInfo *CvtBBI = &TrueBBI;
1100 BBInfo *NextBBI = &FalseBBI;
1128 BBInfo &PBBI = BBAnalysis[PBB->getNumber()];
1207 bool IfConverter::IfConvertDiamond(BBInfo &BBI, IfcvtKind Kind,
1209 BBInfo &TrueBBI = BBAnalysis[BBI.TrueBB->getNumber()];
1210 BBInfo &FalseBBI = BBAnalysis[BBI.FalseBB->getNumber()];
1232 BBInfo *BBI1 = &TrueBBI;
1233 BBInfo *BBI2 = &FalseBBI;
1376 BBInfo &TailBBI = BBAnalysis[TailBB->getNumber()];
1436 void IfConverter::PredicateBlock(BBInfo &BBI,
1480 void IfConverter::CopyAndPredicateBlock(BBInfo &ToBBI, BBInfo &FromBBI,
1545 void IfConverter::MergeBlocks(BBInfo &ToBBI, BBInfo &FromBBI, bool AddEdges) {