forked from OSchip/llvm-project
Skip the landingpad instruction when determining the insertion point.
llvm-svn: 138481
This commit is contained in:
parent
be460898bb
commit
86c5cbe613
|
@ -103,7 +103,8 @@ Value *SCEVExpander::InsertNoopCastOfTo(Value *V, Type *Ty) {
|
|||
while ((isa<BitCastInst>(IP) &&
|
||||
isa<Argument>(cast<BitCastInst>(IP)->getOperand(0)) &&
|
||||
cast<BitCastInst>(IP)->getOperand(0) != A) ||
|
||||
isa<DbgInfoIntrinsic>(IP))
|
||||
isa<DbgInfoIntrinsic>(IP) ||
|
||||
isa<LandingPadInst>(IP))
|
||||
++IP;
|
||||
return ReuseOrCreateCast(A, Ty, Op, IP);
|
||||
}
|
||||
|
@ -113,7 +114,9 @@ Value *SCEVExpander::InsertNoopCastOfTo(Value *V, Type *Ty) {
|
|||
BasicBlock::iterator IP = I; ++IP;
|
||||
if (InvokeInst *II = dyn_cast<InvokeInst>(I))
|
||||
IP = II->getNormalDest()->begin();
|
||||
while (isa<PHINode>(IP) || isa<DbgInfoIntrinsic>(IP)) ++IP;
|
||||
while (isa<PHINode>(IP) || isa<DbgInfoIntrinsic>(IP) ||
|
||||
isa<LandingPadInst>(IP))
|
||||
++IP;
|
||||
return ReuseOrCreateCast(I, Ty, Op, IP);
|
||||
}
|
||||
|
||||
|
@ -1109,7 +1112,8 @@ Value *SCEVExpander::visitAddRecExpr(const SCEVAddRecExpr *S) {
|
|||
BasicBlock::iterator SaveInsertPt = Builder.GetInsertPoint();
|
||||
BasicBlock::iterator NewInsertPt =
|
||||
llvm::next(BasicBlock::iterator(cast<Instruction>(V)));
|
||||
while (isa<PHINode>(NewInsertPt) || isa<DbgInfoIntrinsic>(NewInsertPt))
|
||||
while (isa<PHINode>(NewInsertPt) || isa<DbgInfoIntrinsic>(NewInsertPt) ||
|
||||
isa<LandingPadInst>(NewInsertPt))
|
||||
++NewInsertPt;
|
||||
V = expandCodeFor(SE.getTruncateExpr(SE.getUnknown(V), Ty), 0,
|
||||
NewInsertPt);
|
||||
|
|
|
@ -3423,6 +3423,9 @@ LSRInstance::AdjustInsertPositionForExpand(BasicBlock::iterator IP,
|
|||
// Don't insert instructions before PHI nodes.
|
||||
while (isa<PHINode>(IP)) ++IP;
|
||||
|
||||
// Ignore landingpad instructions.
|
||||
while (isa<LandingPadInst>(IP)) ++IP;
|
||||
|
||||
// Ignore debug intrinsics.
|
||||
while (isa<DbgInfoIntrinsic>(IP)) ++IP;
|
||||
|
||||
|
|
Loading…
Reference in New Issue