mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-13 22:58:50 +00:00
Revert "[InstCombineCalls] Use isKnownNonNullAt() to check nullness of passing arguments at callsite"
This reverts commit r247356. Breaks test/Transforms/InstCombine/pr8547.ll with: Wrong types for attribute: byval inalloca nest noalias nocapture nonnull readnone readonly sret dereferenceable(1) dereferenceable_or_null(1) %call = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str, i64 0, i64 0), i32 nonnull %conv2) #0 LLVM ERROR: Broken function found, compilation aborted! From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 247371
This commit is contained in:
parent
6c4e275248
commit
2a8d4fb24b
@ -1537,7 +1537,7 @@ Instruction *InstCombiner::visitCallSite(CallSite CS) {
|
||||
unsigned ArgNo = 0;
|
||||
for (Value *V : CS.args()) {
|
||||
if (!CS.paramHasAttr(ArgNo+1, Attribute::NonNull) &&
|
||||
isKnownNonNullAt(V, CS.getInstruction(), DT, TLI)) {
|
||||
isKnownNonNull(V)) {
|
||||
AttributeSet AS = CS.getAttributes();
|
||||
AS = AS.addAttribute(CS.getInstruction()->getContext(), ArgNo+1,
|
||||
Attribute::NonNull);
|
||||
|
@ -1,17 +0,0 @@
|
||||
; RUN: opt < %s -instcombine -S | FileCheck %s
|
||||
|
||||
; InstCombine should mark null-checked argument as nonnull at callsite
|
||||
declare void @dummy(i32*)
|
||||
|
||||
define void @test(i32* %a) {
|
||||
; CHECK-LABEL: @test
|
||||
; CHECK: call void @dummy(i32* nonnull %a)
|
||||
entry:
|
||||
%cond = icmp eq i32* %a, null
|
||||
br i1 %cond, label %is_null, label %not_null
|
||||
not_null:
|
||||
call void @dummy(i32* %a)
|
||||
ret void
|
||||
is_null:
|
||||
unreachable
|
||||
}
|
Loading…
Reference in New Issue
Block a user