Displaying 2 results from an estimated 2 matches for "remapinstructionsinblock".
Did you mean:
remapinstructionsinblocks
2016 May 05
2
No remapping of clone instruction in CloneBasicBlock
Hi,
Found CloneBasicBlock utility only does the cloning without any remapping.
Consider below example:
Input block:
sw.epilog: ; preds = %sw.bb20, %sw.bb15, %sw.bb10, %sw.bb6, %sw.bb2, %sw.bb, %while.body, %if.end29
%no_final.1 = phi i32 [ %no_final.055, %while.body ], [ 1, %if.end29 ], [ %no_final.055, %sw.bb20 ], [ %no_final.055, %sw.bb15 ], [
2019 Oct 30
2
How to make ScalarEvolution recompute SCEV values?
...etExitBlock();
auto DT = DominatorTree(*F);
SmallVector<BasicBlock *, 8> Blocks;
const auto ClonedLoop = cloneLoopWithPreheader(PreHeader, PreHeader, L, VMap, NameSuffix, LI, &DT, Blocks);
VMap[ExitBlock] = PreHeader; // chain: cloned loop -> original loop
remapInstructionsInBlocks(Blocks, VMap);
// remap original predecessors to the cloned loop
for (BasicBlock *PredBB : AllPredecessors) {
Instruction *TI = PredBB->getTerminator();
for (unsigned i = 0; i < TI->getNumOperands(); i++) {
if (TI->getOperand(i) == PreHeader)...