diff options
author | Chris Lattner <sabre@nondot.org> | 2002-09-06 21:33:15 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-09-06 21:33:15 +0000 |
commit | bded132d00ed626a6541b67ad101ef0fd47d3491 (patch) | |
tree | c6e5f14611cde979fe2c3f85257e4a402aedc53b /lib/VMCore/Function.cpp | |
parent | fab8c796f6754962f5732145248303e3a1f7b96b (diff) |
Move code out of header files into .cpp files to make future changes easier
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3605 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/VMCore/Function.cpp')
-rw-r--r-- | lib/VMCore/Function.cpp | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/lib/VMCore/Function.cpp b/lib/VMCore/Function.cpp index 3ad7a66c5c..59017178f6 100644 --- a/lib/VMCore/Function.cpp +++ b/lib/VMCore/Function.cpp @@ -10,6 +10,10 @@ #include "llvm/iOther.h" #include "SymbolTableListTraitsImpl.h" +BasicBlock *ilist_traits<BasicBlock>::createNode() { + return new BasicBlock(); +} + iplist<BasicBlock> &ilist_traits<BasicBlock>::getList(Function *F) { return F->getBasicBlockList(); } @@ -31,6 +35,14 @@ template SymbolTableListTraits<BasicBlock, Function, Function>; // Argument Implementation //===----------------------------------------------------------------------===// +Argument::Argument(const Type *Ty, const std::string &Name = "", Function *Par) + : Value(Ty, Value::ArgumentVal, Name) { + Parent = 0; + if (Par) + Par->getArgumentList().push_back(this); +} + + // Specialize setName to take care of symbol table majik void Argument::setName(const std::string &name, SymbolTable *ST) { Function *P; @@ -41,11 +53,15 @@ void Argument::setName(const std::string &name, SymbolTable *ST) { if (P && hasName()) P->getSymbolTable()->insert(this); } +void Argument::setParent(Function *parent) { + Parent = parent; +} + + //===----------------------------------------------------------------------===// // Function Implementation //===----------------------------------------------------------------------===// - Function::Function(const FunctionType *Ty, bool isInternal, const std::string &name, Module *ParentModule) : GlobalValue(PointerType::get(Ty), Value::FunctionVal, isInternal, name) { @@ -136,10 +152,17 @@ void Function::dropAllReferences() { GlobalVariable::GlobalVariable(const Type *Ty, bool constant, bool isIntern, Constant *Initializer, - const std::string &Name) + const std::string &Name, Module *ParentModule) : GlobalValue(PointerType::get(Ty), Value::GlobalVariableVal, isIntern, Name), isConstantGlobal(constant) { if (Initializer) Operands.push_back(Use((Value*)Initializer, this)); + + if (ParentModule) + ParentModule->getGlobalList().push_back(this); +} + +void GlobalVariable::setParent(Module *parent) { + Parent = parent; } // Specialize setName to take care of symbol table majik |