mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-24 23:28:41 +00:00
Skip debug info when looking for existing EH calls at the
beginning of a block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100230 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
#include "llvm/BasicBlock.h"
|
||||
#include "llvm/Constants.h"
|
||||
#include "llvm/Instructions.h"
|
||||
#include "llvm/IntrinsicInst.h"
|
||||
#include "llvm/LLVMContext.h"
|
||||
#include "llvm/Type.h"
|
||||
#include "llvm/ADT/STLExtras.h"
|
||||
@@ -136,6 +137,16 @@ Instruction* BasicBlock::getFirstNonPHI() {
|
||||
return &*i;
|
||||
}
|
||||
|
||||
Instruction* BasicBlock::getFirstNonPHIOrDbg() {
|
||||
BasicBlock::iterator i = begin();
|
||||
// All valid basic blocks should have a terminator,
|
||||
// which is not a PHINode. If we have an invalid basic
|
||||
// block we'll get an assertion failure when dereferencing
|
||||
// a past-the-end iterator.
|
||||
while (isa<PHINode>(i) || isa<DbgInfoIntrinsic>(i)) ++i;
|
||||
return &*i;
|
||||
}
|
||||
|
||||
void BasicBlock::dropAllReferences() {
|
||||
for(iterator I = begin(), E = end(); I != E; ++I)
|
||||
I->dropAllReferences();
|
||||
|
Reference in New Issue
Block a user