From c110f9b676ed77ee6d897098a2844ff2099edc3e Mon Sep 17 00:00:00 2001 From: Daniel Berlin Date: Sun, 15 Jan 2017 09:18:41 +0000 Subject: [PATCH] NewGVN: Change a bunch of densemap find_or_creates to lookups, since they should not be creating new entries git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292059 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Scalar/NewGVN.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/Transforms/Scalar/NewGVN.cpp b/lib/Transforms/Scalar/NewGVN.cpp index 9f7d4b0265a..456fd2e61e5 100644 --- a/lib/Transforms/Scalar/NewGVN.cpp +++ b/lib/Transforms/Scalar/NewGVN.cpp @@ -1038,16 +1038,16 @@ void NewGVN::markUsersTouched(Value *V) { // Now mark the users as touched. for (auto *User : V->users()) { assert(isa(User) && "Use of value not within an instruction?"); - TouchedInstructions.set(InstrDFS[User]); + TouchedInstructions.set(InstrDFS.lookup(User)); } } void NewGVN::markMemoryUsersTouched(MemoryAccess *MA) { for (auto U : MA->users()) { if (auto *MUD = dyn_cast(U)) - TouchedInstructions.set(InstrDFS[MUD->getMemoryInst()]); + TouchedInstructions.set(InstrDFS.lookup(MUD->getMemoryInst())); else - TouchedInstructions.set(InstrDFS[U]); + TouchedInstructions.set(InstrDFS.lookup(U)); } } @@ -1056,7 +1056,7 @@ void NewGVN::markMemoryUsersTouched(MemoryAccess *MA) { void NewGVN::markLeaderChangeTouched(CongruenceClass *CC) { for (auto M : CC->Members) { if (auto *I = dyn_cast(M)) - TouchedInstructions.set(InstrDFS[I]); + TouchedInstructions.set(InstrDFS.lookup(I)); LeaderChanges.insert(M); } } @@ -1260,11 +1260,11 @@ void NewGVN::updateReachableEdge(BasicBlock *From, BasicBlock *To) { // they are the only thing that depend on new edges. Anything using their // values will get propagated to if necessary. if (MemoryAccess *MemPhi = MSSA->getMemoryAccess(To)) - TouchedInstructions.set(InstrDFS[MemPhi]); + TouchedInstructions.set(InstrDFS.lookup(MemPhi)); auto BI = To->begin(); while (isa(BI)) { - TouchedInstructions.set(InstrDFS[&*BI]); + TouchedInstructions.set(InstrDFS.lookup(&*BI)); ++BI; } } @@ -1891,7 +1891,7 @@ void NewGVN::convertDenseToDFSOrdered( VD.Val = D; // If it's an instruction, use the real local dfs number. if (auto *I = dyn_cast(D)) - VD.LocalNum = InstrDFS[I]; + VD.LocalNum = InstrDFS.lookup(I); else llvm_unreachable("Should have been an instruction"); @@ -1910,7 +1910,7 @@ void NewGVN::convertDenseToDFSOrdered( VD.LocalNum = InstrDFS.size() + 1; } else { IBlock = I->getParent(); - VD.LocalNum = InstrDFS[I]; + VD.LocalNum = InstrDFS.lookup(I); } DomTreeNode *DomNode = DT->getNode(IBlock); VD.DFSIn = DomNode->getDFSNumIn(); -- 2.50.1