diff options
Diffstat (limited to 'contrib/llvm-project/llvm/lib/CodeGen/BranchFolding.cpp')
| -rw-r--r-- | contrib/llvm-project/llvm/lib/CodeGen/BranchFolding.cpp | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/contrib/llvm-project/llvm/lib/CodeGen/BranchFolding.cpp b/contrib/llvm-project/llvm/lib/CodeGen/BranchFolding.cpp index 65e7e92fe152..5ac8f49a9522 100644 --- a/contrib/llvm-project/llvm/lib/CodeGen/BranchFolding.cpp +++ b/contrib/llvm-project/llvm/lib/CodeGen/BranchFolding.cpp @@ -611,7 +611,7 @@ ProfitableToMerge(MachineBasicBlock *MBB1, MachineBasicBlock *MBB2, // there are fallthroughs, and we don't know until after layout. if (AfterPlacement && FullBlockTail1 && FullBlockTail2) { auto BothFallThrough = [](MachineBasicBlock *MBB) { - if (MBB->succ_size() != 0 && !MBB->canFallThrough()) + if (!MBB->succ_empty() && !MBB->canFallThrough()) return false; MachineFunction::iterator I(MBB); MachineFunction *MF = MBB->getParent(); @@ -1198,14 +1198,13 @@ bool BranchFolder::OptimizeBranches(MachineFunction &MF) { // Renumbering blocks alters EH scope membership, recalculate it. EHScopeMembership = getEHScopeMembership(MF); - for (MachineFunction::iterator I = std::next(MF.begin()), E = MF.end(); - I != E; ) { - MachineBasicBlock *MBB = &*I++; - MadeChange |= OptimizeBlock(MBB); + for (MachineBasicBlock &MBB : + llvm::make_early_inc_range(llvm::drop_begin(MF))) { + MadeChange |= OptimizeBlock(&MBB); // If it is dead, remove it. - if (MBB->pred_empty()) { - RemoveDeadBlock(MBB); + if (MBB.pred_empty()) { + RemoveDeadBlock(&MBB); MadeChange = true; ++NumDeadBlocks; } @@ -1753,10 +1752,8 @@ ReoptimizeBlock: bool BranchFolder::HoistCommonCode(MachineFunction &MF) { bool MadeChange = false; - for (MachineFunction::iterator I = MF.begin(), E = MF.end(); I != E; ) { - MachineBasicBlock *MBB = &*I++; - MadeChange |= HoistCommonCodeInSuccs(MBB); - } + for (MachineBasicBlock &MBB : llvm::make_early_inc_range(MF)) + MadeChange |= HoistCommonCodeInSuccs(&MBB); return MadeChange; } |
