mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-28 19:31:58 +00:00
Add getFirstInsertionPt() method.
getFirstInsertionPt() returns an iterator to the first insertion point in a basic block. This is after all PHIs and any other instruction which is required to be at the top of the basic block (like LandingPadInst). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137744 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
23b49ba6d5
commit
d2e103daf8
@ -145,6 +145,15 @@ public:
|
|||||||
return const_cast<BasicBlock*>(this)->getFirstNonPHIOrDbgOrLifetime();
|
return const_cast<BasicBlock*>(this)->getFirstNonPHIOrDbgOrLifetime();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// getFirstInsertionPt - Returns an iterator to the first instruction in this
|
||||||
|
/// block that is suitable for inserting a non-PHI instruction. In particular,
|
||||||
|
/// it skips all PHIs and LandingPad instructions. Returns 0 if there are no
|
||||||
|
/// non-PHI instructions.
|
||||||
|
iterator getFirstInsertionPt();
|
||||||
|
const_iterator getFirstInsertionPt() const {
|
||||||
|
return const_cast<BasicBlock*>(this)->getFirstInsertionPt();
|
||||||
|
}
|
||||||
|
|
||||||
/// removeFromParent - This method unlinks 'this' from the containing
|
/// removeFromParent - This method unlinks 'this' from the containing
|
||||||
/// function, but does not delete it.
|
/// function, but does not delete it.
|
||||||
///
|
///
|
||||||
|
@ -167,6 +167,12 @@ Instruction* BasicBlock::getFirstNonPHIOrDbgOrLifetime() {
|
|||||||
return &*i;
|
return &*i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BasicBlock::iterator BasicBlock::getFirstInsertionPt() {
|
||||||
|
iterator InsertPt = getFirstNonPHI();
|
||||||
|
if (isa<LandingPadInst>(InsertPt)) ++InsertPt;
|
||||||
|
return InsertPt;
|
||||||
|
}
|
||||||
|
|
||||||
void BasicBlock::dropAllReferences() {
|
void BasicBlock::dropAllReferences() {
|
||||||
for(iterator I = begin(), E = end(); I != E; ++I)
|
for(iterator I = begin(), E = end(); I != E; ++I)
|
||||||
I->dropAllReferences();
|
I->dropAllReferences();
|
||||||
|
Loading…
Reference in New Issue
Block a user