summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2004-10-11 22:21:13 +0000
committerChris Lattner <sabre@nondot.org>2004-10-11 22:21:13 +0000
commitb92f50fe6091a7a12f54f9884529b1127b1a14e5 (patch)
tree020edb72423cf36bd65161999f41c9f426203482 /include
parentc9b938065aed1d6a613daa296d0cdb9257ee6ffa (diff)
downloadllvm-b92f50fe6091a7a12f54f9884529b1127b1a14e5.tar.gz
llvm-b92f50fe6091a7a12f54f9884529b1127b1a14e5.tar.bz2
llvm-b92f50fe6091a7a12f54f9884529b1127b1a14e5.tar.xz
Add long overdue methods
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16921 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/BasicBlock.h12
-rw-r--r--include/llvm/Function.h11
-rw-r--r--include/llvm/GlobalVariable.h10
-rw-r--r--include/llvm/Instruction.h14
4 files changed, 45 insertions, 2 deletions
diff --git a/include/llvm/BasicBlock.h b/include/llvm/BasicBlock.h
index 9c82da266e..2a18ba837e 100644
--- a/include/llvm/BasicBlock.h
+++ b/include/llvm/BasicBlock.h
@@ -95,6 +95,18 @@ public:
TerminatorInst *getTerminator();
const TerminatorInst *const getTerminator() const;
+ /// removeFromParent - This method unlinks 'this' from the containing
+ /// function, but does not delete it.
+ ///
+ void removeFromParent();
+
+ /// eraseFromParent - This method unlinks 'this' from the containing function
+ /// and deletes it.
+ ///
+ void eraseFromParent();
+
+
+
//===--------------------------------------------------------------------===//
/// Instruction iterator methods
///
diff --git a/include/llvm/Function.h b/include/llvm/Function.h
index 9e17f2602c..63b533461a 100644
--- a/include/llvm/Function.h
+++ b/include/llvm/Function.h
@@ -114,6 +114,17 @@ public:
setLinkage(ExternalLinkage);
}
+ /// removeFromParent - This method unlinks 'this' from the containing module,
+ /// but does not delete it.
+ ///
+ void removeFromParent();
+
+ /// eraseFromParent - This method unlinks 'this' from the containing module
+ /// and deletes it.
+ ///
+ void eraseFromParent();
+
+
// getNext/Prev - Return the next or previous function in the list. These
// methods should never be used directly, and are only used to implement the
// function list as part of the module.
diff --git a/include/llvm/GlobalVariable.h b/include/llvm/GlobalVariable.h
index dd6f24d7d0..99c39f1796 100644
--- a/include/llvm/GlobalVariable.h
+++ b/include/llvm/GlobalVariable.h
@@ -97,6 +97,16 @@ public:
///
bool isConstant() const { return isConstantGlobal; }
void setConstant(bool Value) { isConstantGlobal = Value; }
+
+ /// removeFromParent - This method unlinks 'this' from the containing module,
+ /// but does not delete it.
+ ///
+ void removeFromParent();
+
+ /// eraseFromParent - This method unlinks 'this' from the containing module
+ /// and deletes it.
+ ///
+ void eraseFromParent();
/// Override Constant's implementation of this method so we can
/// replace constant initializers.
diff --git a/include/llvm/Instruction.h b/include/llvm/Instruction.h
index 85f6cdb0b1..8d49870e4d 100644
--- a/include/llvm/Instruction.h
+++ b/include/llvm/Instruction.h
@@ -57,6 +57,10 @@ public:
// Specialize setName to handle symbol table majik...
virtual void setName(const std::string &name, SymbolTable *ST = 0);
+ /// mayWriteToMemory - Return true if this instruction may modify memory.
+ ///
+ virtual bool mayWriteToMemory() const { return false; }
+
/// clone() - Create a copy of 'this' instruction that is identical in all
/// ways except the following:
/// * The instruction has no parent
@@ -76,9 +80,15 @@ public:
Instruction *getPrev() { return Prev; }
const Instruction *getPrev() const { return Prev; }
- /// mayWriteToMemory - Return true if this instruction may modify memory.
+ /// removeFromParent - This method unlinks 'this' from the containing basic
+ /// block, but does not delete it.
///
- virtual bool mayWriteToMemory() const { return false; }
+ void removeFromParent();
+
+ /// eraseFromParent - This method unlinks 'this' from the containing basic
+ /// block and deletes it.
+ ///
+ void eraseFromParent();
// ---------------------------------------------------------------------------
/// Subclass classification... getOpcode() returns a member of