From bc843211fde1a1c6937b6d9bf3af670f0d10fd22 Mon Sep 17 00:00:00 2001 From: Michael Zolotukhin Date: Fri, 20 Apr 2018 07:57:24 +0000 Subject: [SSAUpdaterBulk] Use PredCache in ComputeLiveInBlocks. llvm-svn: 330399 --- llvm/lib/Transforms/Utils/SSAUpdaterBulk.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'llvm/lib/Transforms') diff --git a/llvm/lib/Transforms/Utils/SSAUpdaterBulk.cpp b/llvm/lib/Transforms/Utils/SSAUpdaterBulk.cpp index 5321b4374cd..6ab4a159fe0 100644 --- a/llvm/lib/Transforms/Utils/SSAUpdaterBulk.cpp +++ b/llvm/lib/Transforms/Utils/SSAUpdaterBulk.cpp @@ -90,7 +90,8 @@ Value *SSAUpdaterBulk::computeValueAt(BasicBlock *BB, RewriteInfo &R, static void ComputeLiveInBlocks(const SmallPtrSetImpl &UsingBlocks, const SmallPtrSetImpl &DefBlocks, - SmallPtrSetImpl &LiveInBlocks) { + SmallPtrSetImpl &LiveInBlocks, + PredIteratorCache &PredCache) { // To determine liveness, we must iterate through the predecessors of blocks // where the def is live. Blocks are added to the worklist if we need to // check their predecessors. Start with all the using blocks. @@ -110,7 +111,7 @@ ComputeLiveInBlocks(const SmallPtrSetImpl &UsingBlocks, // Since the value is live into BB, it is either defined in a predecessor or // live into it to. Add the preds to the worklist unless they are a // defining block. - for (BasicBlock *P : predecessors(BB)) { + for (BasicBlock *P : PredCache.get(BB)) { // The value is not live into a predecessor if it defines the value. if (DefBlocks.count(P)) continue; @@ -147,7 +148,7 @@ void SSAUpdaterBulk::RewriteAllUses(DominatorTree *DT, SmallVector IDFBlocks; SmallPtrSet LiveInBlocks; - ComputeLiveInBlocks(UsingBlocks, DefBlocks, LiveInBlocks); + ComputeLiveInBlocks(UsingBlocks, DefBlocks, LiveInBlocks, PredCache); IDF.resetLiveInBlocks(); IDF.setLiveInBlocks(LiveInBlocks); IDF.calculate(IDFBlocks); -- cgit v1.2.3