We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent f376f39 commit d2ca466Copy full SHA for d2ca466
llvm/lib/IR/BasicBlock.cpp
@@ -95,6 +95,18 @@ bool BasicBlock::hasPHINode() {
95
return false;
96
}
97
98
+// Transform BlockA->BlockB to BlockA->BlockStub->BlockB
99
+BasicBlock *BasicBlock::createStubBlock(BasicBlock *BlockA,
100
+ BasicBlock *BlockB) {
101
+ BasicBlock *NewBlock = BasicBlock::Create(BlockA->getContext(), "StubBlock",
102
+ BlockA->getParent(), BlockB);
103
+ IRBuilder<> IRB(NewBlock);
104
+ IRB.CreateBr(BlockB);
105
+ BlockA->getTerminator()->replaceSuccessorWith(BlockB, NewBlock);
106
+ BlockB->replacePhiUsesWith(BlockA, NewBlock);
107
+ return NewBlock;
108
+}
109
+
110
BasicBlock::~BasicBlock() {
111
validateInstrOrdering();
112
0 commit comments