mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-23 01:31:05 +00:00
Avoid deferencing use_begin() if value does not have a use.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69836 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
5654613a01
commit
1abe64663e
@ -806,6 +806,7 @@ bool IndVarSimplify::runOnLoop(Loop *L, LPPassManager &LPM) {
|
||||
// (RHS doesn't have to be constant. There should be a better approach
|
||||
// than bottom-up pattern matching for this...)
|
||||
if (UInst && UInst->getOpcode()==Instruction::And &&
|
||||
!UInst->use_empty() &&
|
||||
allUsesAreSameTyped(Instruction::ZExt, UInst) &&
|
||||
isa<ConstantInt>(UInst->getOperand(1))) {
|
||||
uint64_t newBitSize = LargestType->getPrimitiveSizeInBits();
|
||||
|
17
test/Transforms/IndVarSimplify/2009-04-22-IndvarCrash.ll
Normal file
17
test/Transforms/IndVarSimplify/2009-04-22-IndvarCrash.ll
Normal file
@ -0,0 +1,17 @@
|
||||
; RUN: llvm-as < %s | opt -indvars
|
||||
|
||||
define i32 @t() nounwind ssp {
|
||||
entry:
|
||||
br label %bb32
|
||||
|
||||
bb32: ; preds = %bb32, %entry
|
||||
%mbPartIdx.0.reg2mem.0 = phi i8 [ %2, %bb32 ], [ 0, %entry ] ; <i8> [#uses=3]
|
||||
%0 = and i8 %mbPartIdx.0.reg2mem.0, 1 ; <i8> [#uses=0]
|
||||
%1 = zext i8 %mbPartIdx.0.reg2mem.0 to i64 ; <i64> [#uses=0]
|
||||
%2 = add i8 %mbPartIdx.0.reg2mem.0, 1 ; <i8> [#uses=2]
|
||||
%3 = icmp ugt i8 %2, 3 ; <i1> [#uses=1]
|
||||
br i1 %3, label %bb41, label %bb32
|
||||
|
||||
bb41: ; preds = %bb32
|
||||
ret i32 0
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user