-
-
- static unsigned getInstListOffset() {
- BasicBlock *Obj = 0;
- return unsigned(reinterpret_cast<uintptr_t>(&Obj->InstList));
- }
-
-private:
- // getNext/Prev - Return the next or previous basic block in the list. Access
- // these with Function::iterator.
- BasicBlock *getNext() { return Next; }
- const BasicBlock *getNext() const { return Next; }
- BasicBlock *getPrev() { return Prev; }
- const BasicBlock *getPrev() const { return Prev; }
-};
-
-/// DummyInst - An instance of this class is used to mark the end of the
-/// instruction list. This is not a real instruction.
-class DummyInst : public Instruction {
-protected:
- static void destroyThis(DummyInst* v) {
- Instruction::destroyThis(v);
- }
- friend class Value;
-public:
- DummyInst();
-
- Instruction *clone() const {
- assert(0 && "Cannot clone EOL");abort();
- return 0;
- }
- const char *getOpcodeName() const { return "*end-of-list-inst*"; }
-
- // Methods for support type inquiry through isa, cast, and dyn_cast...
- static inline bool classof(const DummyInst *) { return true; }
- static inline bool classof(const Instruction *I) {
- return I->getOpcode() == OtherOpsEnd;
- }
- static inline bool classof(const Value *V) {
- return isa<Instruction>(V) && classof(cast<Instruction>(V));
- }