本文整理汇总了C++中BasicBlock::dump方法的典型用法代码示例。如果您正苦于以下问题:C++ BasicBlock::dump方法的具体用法?C++ BasicBlock::dump怎么用?C++ BasicBlock::dump使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BasicBlock
的用法示例。
在下文中一共展示了BasicBlock::dump方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
//.........这里部分代码省略.........
for(Function::iterator BB = pFunction->begin(); BB != pFunction->end(); ++ BB)
{
if(setWorkingBlocks.find(BB->getName()) != setWorkingBlocks.end() )
{
vecWorkingBlock.push_back(BB);
}
}
errs() << "working block number: " << vecWorkingBlock.size() << "\n";
BasicBlock * pHeader = pLoop->getHeader();
set<BasicBlock *> setExitBlock;
CollectExitBlock(pLoop, setExitBlock);
vector<BasicBlock *> vecAdded;
CreateIfElseBlock(pLoop, vecAdded);
ValueToValueMapTy VMap;
set<BasicBlock *> setCloned;
CloneInnerLoop(pLoop, vecAdded, VMap, setCloned);
//BasicBlock * pPreHeader = vecAdded[0];
BasicBlock * pElseBody = vecAdded[1];
vector<BasicBlock *>::iterator itVecBegin = vecWorkingBlock.begin();
vector<BasicBlock *>::iterator itVecEnd = vecWorkingBlock.end();
for(; itVecBegin != itVecEnd; itVecBegin++ )
{
BasicBlock * pClonedBlock = cast<BasicBlock>(VMap[*itVecBegin]);
pStore = new StoreInst(this->ConstantLong1, pAlloc, false, pClonedBlock->getFirstInsertionPt());
pStore->setAlignment(8);
pClonedBlock->dump();
}
pStore = new StoreInst(this->ConstantLong0, pAlloc, false, pElseBody->getTerminator());
pStore->setAlignment(8);
pLoad0 = new LoadInst(this->numIterations, "", false, pElseBody->getTerminator());
pLoad0->setAlignment(8);
pLoad1 = new LoadInst(this->numWorkingIterations, "", false, pElseBody->getTerminator());
pLoad1->setAlignment(8);
BasicBlock * pClonedHeader = cast<BasicBlock>(VMap[pHeader]);
set<BasicBlock *> setPredBlocks;
for(pred_iterator PI = pred_begin(pClonedHeader), E = pred_end(pClonedHeader); PI != E; ++PI)
{
setPredBlocks.insert(*PI);
}
BasicBlock::iterator itInsert = pClonedHeader->getFirstInsertionPt();
PHINode * pNewIterations = PHINode::Create(pLoad0->getType(), setPredBlocks.size(), "numIterations.2", itInsert);
PHINode * pNewWorkingIterations = PHINode::Create(pLoad1->getType(), setPredBlocks.size(), "WorkingIterations.2", itInsert);
BinaryOperator * pIterationAdd = BinaryOperator::Create(Instruction::Add, pNewIterations, this->ConstantLong1, "Iterations.add.2", itInsert);
set<BasicBlock *>::iterator itSetBegin = setPredBlocks.begin();
set<BasicBlock *>::iterator itSetEnd = setPredBlocks.end();
for(; itSetBegin != itSetEnd; itSetBegin ++ )