mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-27 16:17:17 +00:00
Push LLVMContexts through the IntegerType APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78948 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -225,7 +225,8 @@ void GlobalRandomCounter::ProcessChoicePoint(BasicBlock* bb) {
|
||||
|
||||
//reset counter
|
||||
BasicBlock* oldnext = t->getSuccessor(0);
|
||||
BasicBlock* resetblock = BasicBlock::Create("reset", oldnext->getParent(),
|
||||
BasicBlock* resetblock = BasicBlock::Create(bb->getContext(),
|
||||
"reset", oldnext->getParent(),
|
||||
oldnext);
|
||||
TerminatorInst* t2 = BranchInst::Create(oldnext, resetblock);
|
||||
t->setSuccessor(0, resetblock);
|
||||
@@ -298,7 +299,8 @@ void GlobalRandomCounterOpt::ProcessChoicePoint(BasicBlock* bb) {
|
||||
|
||||
//reset counter
|
||||
BasicBlock* oldnext = t->getSuccessor(0);
|
||||
BasicBlock* resetblock = BasicBlock::Create("reset", oldnext->getParent(),
|
||||
BasicBlock* resetblock = BasicBlock::Create(bb->getContext(),
|
||||
"reset", oldnext->getParent(),
|
||||
oldnext);
|
||||
TerminatorInst* t2 = BranchInst::Create(oldnext, resetblock);
|
||||
t->setSuccessor(0, resetblock);
|
||||
@@ -320,11 +322,12 @@ void CycleCounter::ProcessChoicePoint(BasicBlock* bb) {
|
||||
|
||||
CallInst* c = CallInst::Create(F, "rdcc", t);
|
||||
BinaryOperator* b =
|
||||
BinaryOperator::CreateAnd(c, ConstantInt::get(Type::Int64Ty, rm),
|
||||
BinaryOperator::CreateAnd(c,
|
||||
ConstantInt::get(Type::getInt64Ty(bb->getContext()), rm),
|
||||
"mrdcc", t);
|
||||
|
||||
ICmpInst *s = new ICmpInst(t, ICmpInst::ICMP_EQ, b,
|
||||
ConstantInt::get(Type::Int64Ty, 0),
|
||||
ConstantInt::get(Type::getInt64Ty(bb->getContext()), 0),
|
||||
"mrdccc");
|
||||
|
||||
t->setCondition(s);
|
||||
@@ -350,8 +353,8 @@ void RSProfilers_std::IncrementCounterInBlock(BasicBlock *BB, unsigned CounterNu
|
||||
|
||||
// Create the getelementptr constant expression
|
||||
std::vector<Constant*> Indices(2);
|
||||
Indices[0] = Constant::getNullValue(Type::Int32Ty);
|
||||
Indices[1] = ConstantInt::get(Type::Int32Ty, CounterNum);
|
||||
Indices[0] = Constant::getNullValue(Type::getInt32Ty(BB->getContext()));
|
||||
Indices[1] = ConstantInt::get(Type::getInt32Ty(BB->getContext()), CounterNum);
|
||||
Constant *ElementPtr =ConstantExpr::getGetElementPtr(CounterArray,
|
||||
&Indices[0], 2);
|
||||
|
||||
@@ -359,7 +362,7 @@ void RSProfilers_std::IncrementCounterInBlock(BasicBlock *BB, unsigned CounterNu
|
||||
Value *OldVal = new LoadInst(ElementPtr, "OldCounter", InsertPos);
|
||||
profcode.insert(OldVal);
|
||||
Value *NewVal = BinaryOperator::CreateAdd(OldVal,
|
||||
ConstantInt::get(Type::Int32Ty, 1),
|
||||
ConstantInt::get(Type::getInt32Ty(BB->getContext()), 1),
|
||||
"NewCounter", InsertPos);
|
||||
profcode.insert(NewVal);
|
||||
profcode.insert(new StoreInst(NewVal, ElementPtr, InsertPos));
|
||||
@@ -382,7 +385,8 @@ Value* ProfilerRS::Translate(Value* v) {
|
||||
if (bb == &bb->getParent()->getEntryBlock())
|
||||
TransCache[bb] = bb; //don't translate entry block
|
||||
else
|
||||
TransCache[bb] = BasicBlock::Create("dup_" + bb->getName(),
|
||||
TransCache[bb] = BasicBlock::Create(v->getContext(),
|
||||
"dup_" + bb->getName(),
|
||||
bb->getParent(), NULL);
|
||||
return TransCache[bb];
|
||||
} else if (Instruction* i = dyn_cast<Instruction>(v)) {
|
||||
@@ -471,16 +475,16 @@ void ProfilerRS::ProcessBackEdge(BasicBlock* src, BasicBlock* dst, Function& F)
|
||||
|
||||
//a:
|
||||
Function::iterator BBN = src; ++BBN;
|
||||
BasicBlock* bbC = BasicBlock::Create("choice", &F, BBN);
|
||||
BasicBlock* bbC = BasicBlock::Create(F.getContext(), "choice", &F, BBN);
|
||||
//ChoicePoints.insert(bbC);
|
||||
BBN = cast<BasicBlock>(Translate(src));
|
||||
BasicBlock* bbCp = BasicBlock::Create("choice", &F, ++BBN);
|
||||
BasicBlock* bbCp = BasicBlock::Create(F.getContext(), "choice", &F, ++BBN);
|
||||
ChoicePoints.insert(bbCp);
|
||||
|
||||
//b:
|
||||
BranchInst::Create(cast<BasicBlock>(Translate(dst)), bbC);
|
||||
BranchInst::Create(dst, cast<BasicBlock>(Translate(dst)),
|
||||
ConstantInt::get(Type::Int1Ty, true), bbCp);
|
||||
ConstantInt::get(Type::getInt1Ty(src->getContext()), true), bbCp);
|
||||
//c:
|
||||
{
|
||||
TerminatorInst* iB = src->getTerminator();
|
||||
@@ -536,8 +540,8 @@ bool ProfilerRS::runOnFunction(Function& F) {
|
||||
TerminatorInst* T = F.getEntryBlock().getTerminator();
|
||||
ReplaceInstWithInst(T, BranchInst::Create(T->getSuccessor(0),
|
||||
cast<BasicBlock>(
|
||||
Translate(T->getSuccessor(0))),
|
||||
ConstantInt::get(Type::Int1Ty, true)));
|
||||
Translate(T->getSuccessor(0))),
|
||||
ConstantInt::get(Type::getInt1Ty(F.getContext()), true)));
|
||||
|
||||
//do whatever is needed now that the function is duplicated
|
||||
c->PrepFunction(&F);
|
||||
@@ -560,10 +564,12 @@ bool ProfilerRS::runOnFunction(Function& F) {
|
||||
bool ProfilerRS::doInitialization(Module &M) {
|
||||
switch (RandomMethod) {
|
||||
case GBV:
|
||||
c = new GlobalRandomCounter(M, Type::Int32Ty, (1 << 14) - 1);
|
||||
c = new GlobalRandomCounter(M, Type::getInt32Ty(M.getContext()),
|
||||
(1 << 14) - 1);
|
||||
break;
|
||||
case GBVO:
|
||||
c = new GlobalRandomCounterOpt(M, Type::Int32Ty, (1 << 14) - 1);
|
||||
c = new GlobalRandomCounterOpt(M, Type::getInt32Ty(M.getContext()),
|
||||
(1 << 14) - 1);
|
||||
break;
|
||||
case HOSTCC:
|
||||
c = new CycleCounter(M, (1 << 14) - 1);
|
||||
|
Reference in New Issue
Block a user