Merged ValueState and ValueStateImpl into just ValueState, with GRExprEngine::StateTy just becoming ValueState*.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47714 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Analysis/ValueState.cpp b/Analysis/ValueState.cpp
index c552bc9..dac9211 100644
--- a/Analysis/ValueState.cpp
+++ b/Analysis/ValueState.cpp
@@ -1,4 +1,4 @@
-//= ValueState.cpp - Path-Sens. "State" for tracking valuues -----*- C++ -*--=//
+//= ValueState*cpp - Path-Sens. "State" for tracking valuues -----*- C++ -*--=//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -7,7 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 //
-//  This files defines SymbolID, ExprBindKey, and ValueState.
+//  This files defines SymbolID, ExprBindKey, and ValueState*
 //
 //===----------------------------------------------------------------------===//
 
@@ -19,19 +19,19 @@
 bool ValueState::isNotEqual(SymbolID sym, const llvm::APSInt& V) const {
 
   // Retrieve the NE-set associated with the given symbol.
-  ConstNotEqTy::TreeTy* T = Data->ConstNotEq.SlimFind(sym);
+  ConstNotEqTy::TreeTy* T = ConstNotEq.SlimFind(sym);
 
   // See if V is present in the NE-set.
   return T ? T->getValue().second.contains(&V) : false;
 }
 
 const llvm::APSInt* ValueState::getSymVal(SymbolID sym) const {
-  ConstEqTy::TreeTy* T = Data->ConstEq.SlimFind(sym);
+  ConstEqTy::TreeTy* T = ConstEq.SlimFind(sym);
   return T ? T->getValue().second : NULL;  
 }
 
