Add bswap intrinsics as documented in the Language Reference
[oota-llvm.git] / lib / VMCore / SymbolTableListTraitsImpl.h
index 36b08ab9f6fa9090f6fc4c88873670ec9dce715b..6d70401c89f732df7a4c031dcb7ba347bfb4efff 100644 (file)
@@ -1,5 +1,12 @@
 //===-- llvm/SymbolTableListTraitsImpl.h - Implementation ------*- C++ -*--===//
 //
+//                     The LLVM Compiler Infrastructure
+//
+// This file was developed by the LLVM research group and is distributed under
+// the University of Illinois Open Source License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
 // This file implements the stickier parts of the SymbolTableListTraits class,
 // and is explicitly instantiated where needed to avoid defining all this code
 // in a widely used header.
@@ -12,6 +19,8 @@
 #include "llvm/SymbolTableListTraits.h"
 #include "llvm/SymbolTable.h"
 
+namespace llvm {
+
 template<typename ValueSubClass, typename ItemParentClass,typename SymTabClass,
          typename SubClass>
 void SymbolTableListTraits<ValueSubClass,ItemParentClass,SymTabClass,SubClass>
@@ -20,20 +29,20 @@ void SymbolTableListTraits<ValueSubClass,ItemParentClass,SymTabClass,SubClass>
 
   // Remove all of the items from the old symtab..
   if (SymTabObject && !List.empty()) {
-    SymbolTable *SymTab = SymTabObject->getSymbolTable();
+    SymbolTable &SymTab = SymTabObject->getSymbolTable();
     for (typename iplist<ValueSubClass>::iterator I = List.begin();
          I != List.end(); ++I)
-      if (I->hasName()) SymTab->remove(I);
+      if (I->hasName()) SymTab.remove(I);
   }
 
   SymTabObject = STO;
 
   // Add all of the items to the new symtab...
   if (SymTabObject && !List.empty()) {
-    SymbolTable *SymTab = SymTabObject->getSymbolTableSure();
+    SymbolTable &SymTab = SymTabObject->getSymbolTable();
     for (typename iplist<ValueSubClass>::iterator I = List.begin();
          I != List.end(); ++I)
-      if (I->hasName()) SymTab->insert(I);
+      if (I->hasName()) SymTab.insert(I);
   }
 }
 
@@ -44,7 +53,7 @@ void SymbolTableListTraits<ValueSubClass,ItemParentClass,SymTabClass,SubClass>
   assert(V->getParent() == 0 && "Value already in a container!!");
   V->setParent(ItemParent);
   if (V->hasName() && SymTabObject)
-    SymTabObject->getSymbolTableSure()->insert(V);
+    SymTabObject->getSymbolTable().insert(V);
 }
 
 template<typename ValueSubClass, typename ItemParentClass, typename SymTabClass,
@@ -53,7 +62,7 @@ void SymbolTableListTraits<ValueSubClass,ItemParentClass,SymTabClass,SubClass>
 ::removeNodeFromList(ValueSubClass *V) {
   V->setParent(0);
   if (V->hasName() && SymTabObject)
-    SymTabObject->getSymbolTable()->remove(V);
+    SymTabObject->getSymbolTable().remove(V);
 }
 
 template<typename ValueSubClass, typename ItemParentClass, typename SymTabClass,
@@ -62,11 +71,11 @@ void SymbolTableListTraits<ValueSubClass,ItemParentClass,SymTabClass,SubClass>
 ::transferNodesFromList(iplist<ValueSubClass, ilist_traits<ValueSubClass> > &L2,
                         ilist_iterator<ValueSubClass> first,
                         ilist_iterator<ValueSubClass> last) {
-  // We only have to do work here if transfering instructions between BB's
+  // We only have to do work here if transferring instructions between BBs
   ItemParentClass *NewIP = ItemParent, *OldIP = L2.ItemParent;
   if (NewIP == OldIP) return;  // No work to do at all...
 
-  // We only have to update symbol table entries if we are transfering the
+  // We only have to update symbol table entries if we are transferring the
   // instructions to a different symtab object...
   SymTabClass *NewSTO = SymTabObject, *OldSTO = L2.SymTabObject;
   if (NewSTO != OldSTO) {
@@ -74,17 +83,19 @@ void SymbolTableListTraits<ValueSubClass,ItemParentClass,SymTabClass,SubClass>
       ValueSubClass &V = *first;
       bool HasName = V.hasName();
       if (OldSTO && HasName)
-        OldSTO->getSymbolTable()->remove(&V);
+        OldSTO->getSymbolTable().remove(&V);
       V.setParent(NewIP);
       if (NewSTO && HasName)
-        NewSTO->getSymbolTableSure()->insert(&V);
+        NewSTO->getSymbolTable().insert(&V);
     }
   } else {
-    // Just transfering between blocks in the same function, simply update the
+    // Just transferring between blocks in the same function, simply update the
     // parent fields in the instructions...
     for (; first != last; ++first)
       first->setParent(NewIP);
   }
 }
 
+} // End llvm namespace
+
 #endif