[llvm-commits] [llvm] r66403 - in /llvm/trunk: include/llvm/GlobalValue.h lib/VMCore/Globals.cpp

Chris Lattner sabre at nondot.org
Sun Mar 8 22:50:45 PDT 2009


Author: lattner
Date: Mon Mar  9 00:50:45 2009
New Revision: 66403

URL: http://llvm.org/viewvc/llvm-project?rev=66403&view=rev
Log:
make GlobalValue::removeDeadConstantUsers() const.

Modified:
    llvm/trunk/include/llvm/GlobalValue.h
    llvm/trunk/lib/VMCore/Globals.cpp

Modified: llvm/trunk/include/llvm/GlobalValue.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/GlobalValue.h?rev=66403&r1=66402&r2=66403&view=diff

==============================================================================
--- llvm/trunk/include/llvm/GlobalValue.h (original)
+++ llvm/trunk/include/llvm/GlobalValue.h Mon Mar  9 00:50:45 2009
@@ -205,7 +205,7 @@
   /// off of this global value, remove them.  This method is useful for clients
   /// that want to check to see if a global is unused, but don't want to deal
   /// with potentially dead constants hanging off of the globals.
-  void removeDeadConstantUsers();
+  void removeDeadConstantUsers() const;
 
   // Methods for support type inquiry through isa, cast, and dyn_cast:
   static inline bool classof(const GlobalValue *) { return true; }

Modified: llvm/trunk/lib/VMCore/Globals.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Globals.cpp?rev=66403&r1=66402&r2=66403&view=diff

==============================================================================
--- llvm/trunk/lib/VMCore/Globals.cpp (original)
+++ llvm/trunk/lib/VMCore/Globals.cpp Mon Mar  9 00:50:45 2009
@@ -28,17 +28,17 @@
 /// removeDeadUsersOfConstant - If the specified constantexpr is dead, remove
 /// it.  This involves recursively eliminating any dead users of the
 /// constantexpr.
-static bool removeDeadUsersOfConstant(Constant *C) {
+static bool removeDeadUsersOfConstant(const Constant *C) {
   if (isa<GlobalValue>(C)) return false; // Cannot remove this
 
   while (!C->use_empty()) {
-    Constant *User = dyn_cast<Constant>(C->use_back());
+    const Constant *User = dyn_cast<Constant>(C->use_back());
     if (!User) return false; // Non-constant usage;
     if (!removeDeadUsersOfConstant(User))
       return false; // Constant wasn't dead
   }
 
-  C->destroyConstant();
+  const_cast<Constant*>(C)->destroyConstant();
   return true;
 }
 
@@ -46,11 +46,11 @@
 /// off of this global value, remove them.  This method is useful for clients
 /// that want to check to see if a global is unused, but don't want to deal
 /// with potentially dead constants hanging off of the globals.
-void GlobalValue::removeDeadConstantUsers() {
-  Value::use_iterator I = use_begin(), E = use_end();
-  Value::use_iterator LastNonDeadUser = E;
+void GlobalValue::removeDeadConstantUsers() const {
+  Value::use_const_iterator I = use_begin(), E = use_end();
+  Value::use_const_iterator LastNonDeadUser = E;
   while (I != E) {
-    if (Constant *User = dyn_cast<Constant>(*I)) {
+    if (const Constant *User = dyn_cast<Constant>(*I)) {
       if (!removeDeadUsersOfConstant(User)) {
         // If the constant wasn't dead, remember that this was the last live use
         // and move on to the next constant.





More information about the llvm-commits mailing list