Factor code out of TransformInternals into the Transform Utils library

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2515 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2002-05-07 18:09:15 +00:00
parent 0ed2e4b554
commit 5a4337a8fc
2 changed files with 0 additions and 88 deletions

View File

@ -10,7 +10,6 @@
#include "llvm/Analysis/Expressions.h"
#include "llvm/Function.h"
#include "llvm/iOther.h"
#include <algorithm>
// TargetData Hack: Eventually we will have annotations given to us by the
// backend so that we know stuff about type size and alignments. For now
@ -18,69 +17,6 @@
//
const TargetData TD("LevelRaise: Should be GCC though!");
// ReplaceInstWithValue - Replace all uses of an instruction (specified by BI)
// with a value, then remove and delete the original instruction.
//
void ReplaceInstWithValue(BasicBlock::InstListType &BIL,
BasicBlock::iterator &BI, Value *V) {
Instruction *I = *BI;
// Replaces all of the uses of the instruction with uses of the value
I->replaceAllUsesWith(V);
// Remove the unneccesary instruction now...
BIL.remove(BI);
// Make sure to propogate a name if there is one already...
if (I->hasName() && !V->hasName())
V->setName(I->getName(), BIL.getParent()->getSymbolTable());
// Remove the dead instruction now...
delete I;
}
// ReplaceInstWithInst - Replace the instruction specified by BI with the
// instruction specified by I. The original instruction is deleted and BI is
// updated to point to the new instruction.
//
void ReplaceInstWithInst(BasicBlock::InstListType &BIL,
BasicBlock::iterator &BI, Instruction *I) {
assert(I->getParent() == 0 &&
"ReplaceInstWithInst: Instruction already inserted into basic block!");
// Insert the new instruction into the basic block...
BI = BIL.insert(BI, I)+1; // Increment BI to point to instruction to delete
// Replace all uses of the old instruction, and delete it.
ReplaceInstWithValue(BIL, BI, I);
// Move BI back to point to the newly inserted instruction
--BI;
}
void ReplaceInstWithInst(Instruction *From, Instruction *To) {
BasicBlock *BB = From->getParent();
BasicBlock::InstListType &BIL = BB->getInstList();
BasicBlock::iterator BI = find(BIL.begin(), BIL.end(), From);
assert(BI != BIL.end() && "Inst not in it's parents BB!");
ReplaceInstWithInst(BIL, BI, To);
}
// InsertInstBeforeInst - Insert 'NewInst' into the basic block that 'Existing'
// is already in, and put it right before 'Existing'. This instruction should
// only be used when there is no iterator to Existing already around. The
// returned iterator points to the new instruction.
//
BasicBlock::iterator InsertInstBeforeInst(Instruction *NewInst,
Instruction *Existing) {
BasicBlock *BB = Existing->getParent();
BasicBlock::InstListType &BIL = BB->getInstList();
BasicBlock::iterator BI = find(BIL.begin(), BIL.end(), Existing);
assert(BI != BIL.end() && "Inst not in it's parents BB!");
return BIL.insert(BI, NewInst);
}
static const Type *getStructOffsetStep(const StructType *STy, unsigned &Offset,
std::vector<Value*> &Indices) {

View File

@ -39,30 +39,6 @@ static inline const CompositeType *getPointedToComposite(const Type *Ty) {
return PT ? dyn_cast<CompositeType>(PT->getElementType()) : 0;
}
// ReplaceInstWithValue - Replace all uses of an instruction (specified by BI)
// with a value, then remove and delete the original instruction.
//
void ReplaceInstWithValue(BasicBlock::InstListType &BIL,
BasicBlock::iterator &BI, Value *V);
// ReplaceInstWithInst - Replace the instruction specified by BI with the
// instruction specified by I. The original instruction is deleted and BI is
// updated to point to the new instruction.
//
void ReplaceInstWithInst(BasicBlock::InstListType &BIL,
BasicBlock::iterator &BI, Instruction *I);
void ReplaceInstWithInst(Instruction *From, Instruction *To);
// InsertInstBeforeInst - Insert 'NewInst' into the basic block that 'Existing'
// is already in, and put it right before 'Existing'. This instruction should
// only be used when there is no iterator to Existing already around. The
// returned iterator points to the new instruction.
//
BasicBlock::iterator InsertInstBeforeInst(Instruction *NewInst,
Instruction *Existing);
// ConvertableToGEP - This function returns true if the specified value V is
// a valid index into a pointer of type Ty. If it is valid, Idx is filled in
// with the values that would be appropriate to make this a getelementptr