Add long overdue methods

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16921 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2004-10-11 22:21:13 +00:00
parent c9b938065a
commit b92f50fe60
4 changed files with 45 additions and 2 deletions

View File

@ -95,6 +95,18 @@ public:
TerminatorInst *getTerminator(); TerminatorInst *getTerminator();
const TerminatorInst *const getTerminator() const; 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 /// Instruction iterator methods
/// ///

View File

@ -114,6 +114,17 @@ public:
setLinkage(ExternalLinkage); 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 // 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 // methods should never be used directly, and are only used to implement the
// function list as part of the module. // function list as part of the module.

View File

@ -97,6 +97,16 @@ public:
/// ///
bool isConstant() const { return isConstantGlobal; } bool isConstant() const { return isConstantGlobal; }
void setConstant(bool Value) { isConstantGlobal = Value; } 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 /// Override Constant's implementation of this method so we can
/// replace constant initializers. /// replace constant initializers.

View File

@ -57,6 +57,10 @@ public:
// Specialize setName to handle symbol table majik... // Specialize setName to handle symbol table majik...
virtual void setName(const std::string &name, SymbolTable *ST = 0); 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 /// clone() - Create a copy of 'this' instruction that is identical in all
/// ways except the following: /// ways except the following:
/// * The instruction has no parent /// * The instruction has no parent
@ -76,9 +80,15 @@ public:
Instruction *getPrev() { return Prev; } Instruction *getPrev() { return Prev; }
const Instruction *getPrev() const { 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 /// Subclass classification... getOpcode() returns a member of