Skip to content

Commit

Permalink
Move code out of header files into .cpp files to make future changes …
Browse files Browse the repository at this point in the history
…easier

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3605 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
lattner committed Sep 6, 2002
1 parent fab8c79 commit bded132
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 2 deletions.
7 changes: 7 additions & 0 deletions lib/VMCore/BasicBlock.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,9 @@ iplist<Instruction> &ilist_traits<Instruction>::getList(BasicBlock *BB) {
template SymbolTableListTraits<Instruction, BasicBlock, Function>;


// BasicBlock ctor - If the function parameter is specified, the basic block is
// automatically inserted at the end of the function.
//
BasicBlock::BasicBlock(const std::string &name, Function *Parent)
: Value(Type::LabelTy, Value::BasicBlockVal, name) {
// Initialize the instlist...
Expand All @@ -62,6 +65,10 @@ BasicBlock::~BasicBlock() {
InstList.clear();
}

void BasicBlock::setParent(Function *parent) {
InstList.setParent(parent);
}

// Specialize setName to take care of symbol table majik
void BasicBlock::setName(const std::string &name, SymbolTable *ST) {
Function *P;
Expand Down
27 changes: 25 additions & 2 deletions lib/VMCore/Function.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}
Expand All @@ -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;
Expand All @@ -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) {
Expand Down Expand Up @@ -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
Expand Down
4 changes: 4 additions & 0 deletions lib/VMCore/Instruction.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ Instruction::Instruction(const Type *ty, unsigned it, const std::string &Name)
iType = it;
}

void Instruction::setParent(BasicBlock *P) {
Parent = P;
}

// Specialize setName to take care of symbol table majik
void Instruction::setName(const std::string &name, SymbolTable *ST) {
BasicBlock *P = 0; Function *PP = 0;
Expand Down

0 comments on commit bded132

Please sign in to comment.