From 723aa1327c653847158b39c87180ffb149b2b351 Mon Sep 17 00:00:00 2001 From: Kyle Butt Date: Fri, 26 Aug 2016 20:12:40 +0000 Subject: TailDuplication: Record blocks that received the duplicated block. NFC. This will allow tail duplication during layout to handle the cfg changes more cleanly. llvm-svn: 279858 --- llvm/lib/CodeGen/TailDuplicator.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'llvm/lib/CodeGen/TailDuplicator.cpp') diff --git a/llvm/lib/CodeGen/TailDuplicator.cpp b/llvm/lib/CodeGen/TailDuplicator.cpp index bf3379eb576..a27e38d2d7d 100644 --- a/llvm/lib/CodeGen/TailDuplicator.cpp +++ b/llvm/lib/CodeGen/TailDuplicator.cpp @@ -119,8 +119,13 @@ static void VerifyPHIs(MachineFunction &MF, bool CheckExtra) { } /// Tail duplicate the block and cleanup. -bool TailDuplicator::tailDuplicateAndUpdate(bool IsSimple, - MachineBasicBlock *MBB) { +/// \p IsSimple - return value of isSimpleBB +/// \p MBB - block to be duplicated +/// \p DuplicatedPreds - if non-null, \p DuplicatedPreds will contain a list of +/// all Preds that received a copy of \p MBB. +bool TailDuplicator::tailDuplicateAndUpdate( + bool IsSimple, MachineBasicBlock *MBB, + SmallVectorImpl *DuplicatedPreds) { // Save the successors list. SmallSetVector Succs(MBB->succ_begin(), MBB->succ_end()); @@ -216,6 +221,9 @@ bool TailDuplicator::tailDuplicateAndUpdate(bool IsSimple, if (NewPHIs.size()) NumAddedPHIs += NewPHIs.size(); + if (DuplicatedPreds) + *DuplicatedPreds = std::move(TDBBs); + return true; } -- cgit v1.2.3