aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-01-04 02:15:37 +0000
committerChris Lattner <sabre@nondot.org>2007-01-04 02:15:37 +0000
commit70d8d121eaa3a3982022f7146113416f9b3f26c1 (patch)
tree6d54c62649ff674bfbae5a6abad8e47294820434
parent898b2d52f9802fb8d9c426fa1c7e28c91cf2b1d8 (diff)
downloadexternal_llvm-70d8d121eaa3a3982022f7146113416f9b3f26c1.zip
external_llvm-70d8d121eaa3a3982022f7146113416f9b3f26c1.tar.gz
external_llvm-70d8d121eaa3a3982022f7146113416f9b3f26c1.tar.bz2
Now that setcondinst has been eliminated, we can mark Value::SubclassID
const and remove the ugly mutator methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32860 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/Instruction.h6
-rw-r--r--include/llvm/Value.h7
-rw-r--r--lib/VMCore/Instruction.cpp4
3 files changed, 1 insertions, 16 deletions
diff --git a/include/llvm/Instruction.h b/include/llvm/Instruction.h
index a0376c7..3e9f749 100644
--- a/include/llvm/Instruction.h
+++ b/include/llvm/Instruction.h
@@ -39,12 +39,6 @@ class Instruction : public User {
friend class SymbolTableListTraits<Instruction, BasicBlock, Function,
ilist_traits<Instruction> >;
void setParent(BasicBlock *P);
-
-private:
- // FIXME: This is a dirty hack. Setcc instructions shouldn't encode the CC
- // into the opcode field. When they don't, this will be unneeded.
- void setOpcode(unsigned NewOpcode);
- friend class BinaryOperator;
protected:
Instruction(const Type *Ty, unsigned iType, Use *Ops, unsigned NumOps,
const std::string &Name = "",
diff --git a/include/llvm/Value.h b/include/llvm/Value.h
index 262880a..0c3ddf6 100644
--- a/include/llvm/Value.h
+++ b/include/llvm/Value.h
@@ -48,7 +48,7 @@ class SymbolTable;
/// using this Value.
/// @brief LLVM Value Representation
class Value {
- unsigned short SubclassID; // Subclass identifier (for isa/dyn_cast)
+ const unsigned short SubclassID; // Subclass identifier (for isa/dyn_cast)
protected:
/// SubclassData - This member is defined by this class, but is not used for
/// anything. Subclasses can use it to hold whatever state they find useful.
@@ -186,11 +186,6 @@ public:
/// getRawType - This should only be used to implement the vmcore library.
///
const Type *getRawType() const { return Ty.getRawType(); }
-
-private:
- /// FIXME: this is a gross hack, needed by another gross hack. Eliminate!
- void setValueType(unsigned short VT) { SubclassID = VT; }
- friend class Instruction;
};
inline std::ostream &operator<<(std::ostream &OS, const Value &V) {
diff --git a/lib/VMCore/Instruction.cpp b/lib/VMCore/Instruction.cpp
index 2891269..b2eb87d 100644
--- a/lib/VMCore/Instruction.cpp
+++ b/lib/VMCore/Instruction.cpp
@@ -49,10 +49,6 @@ Instruction::~Instruction() {
}
-void Instruction::setOpcode(unsigned opc) {
- setValueType(Value::InstructionVal + opc);
-}
-
void Instruction::setParent(BasicBlock *P) {
if (getParent()) {
if (!P) LeakDetector::addGarbageObject(this);