reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
952 NumMatch += serialPatternMatch(FalseMBB); 953 NumMatch += ifPatternMatch(FalseMBB); 957 assert (!TrueMBB->succ_empty() || !FalseMBB->succ_empty()); 959 if (TrueMBB->succ_size() == 1 && FalseMBB->succ_size() == 1 960 && *TrueMBB->succ_begin() == *FalseMBB->succ_begin()) { 963 } else if (TrueMBB->succ_size() == 1 && *TrueMBB->succ_begin() == FalseMBB) { 965 LandBlk = FalseMBB; 966 FalseMBB = nullptr; 967 } else if (FalseMBB->succ_size() == 1 968 && *FalseMBB->succ_begin() == TrueMBB) { 971 std::swap(TrueMBB, FalseMBB); 973 LandBlk = FalseMBB; 974 FalseMBB = nullptr; 975 } else if (FalseMBB->succ_size() == 1 976 && isSameloopDetachedContbreak(TrueMBB, FalseMBB)) { 977 LandBlk = *FalseMBB->succ_begin(); 979 && isSameloopDetachedContbreak(FalseMBB, TrueMBB)) { 982 return NumMatch + handleJumpintoIf(MBB, TrueMBB, FalseMBB); 990 || (FalseMBB && FalseMBB->pred_size() > 1))) { 990 || (FalseMBB && FalseMBB->pred_size() > 1))) { 991 Cloned += improveSimpleJumpintoIf(MBB, TrueMBB, FalseMBB, &LandBlk); 999 if (FalseMBB && FalseMBB->pred_size() > 1) { 999 if (FalseMBB && FalseMBB->pred_size() > 1) { 1000 FalseMBB = cloneBlockForPredecessor(FalseMBB, MBB); 1000 FalseMBB = cloneBlockForPredecessor(FalseMBB, MBB); 1004 mergeIfthenelseBlock(BranchMI, MBB, TrueMBB, FalseMBB, LandBlk);