summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-03-09 05:50:45 +0000
committerChris Lattner <sabre@nondot.org>2009-03-09 05:50:45 +0000
commit319e63234a32b502919874042712cd0457876d59 (patch)
tree5d848719824d80424c729c54d9b9c011f1bcd5f4
parent339c93b0743fca0796f08cc294c7bf9e592b78b2 (diff)
downloadllvm-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.h2
-rw-r--r--lib/VMCore/Globals.cpp14
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.