llvm.org GIT mirror llvm / b550245
Approved by Chris: $ svn merge -c 113146 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113146 into '.': U test/Transforms/LICM/crash.ll U lib/Transforms/Scalar/LICM.cpp Log: fix PR8067, an over-aggressive assertion in LICM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@113152 91177308-0d34-0410-b5e6-96231b3b80d8 Bill Wendling 9 years ago
2 changed file(s) with 18 addition(s) and 4 deletion(s). Raw diff Collapse all Expand all
695695 // it.
696696 if (isa(Use))
697697 assert(!cast(Use)->isVolatile() && "AST broken");
698 else if (isa(Use))
699 assert(!cast(Use)->isVolatile() &&
700 Use->getOperand(0) != ASIV && "AST broken");
701 else
698 else if (isa(Use)) {
699 assert(!cast(Use)->isVolatile() && "AST broken");
700 if (Use->getOperand(0) == ASIV) return;
701 } else
702702 return; // Not a load or store.
703703
704704 if (!GuaranteedToExecute)
2424 for.end10: ; preds = %for.cond.for.end10_crit_edge, %entry
2525 ret void
2626 }
27
28 ; PR8067
29 @g_8 = external global i32, align 4
30
31 define void @test2() noreturn nounwind ssp {
32 entry:
33 br label %for.body
34
35 for.body: ; preds = %for.body, %entry
36 %tmp7 = load i32* @g_8, align 4
37 store i32* @g_8, i32** undef, align 16
38 store i32 undef, i32* @g_8, align 4
39 br label %for.body
40 }