[llvm-commits] CVS: llvm/lib/VMCore/Constants.cpp
LLVM
llvm at cs.uiuc.edu
Sat Jul 17 16:48:43 PDT 2004
Changes in directory llvm/lib/VMCore:
Constants.cpp updated: 1.94 -> 1.95
---
Log message:
bug 122: http://llvm.cs.uiuc.edu/PR122 :
- Replace ConstantPointerRef usage with GlobalValue usage
- Minimize redundant isa<GlobalValue> usage
- Correct isa<Constant> for GlobalValue subclass
- Delete ConstantPointerRef member function implementations
---
Diffs of the changes: (+5 -57)
Index: llvm/lib/VMCore/Constants.cpp
diff -u llvm/lib/VMCore/Constants.cpp:1.94 llvm/lib/VMCore/Constants.cpp:1.95
--- llvm/lib/VMCore/Constants.cpp:1.94 Mon Jul 12 15:35:11 2004
+++ llvm/lib/VMCore/Constants.cpp Sat Jul 17 18:48:33 2004
@@ -14,6 +14,7 @@
#include "llvm/Constants.h"
#include "ConstantFolding.h"
#include "llvm/DerivedTypes.h"
+#include "llvm/GlobalValue.h"
#include "llvm/iMemory.h"
#include "llvm/SymbolTable.h"
#include "llvm/Module.h"
@@ -54,8 +55,8 @@
<< *V << "\n\n";
#endif
assert(isa<Constant>(V) && "References remain to Constant being destroyed");
- Constant *CPV = cast<Constant>(V);
- CPV->destroyConstant();
+ Constant *CV = cast<Constant>(V);
+ CV->destroyConstant();
// The constant should remove itself from our use list...
assert((use_empty() || use_back() != V) && "Constant not removed!");
@@ -267,12 +268,6 @@
}
}
-ConstantPointerRef::ConstantPointerRef(GlobalValue *GV)
- : Constant(GV->getType()) {
- Operands.reserve(1);
- Operands.push_back(Use(GV, this));
-}
-
ConstantExpr::ConstantExpr(unsigned Opcode, Constant *C, const Type *Ty)
: Constant(Ty), iType(Opcode) {
Operands.reserve(1);
@@ -420,16 +415,10 @@
}
bool ConstantPointerNull::classof(const Constant *CPV) {
- return isa<PointerType>(CPV->getType()) && !isa<ConstantExpr>(CPV) &&
+ return !isa<GlobalValue>(CPV) && isa<PointerType>(CPV->getType()) && !isa<ConstantExpr>(CPV) &&
CPV->getNumOperands() == 0;
}
-bool ConstantPointerRef::classof(const Constant *CPV) {
- return isa<PointerType>(CPV->getType()) && !isa<ConstantExpr>(CPV) &&
- CPV->getNumOperands() == 1;
-}
-
-
//===----------------------------------------------------------------------===//
// isValueValidForType implementations
@@ -532,31 +521,6 @@
destroyConstant();
}
-void ConstantPointerRef::replaceUsesOfWithOnConstant(Value *From, Value *To,
- bool DisableChecking) {
- if (isa<GlobalValue>(To)) {
- assert(From == getOperand(0) && "Doesn't contain from!");
- ConstantPointerRef *Replacement =
- ConstantPointerRef::get(cast<GlobalValue>(To));
-
- // Everyone using this now uses the replacement...
- if (DisableChecking)
- uncheckedReplaceAllUsesWith(Replacement);
- else
- replaceAllUsesWith(Replacement);
-
- } else {
- // Just replace ourselves with the To value specified.
- if (DisableChecking)
- uncheckedReplaceAllUsesWith(To);
- else
- replaceAllUsesWith(To);
- }
-
- // Delete the old constant!
- destroyConstant();
-}
-
void ConstantExpr::replaceUsesOfWithOnConstant(Value *From, Value *ToV,
bool DisableChecking) {
assert(isa<Constant>(ToV) && "Cannot make Constant refer to non-constant!");
@@ -1050,23 +1014,6 @@
}
-//---- ConstantPointerRef::get() implementation...
-//
-ConstantPointerRef *ConstantPointerRef::get(GlobalValue *GV) {
- assert(GV->getParent() && "Global Value must be attached to a module!");
-
- // The Module handles the pointer reference sharing...
- return GV->getParent()->getConstantPointerRef(GV);
-}
-
-// destroyConstant - Remove the constant from the constant table...
-//
-void ConstantPointerRef::destroyConstant() {
- getValue()->getParent()->destroyConstantPointerRef(this);
- destroyConstantImpl();
-}
-
-
//---- ConstantExpr::get() implementations...
//
typedef std::pair<unsigned, std::vector<Constant*> > ExprMapKeyType;
@@ -1259,3 +1206,4 @@
const char *ConstantExpr::getOpcodeName() const {
return Instruction::getOpcodeName(getOpcode());
}
+
More information about the llvm-commits
mailing list