Now that setcondinst has been eliminated, we can mark Value::SubclassID

const and remove the ugly mutator methods.

llvm-svn: 32860
This commit is contained in:
Chris Lattner 2007-01-04 02:15:37 +00:00
parent 858f4e9362
commit f96f4492e0
3 changed files with 1 additions and 16 deletions

View File

@ -39,12 +39,6 @@ class Instruction : public User {
friend class SymbolTableListTraits<Instruction, BasicBlock, Function, friend class SymbolTableListTraits<Instruction, BasicBlock, Function,
ilist_traits<Instruction> >; ilist_traits<Instruction> >;
void setParent(BasicBlock *P); 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: protected:
Instruction(const Type *Ty, unsigned iType, Use *Ops, unsigned NumOps, Instruction(const Type *Ty, unsigned iType, Use *Ops, unsigned NumOps,
const std::string &Name = "", const std::string &Name = "",

View File

@ -48,7 +48,7 @@ class SymbolTable;
/// using this Value. /// using this Value.
/// @brief LLVM Value Representation /// @brief LLVM Value Representation
class Value { class Value {
unsigned short SubclassID; // Subclass identifier (for isa/dyn_cast) const unsigned short SubclassID; // Subclass identifier (for isa/dyn_cast)
protected: protected:
/// SubclassData - This member is defined by this class, but is not used for /// 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. /// 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. /// getRawType - This should only be used to implement the vmcore library.
/// ///
const Type *getRawType() const { return Ty.getRawType(); } 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) { inline std::ostream &operator<<(std::ostream &OS, const Value &V) {

View File

@ -49,10 +49,6 @@ Instruction::~Instruction() {
} }
void Instruction::setOpcode(unsigned opc) {
setValueType(Value::InstructionVal + opc);
}
void Instruction::setParent(BasicBlock *P) { void Instruction::setParent(BasicBlock *P) {
if (getParent()) { if (getParent()) {
if (!P) LeakDetector::addGarbageObject(this); if (!P) LeakDetector::addGarbageObject(this);