-ValueState
-ValueStateManager::RemoveDeadBindings(ValueState St, Stmt* Loc,
+ValueState*
+ValueStateManager::RemoveDeadBindings(ValueState* St, Stmt* Loc,
                                       const LiveVariables& Liveness) {  
   
   // This code essentially performs a "mark-and-sweep" of the VariableBindings.
@@ -45,14 +45,14 @@
   llvm::SmallPtrSet<ValueDecl*, 10> Marked;  
   llvm::SmallSet<SymbolID, 20> MarkedSymbols;
   
-  ValueStateImpl NewSt = *St;
+  ValueState NewSt = *St;
   
   // Drop bindings for subexpressions.
   NewSt.SubExprBindings = EXFactory.GetEmptyMap();
   
   // Iterate over the block-expr bindings.
 
-  for (ValueState::beb_iterator I = St.beb_begin(), E = St.beb_end();
+  for (ValueState::beb_iterator I = St->beb_begin(), E = St->beb_end();
                                                     I!=E ; ++I) {    
     Expr* BlkExpr = I.getKey();
     
@@ -81,7 +81,7 @@
 
   // Iterate over the variable bindings.
 
-  for (ValueState::vb_iterator I = St.vb_begin(), E = St.vb_end(); I!=E ; ++I)
+  for (ValueState::vb_iterator I = St->vb_begin(), E = St->vb_end(); I!=E ; ++I)
     if (Liveness.isLive(Loc, I.getKey())) {
       WList.push_back(I.getKey());
       
@@ -128,16 +128,16 @@
   }
   
   // Remove dead variable bindings.
-  for (ValueState::vb_iterator I = St.vb_begin(), E = St.vb_end(); I!=E ; ++I)
+  for (ValueState::vb_iterator I = St->vb_begin(), E = St->vb_end(); I!=E ; ++I)
     if (!Marked.count(I.getKey()))
       NewSt.VarBindings = Remove(NewSt, I.getKey());
   
   // Remove dead symbols.
-  for (ValueState::ce_iterator I = St.ce_begin(), E=St.ce_end(); I!=E; ++I)
+  for (ValueState::ce_iterator I = St->ce_begin(), E=St->ce_end(); I!=E; ++I)
     if (!MarkedSymbols.count(I.getKey()))
       NewSt.ConstEq = CEFactory.Remove(NewSt.ConstEq, I.getKey());
   
-  for (ValueState::cne_iterator I = St.cne_begin(), E=St.cne_end(); I!=E; ++I)
+  for (ValueState::cne_iterator I = St->cne_begin(), E=St->cne_end(); I!=E; ++I)
     if (!MarkedSymbols.count(I.getKey()))
       NewSt.ConstNotEq = CNEFactory.Remove(NewSt.ConstNotEq, I.getKey());
   
@@ -145,7 +145,7 @@
 }
 
 
-RVal ValueStateManager::GetRVal(ValueState St, const LVal& LV, QualType T) {
+RVal ValueStateManager::GetRVal(ValueState* St, LVal LV, QualType T) {
   
   if (isa<UnknownVal>(LV))
     return UnknownVal();
@@ -184,8 +184,7 @@
   return UnknownVal();
 }
 
-ValueState
-ValueStateManager::AddNE(ValueState St, SymbolID sym, const llvm::APSInt& V) {
+ValueState* ValueStateManager::AddNE(ValueState* St, SymbolID sym, const llvm::APSInt& V) {
 
   // First, retrieve the NE-set associated with the given symbol.
   ValueState::ConstNotEqTy::TreeTy* T = St->ConstNotEq.SlimFind(sym);  
@@ -195,25 +194,24 @@
   S = ISetFactory.Add(S, &V);
   
   // Create a new state with the old binding replaced.
-  ValueStateImpl NewSt = *St;
+  ValueState NewSt = *St;
   NewSt.ConstNotEq = CNEFactory.Add(NewSt.ConstNotEq, sym, S);
     
   // Get the persistent copy.
   return getPersistentState(NewSt);
 }
 
-ValueState
-ValueStateManager::AddEQ(ValueState St, SymbolID sym, const llvm::APSInt& V) {
+ValueState* ValueStateManager::AddEQ(ValueState* St, SymbolID sym, const llvm::APSInt& V) {
 
   // Create a new state with the old binding replaced.
-  ValueStateImpl NewSt = *St;
+  ValueState NewSt = *St;
   NewSt.ConstEq = CEFactory.Add(NewSt.ConstEq, sym, &V);
   
   // Get the persistent copy.
   return getPersistentState(NewSt);
 }
 
-RVal ValueStateManager::GetRVal(ValueState St, Expr* E) {
+RVal ValueStateManager::GetRVal(ValueState* St, Expr* E) {
 
   for (;;) {
     
@@ -336,7 +334,7 @@
   return T ? T->getValue().second : UnknownVal();
 }
 
-RVal ValueStateManager::GetBlkExprRVal(ValueState St, Expr* E) {
+RVal ValueStateManager::GetBlkExprRVal(ValueState* St, Expr* E) {
   
   E = E->IgnoreParens();
   
@@ -358,7 +356,7 @@
   }
 }
 
-RVal ValueStateManager::GetLVal(ValueState St, Expr* E) {
+RVal ValueStateManager::GetLVal(ValueState* St, Expr* E) {
   
   E = E->IgnoreParens();
 
@@ -386,8 +384,8 @@
   return GetRVal(St, E);
 }
 
-ValueState 
-ValueStateManager::SetRVal(ValueState St, Expr* E, RVal V,
+ValueState*
+ValueStateManager::SetRVal(ValueState* St, Expr* E, RVal V,
                            bool isBlkExpr, bool Invalidate) {
   
   assert (E);
@@ -396,7 +394,7 @@
     
     if (Invalidate) {
       
-      ValueStateImpl NewSt = *St;
+      ValueState NewSt = *St;
       
       if (isBlkExpr)
         NewSt.BlockExprBindings = EXFactory.Remove(NewSt.BlockExprBindings, E);
@@ -409,7 +407,7 @@
     return St;
   }
   
-  ValueStateImpl NewSt = *St;
+  ValueState NewSt = *St;
   
   if (isBlkExpr) {
     NewSt.BlockExprBindings = EXFactory.Add(NewSt.BlockExprBindings, E, V);
@@ -422,7 +420,7 @@
 }
 
 
-ValueState ValueStateManager::SetRVal(ValueState St, LVal LV, RVal V) {
+ValueState* ValueStateManager::SetRVal(ValueState* St, LVal LV, RVal V) {
   
   switch (LV.getSubKind()) {
       
@@ -437,34 +435,34 @@
   }
 }
 
-void ValueStateManager::BindVar(ValueStateImpl& StImpl, VarDecl* D, RVal V) {
+void ValueStateManager::BindVar(ValueState& StImpl, VarDecl* D, RVal V) {
   StImpl.VarBindings = VBFactory.Add(StImpl.VarBindings, D, V);
 }
 
-ValueState ValueStateManager::BindVar(ValueState St, VarDecl* D, RVal V) {
+ValueState* ValueStateManager::BindVar(ValueState* St, VarDecl* D, RVal V) {
   
   // Create a new state with the old binding removed.
-  ValueStateImpl NewSt = *St;  
+  ValueState NewSt = *St;  
   NewSt.VarBindings = VBFactory.Add(NewSt.VarBindings, D, V);
   
   // Get the persistent copy.
   return getPersistentState(NewSt);
 }
 
-ValueState ValueStateManager::UnbindVar(ValueState St, VarDecl* D) {
+ValueState* ValueStateManager::UnbindVar(ValueState* St, VarDecl* D) {
   
   // Create a new state with the old binding removed.
-  ValueStateImpl NewSt = *St;
+  ValueState NewSt = *St;
   NewSt.VarBindings = VBFactory.Remove(NewSt.VarBindings, D);
   
   // Get the persistent copy.
   return getPersistentState(NewSt);
 }
 
-ValueState ValueStateManager::getInitialState() {
+ValueState* ValueStateManager::getInitialState() {
 
   // Create a state with empty variable bindings.
-  ValueStateImpl StateImpl(EXFactory.GetEmptyMap(),
+  ValueState StateImpl(EXFactory.GetEmptyMap(),
                            VBFactory.GetEmptyMap(),
                            CNEFactory.GetEmptyMap(),
                            CEFactory.GetEmptyMap());
@@ -472,17 +470,17 @@
   return getPersistentState(StateImpl);
 }
 
-ValueState ValueStateManager::getPersistentState(const ValueStateImpl &State) {
+ValueState* ValueStateManager::getPersistentState(ValueState& State) {
   
   llvm::FoldingSetNodeID ID;
   State.Profile(ID);  
   void* InsertPos;
   
-  if (ValueStateImpl* I = StateSet.FindNodeOrInsertPos(ID, InsertPos))
+  if (ValueState* I = StateSet.FindNodeOrInsertPos(ID, InsertPos))
     return I;
   
-  ValueStateImpl* I = (ValueStateImpl*) Alloc.Allocate<ValueStateImpl>();
-  new (I) ValueStateImpl(State);  
+  ValueState* I = (ValueState*) Alloc.Allocate<ValueState>();
+  new (I) ValueState(State);  
   StateSet.InsertNode(I, InsertPos);
   return I;
 }
@@ -541,12 +539,12 @@
   
   // Print equality constraints.
   
-  if (!Data->ConstEq.isEmpty()) {
+  if (!ConstEq.isEmpty()) {
   
     Out << "\\l\\|'==' constraints:";
   
-    for (ConstEqTy::iterator I = Data->ConstEq.begin(),
-                             E = Data->ConstEq.end();   I!=E; ++I) {
+    for (ConstEqTy::iterator I = ConstEq.begin(),
+                             E = ConstEq.end();   I!=E; ++I) {
       
       Out << "\\l $" << I.getKey()
           << " : "   << I.getData()->toString();
@@ -555,12 +553,12 @@
 
   // Print != constraints.
     
-  if (!Data->ConstNotEq.isEmpty()) {
+  if (!ConstNotEq.isEmpty()) {
   
     Out << "\\l\\|'!=' constraints:";
   
-    for (ConstNotEqTy::iterator I  = Data->ConstNotEq.begin(),
-                                EI = Data->ConstNotEq.end();   I != EI; ++I) {
+    for (ConstNotEqTy::iterator I  = ConstNotEq.begin(),
+                                EI = ConstNotEq.end();   I != EI; ++I) {
     
       Out << "\\l $" << I.getKey() << " : ";
       isFirst = true;