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:
parent
858f4e9362
commit
f96f4492e0
|
@ -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 = "",
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue