diff options
author | Chris Lattner <sabre@nondot.org> | 2009-03-09 05:50:45 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-03-09 05:50:45 +0000 |
commit | 319e63234a32b502919874042712cd0457876d59 (patch) | |
tree | 5d848719824d80424c729c54d9b9c011f1bcd5f4 | |
parent | 339c93b0743fca0796f08cc294c7bf9e592b78b2 (diff) | |
download | llvm-319e63234a32b502919874042712cd0457876d59.tar.gz llvm-319e63234a32b502919874042712cd0457876d59.tar.bz2 llvm-319e63234a32b502919874042712cd0457876d59.tar.xz |
make GlobalValue::removeDeadConstantUsers() const.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66403 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/GlobalValue.h | 2 | ||||
-rw-r--r-- | lib/VMCore/Globals.cpp | 14 |
2 files changed, 8 insertions, 8 deletions
diff --git a/include/llvm/GlobalValue.h b/include/llvm/GlobalValue.h index 33f50c907b..45528b2713 100644 --- a/include/llvm/GlobalValue.h +++ b/include/llvm/GlobalValue.h @@ -205,7 +205,7 @@ public: /// 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; } diff --git a/lib/VMCore/Globals.cpp b/lib/VMCore/Globals.cpp index de1b247150..5abe1f9ac4 100644 --- a/lib/VMCore/Globals.cpp +++ b/lib/VMCore/Globals.cpp @@ -28,17 +28,17 @@ using namespace llvm; /// 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 @@ static bool removeDeadUsersOfConstant(Constant *C) { /// 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. |