mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-28 04:33:05 +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();
|
||||
}
|
||||
|
||||
/// 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
|
||||
/// function, but does not delete it.
|
||||
///
|
||||
|
@ -167,6 +167,12 @@ Instruction* BasicBlock::getFirstNonPHIOrDbgOrLifetime() {
|
||||
return &*i;
|
||||
}
|
||||
|
||||
BasicBlock::iterator BasicBlock::getFirstInsertionPt() {
|
||||
iterator InsertPt = getFirstNonPHI();
|
||||
if (isa<LandingPadInst>(InsertPt)) ++InsertPt;
|
||||
return InsertPt;
|
||||
}
|
||||
|
||||
void BasicBlock::dropAllReferences() {
|
||||
for(iterator I = begin(), E = end(); I != E; ++I)
|
||||
I->dropAllReferences();
|
||||
|
Loading…
Reference in New Issue
Block a user