summaryrefslogtreecommitdiff
path: root/include/llvm/Instruction.h
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2002-02-03 06:58:15 +0000
committerChris Lattner <sabre@nondot.org>2002-02-03 06:58:15 +0000
commitb39346684255c79e2bca5afe28a82a1b8c0372f3 (patch)
tree2610e14a656fa1dab398e87de91d09e17bf70658 /include/llvm/Instruction.h
parent17a5a1ea38065da7774d109bce358b7e7dbe8964 (diff)
downloadllvm-b39346684255c79e2bca5afe28a82a1b8c0372f3.tar.gz
llvm-b39346684255c79e2bca5afe28a82a1b8c0372f3.tar.bz2
llvm-b39346684255c79e2bca5afe28a82a1b8c0372f3.tar.xz
* Inline destructor
* Remove MachineCodeForVMInstr support (it's now an annotation) * Remove dropAllReferences override (just use User's) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1633 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Instruction.h')
-rw-r--r--include/llvm/Instruction.h27
1 files changed, 3 insertions, 24 deletions
diff --git a/include/llvm/Instruction.h b/include/llvm/Instruction.h
index efcecc9303..f0917d381a 100644
--- a/include/llvm/Instruction.h
+++ b/include/llvm/Instruction.h
@@ -10,23 +10,21 @@
#include "llvm/User.h"
-class Type;
class BasicBlock;
class Method;
-class MachineInstr;
-class MachineCodeForVMInstr;
class Instruction : public User {
BasicBlock *Parent;
- MachineCodeForVMInstr* machineInstrVec;
friend class ValueHolder<Instruction,BasicBlock,Method>;
inline void setParent(BasicBlock *P) { Parent = P; }
protected:
unsigned iType; // InstructionType
public:
Instruction(const Type *Ty, unsigned iType, const std::string &Name = "");
- virtual ~Instruction(); // Virtual dtor == good.
+ virtual ~Instruction() {
+ assert(Parent == 0 && "Instruction still embedded in basic block!");
+ }
// Specialize setName to handle symbol table majik...
virtual void setName(const std::string &name, SymbolTable *ST = 0);
@@ -45,17 +43,6 @@ public:
virtual bool hasSideEffects() const { return false; } // Memory & Call insts
// ---------------------------------------------------------------------------
- // Machine code accessors...
- //
- inline MachineCodeForVMInstr &getMachineInstrVec() const {
- return *machineInstrVec;
- }
-
- // Add a machine instruction used to implement this instruction
- //
- void addMachineInstruction(MachineInstr* minstr);
-
- // ---------------------------------------------------------------------------
// Subclass classification... getInstType() returns a member of
// one of the enums that is coming soon (down below)...
//
@@ -76,14 +63,6 @@ public:
return iType >= FirstBinaryOp && iType < NumBinaryOps;
}
- // dropAllReferences() - This function is in charge of "letting go" of all
- // objects that this Instruction refers to. This first lets go of all
- // references to hidden values generated code for this instruction,
- // and then drops all references to its operands.
- //
- void dropAllReferences();
-
-
// Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const Instruction *I) { return true; }
static inline bool classof(const Value *V) {