From: Chris Lattner Date: Fri, 2 Feb 2007 22:36:16 +0000 (+0000) Subject: Switch this back to using an std::map. DenseMap entries are getting invalidated X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=c1ec780d1eda06a1c753bd414df5af73fad0d66c;p=oota-llvm.git Switch this back to using an std::map. DenseMap entries are getting invalidated git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33799 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/Scalar/SCCP.cpp b/lib/Transforms/Scalar/SCCP.cpp index 0ea005fda94..411d9023975 100644 --- a/lib/Transforms/Scalar/SCCP.cpp +++ b/lib/Transforms/Scalar/SCCP.cpp @@ -138,7 +138,7 @@ public: /// class SCCPSolver : public InstVisitor { SmallSet BBExecutable;// The basic blocks that are executable - DenseMap ValueState; // The state each value is in. + std::map ValueState; // The state each value is in. /// GlobalValue - If we are tracking any values for the contents of a global /// variable, we keep a mapping from the constant accessor to the element of @@ -222,7 +222,7 @@ public: /// getValueMapping - Once we have solved for constants, return the mapping of /// LLVM values to LatticeVals. - DenseMap &getValueMapping() { + std::map &getValueMapping() { return ValueState; } @@ -303,7 +303,7 @@ private: // Instruction object, then use this accessor to get its value from the map. // inline LatticeVal &getValueState(Value *V) { - DenseMap::iterator I = ValueState.find(V); + std::map::iterator I = ValueState.find(V); if (I != ValueState.end()) return I->second; // Common case, in the map if (Constant *C = dyn_cast(V)) { @@ -1364,7 +1364,7 @@ bool SCCP::runOnFunction(Function &F) { Solver.MarkBlockExecutable(F.begin()); // Mark all arguments to the function as being overdefined. - DenseMap &Values = Solver.getValueMapping(); + std::map &Values = Solver.getValueMapping(); for (Function::arg_iterator AI = F.arg_begin(), E = F.arg_end(); AI != E; ++AI) Values[AI].markOverdefined(); @@ -1485,7 +1485,7 @@ bool IPSCCP::runOnModule(Module &M) { // Loop over all functions, marking arguments to those with their addresses // taken or that are external as overdefined. // - DenseMap &Values = Solver.getValueMapping(); + std::map &Values = Solver.getValueMapping(); for (Module::iterator F = M.begin(), E = M.end(); F != E; ++F) if (!F->hasInternalLinkage() || AddressIsTaken(F)) { if (!F->isDeclaration())