Lines Matching refs:BBInfo

86     /// BBInfo - One per MachineBasicBlock, this is used to cache the result
109 struct BBInfo {
127 BBInfo() : IsDone(false), IsBeingAnalyzed(false),
136 /// BBI - Corresponding BBInfo.
147 BBInfo &BBI;
152 IfcvtToken(BBInfo &b, IfcvtKind k, bool s, unsigned d, unsigned d2 = 0)
158 std::vector<BBInfo> BBAnalysis;
187 bool ReverseBranchCondition(BBInfo &BBI);
188 bool ValidSimple(BBInfo &TrueBBI, unsigned &Dups,
190 bool ValidTriangle(BBInfo &TrueBBI, BBInfo &FalseBBI,
193 bool ValidDiamond(BBInfo &TrueBBI, BBInfo &FalseBBI,
195 void ScanInstructions(BBInfo &BBI);
196 BBInfo &AnalyzeBlock(MachineBasicBlock *BB,
198 bool FeasibilityAnalysis(BBInfo &BBI, SmallVectorImpl<MachineOperand> &Cond,
202 void RemoveExtraEdges(BBInfo &BBI);
203 bool IfConvertSimple(BBInfo &BBI, IfcvtKind Kind);
204 bool IfConvertTriangle(BBInfo &BBI, IfcvtKind Kind);
205 bool IfConvertDiamond(BBInfo &BBI, IfcvtKind Kind,
207 void PredicateBlock(BBInfo &BBI,
211 void CopyAndPredicateBlock(BBInfo &ToBBI, BBInfo &FromBBI,
214 void MergeBlocks(BBInfo &ToBBI, BBInfo &FromBBI, bool AddEdges = true);
234 bool blockAlwaysFallThrough(BBInfo &BBI) const {
319 BBInfo &BBI = Token->BBI;
448 bool IfConverter::ReverseBranchCondition(BBInfo &BBI) {
473 bool IfConverter::ValidSimple(BBInfo &TrueBBI, unsigned &Dups,
499 bool IfConverter::ValidTriangle(BBInfo &TrueBBI, BBInfo &FalseBBI,
540 bool IfConverter::ValidDiamond(BBInfo &TrueBBI, BBInfo &FalseBBI,
640 void IfConverter::ScanInstructions(BBInfo &BBI) {
723 bool IfConverter::FeasibilityAnalysis(BBInfo &BBI,
757 IfConverter::BBInfo &IfConverter::AnalyzeBlock(MachineBasicBlock *BB,
759 BBInfo &BBI = BBAnalysis[BB->getNumber()];
791 BBInfo &TrueBBI = AnalyzeBlock(BBI.TrueBB, Tokens);
792 BBInfo &FalseBBI = AnalyzeBlock(BBI.FalseBB, Tokens);
945 BBInfo &PBBI = BBAnalysis[(*PI)->getNumber()];
964 void IfConverter::RemoveExtraEdges(BBInfo &BBI) {
1023 bool IfConverter::IfConvertSimple(BBInfo &BBI, IfcvtKind Kind) {
1024 BBInfo &TrueBBI = BBAnalysis[BBI.TrueBB->getNumber()];
1025 BBInfo &FalseBBI = BBAnalysis[BBI.FalseBB->getNumber()];
1026 BBInfo *CvtBBI = &TrueBBI;
1027 BBInfo *NextBBI = &FalseBBI;
1131 bool IfConverter::IfConvertTriangle(BBInfo &BBI, IfcvtKind Kind) {
1132 BBInfo &TrueBBI = BBAnalysis[BBI.TrueBB->getNumber()];
1133 BBInfo &FalseBBI = BBAnalysis[BBI.FalseBB->getNumber()];
1134 BBInfo *CvtBBI = &TrueBBI;
1135 BBInfo *NextBBI = &FalseBBI;
1167 BBInfo &PBBI = BBAnalysis[PBB->getNumber()];
1277 bool IfConverter::IfConvertDiamond(BBInfo &BBI, IfcvtKind Kind,
1279 BBInfo &TrueBBI = BBAnalysis[BBI.TrueBB->getNumber()];
1280 BBInfo &FalseBBI = BBAnalysis[BBI.FalseBB->getNumber()];
1306 BBInfo *BBI1 = &TrueBBI;
1307 BBInfo *BBI2 = &FalseBBI;
1466 BBInfo &TailBBI = BBAnalysis[TailBB->getNumber()];
1527 void IfConverter::PredicateBlock(BBInfo &BBI,
1570 void IfConverter::CopyAndPredicateBlock(BBInfo &ToBBI, BBInfo &FromBBI,
1638 void IfConverter::MergeBlocks(BBInfo &ToBBI, BBInfo &FromBBI, bool AddEdges) {