[Attributor][NFC] Remove and update old check lines

This commit is contained in:
Johannes Doerfert 2020-04-22 21:00:12 -05:00
parent a6b14bae0f
commit 10ff24d853
4 changed files with 40 additions and 103 deletions

View File

@ -1030,40 +1030,6 @@ define void @PR43833(i32* %0, i32 %1) {
; Adjusted from PR43833
define void @PR43833_simple(i32* %0, i32 %1) {
; CHECK_OPM-LABEL: define {{[^@]+}}@PR43833_simple
; CHECK_OPM-SAME: (i32* [[TMP0:%.*]], i32 [[TMP1:%.*]])
; CHECK_OPM-NEXT: [[TMP3:%.*]] = icmp ne i32 [[TMP1]], 0
; CHECK_OPM-NEXT: br i1 [[TMP3]], label [[TMP4:%.*]], label [[TMP7:%.*]]
; CHECK_OPM: 4:
; CHECK_OPM-NEXT: [[TMP5:%.*]] = zext i32 [[TMP1]] to i64
; CHECK_OPM-NEXT: [[TMP6:%.*]] = getelementptr inbounds i32, i32* [[TMP0]], i64 [[TMP5]]
; CHECK_OPM-NEXT: br label [[TMP8:%.*]]
; CHECK_OPM: 7:
; CHECK_OPM-NEXT: ret void
; CHECK_OPM: 8:
; CHECK_OPM-NEXT: [[TMP9:%.*]] = phi i32 [ 1, [[TMP4]] ], [ [[TMP10:%.*]], [[TMP8]] ]
; CHECK_OPM-NEXT: tail call void @sink(i32* [[TMP6]])
; CHECK_OPM-NEXT: [[TMP10]] = add nuw nsw i32 [[TMP9]], 1
; CHECK_OPM-NEXT: [[TMP11:%.*]] = icmp eq i32 [[TMP10]], [[TMP1]]
; CHECK_OPM-NEXT: br i1 [[TMP11]], label [[TMP7]], label [[TMP8]]
;
; CHECK_NPM-LABEL: define {{[^@]+}}@PR43833_simple
; CHECK_NPM-SAME: (i32* [[TMP0:%.*]], i32 [[TMP1:%.*]])
; CHECK_NPM-NEXT: [[TMP3:%.*]] = icmp ne i32 [[TMP1]], 0
; CHECK_NPM-NEXT: br i1 [[TMP3]], label [[TMP4:%.*]], label [[TMP7:%.*]]
; CHECK_NPM: 4:
; CHECK_NPM-NEXT: [[TMP5:%.*]] = zext i32 [[TMP1]] to i64
; CHECK_NPM-NEXT: [[TMP6:%.*]] = getelementptr inbounds i32, i32* [[TMP0]], i64 [[TMP5]]
; CHECK_NPM-NEXT: br label [[TMP8:%.*]]
; CHECK_NPM: 7:
; CHECK_NPM-NEXT: ret void
; CHECK_NPM: 8:
; CHECK_NPM-NEXT: [[TMP9:%.*]] = phi i32 [ 1, [[TMP4]] ], [ [[TMP10:%.*]], [[TMP8]] ]
; CHECK_NPM-NEXT: tail call void @sink(i32* nonnull [[TMP6]])
; CHECK_NPM-NEXT: [[TMP10]] = add nuw nsw i32 [[TMP9]], 1
; CHECK_NPM-NEXT: [[TMP11:%.*]] = icmp eq i32 [[TMP10]], [[TMP1]]
; CHECK_NPM-NEXT: br i1 [[TMP11]], label [[TMP7]], label [[TMP8]]
;
; IS________OPM-LABEL: define {{[^@]+}}@PR43833_simple
; IS________OPM-SAME: (i32* [[TMP0:%.*]], i32 [[TMP1:%.*]])
; IS________OPM-NEXT: [[TMP3:%.*]] = icmp ne i32 [[TMP1]], 0

View File

@ -205,7 +205,7 @@ define i32 @eval_func2(i32 (i32)* , i32) local_unnamed_addr "null-pointer-is-val
}
; Call an unknown function in a dead block.
; CHECK_NPM: Function Attrs: nofree norecurse nosync nounwind readnone willreturn
; IS__CGSCC_NPM: Function Attrs: nofree norecurse nosync nounwind readnone willreturn
declare void @unknown()
define i32 @call_unknown_in_dead_block() local_unnamed_addr {
; CHECK-LABEL: define {{[^@]+}}@call_unknown_in_dead_block() local_unnamed_addr

View File

@ -1197,34 +1197,6 @@ define i32 @exact(i32* align 8 %a, i32* align 8 %b) {
; IS__CGSCC_NPM-NEXT: [[ADD4:%.*]] = add i32 [[ADD3]], [[C4L]]
; IS__CGSCC_NPM-NEXT: ret i32 [[ADD4]]
;
; ____CGSCC_NPM-LABEL: define {{[^@]+}}@exact
; ____CGSCC_NPM-SAME: (i32* align 8 [[A:%.*]], i32* align 8 [[B:%.*]])
; ____CGSCC_NPM-NEXT: [[C0:%.*]] = call i32 @non_exact_0()
; ____CGSCC_NPM-NEXT: [[C1:%.*]] = call i32 @non_exact_1(i32 1)
; ____CGSCC_NPM-NEXT: [[C2:%.*]] = call i32 @non_exact_2(i32 2)
; ____CGSCC_NPM-NEXT: [[C3:%.*]] = call align 32 i32* @non_exact_3(i32* align 32 [[A]])
; ____CGSCC_NPM-NEXT: [[C4:%.*]] = call align 16 i32* @non_exact_4(i32* align 32 [[B]])
; ____CGSCC_NPM-NEXT: [[C3L:%.*]] = load i32, i32* [[C3]], align 32
; ____CGSCC_NPM-NEXT: [[C4L:%.*]] = load i32, i32* [[C4]], align 16
; ____CGSCC_NPM-NEXT: [[ADD1:%.*]] = add i32 [[C0]], [[C1]]
; ____CGSCC_NPM-NEXT: [[ADD2:%.*]] = add i32 [[ADD1]], 2
; ____CGSCC_NPM-NEXT: [[ADD3:%.*]] = add i32 [[ADD2]], [[C3L]]
; ____CGSCC_NPM-NEXT: [[ADD4:%.*]] = add i32 [[ADD3]], [[C4L]]
; ____CGSCC_NPM-NEXT: ret i32 [[ADD4]]
; CGSCC_NPM,CHECK_MODULE,CHECK_CGSCC-LABEL: define {{[^@]+}}@exact
; CGSCC_NPM,CHECK_MODULE,CHECK_CGSCC-SAME: (i32* align 8 [[A:%.*]], i32* align 8 [[B:%.*]])
; CGSCC_NPM,CHECK_MODULE,CHECK_CGSCC-NEXT: [[C0:%.*]] = call i32 @non_exact_0()
; CGSCC_NPM,CHECK_MODULE,CHECK_CGSCC-NEXT: [[C1:%.*]] = call i32 @non_exact_1(i32 1)
; CGSCC_NPM,CHECK_MODULE,CHECK_CGSCC-NEXT: [[C2:%.*]] = call i32 @non_exact_2(i32 2)
; CGSCC_NPM,CHECK_MODULE,CHECK_CGSCC-NEXT: [[C3:%.*]] = call align 32 i32* @non_exact_3(i32* align 32 [[A]])
; CGSCC_NPM,CHECK_MODULE,CHECK_CGSCC-NEXT: [[C4:%.*]] = call align 16 i32* @non_exact_4(i32* align 32 [[B]])
; CGSCC_NPM,CHECK_MODULE,CHECK_CGSCC-NEXT: [[C3L:%.*]] = load i32, i32* [[C3]], align 32
; CGSCC_NPM,CHECK_MODULE,CHECK_CGSCC-NEXT: [[C4L:%.*]] = load i32, i32* [[C4]], align 16
; CGSCC_NPM,CHECK_MODULE,CHECK_CGSCC-NEXT: [[ADD1:%.*]] = add i32 [[C0]], [[C1]]
; CGSCC_NPM,CHECK_MODULE,CHECK_CGSCC-NEXT: [[ADD2:%.*]] = add i32 [[ADD1]], 2
; CGSCC_NPM,CHECK_MODULE,CHECK_CGSCC-NEXT: [[ADD3:%.*]] = add i32 [[ADD2]], [[C3L]]
; CGSCC_NPM,CHECK_MODULE,CHECK_CGSCC-NEXT: [[ADD4:%.*]] = add i32 [[ADD3]], [[C4L]]
; CGSCC_NPM,CHECK_MODULE,CHECK_CGSCC-NEXT: ret i32 [[ADD4]]
%c0 = call i32 @non_exact_0()
%c1 = call i32 @non_exact_1(i32 1)
%c2 = call i32 @non_exact_2(i32 2)

View File

@ -11,8 +11,8 @@ target datalayout = "e-m:e-i54:64-f80:128-n8:16:32:64-S128"
; TEST 1 (positive case)
; CHECK_MODULE: Function Attrs: nofree noinline nosync nounwind readnone uwtable willreturn
; CHECK_CGSCC: Function Attrs: nofree noinline norecurse nosync nounwind readnone uwtable willreturn
; IS__TUNIT____: Function Attrs: nofree noinline nosync nounwind readnone uwtable willreturn
; IS__CGSCC____: Function Attrs: nofree noinline norecurse nosync nounwind readnone uwtable willreturn
define void @only_return() #0 {
; CHECK-LABEL: define {{[^@]+}}@only_return()
; CHECK-NEXT: ret void
@ -70,8 +70,8 @@ define i32 @fib(i32 %0) local_unnamed_addr #0 {
; }
; fact_maybe_not(-1) doesn't stop.
; CHECK_MODULE: Function Attrs: nofree noinline nosync nounwind readnone uwtable
; CHECK_CGSCC: Function Attrs: nofree noinline norecurse nosync nounwind readnone uwtable
; IS__TUNIT____: Function Attrs: nofree noinline nosync nounwind readnone uwtable
; IS__CGSCC____: Function Attrs: nofree noinline norecurse nosync nounwind readnone uwtable
; CHECK-NOT: willreturn
define i32 @fact_maybe_not_halt(i32 %0) local_unnamed_addr #0 {
; CHECK-LABEL: define {{[^@]+}}@fact_maybe_not_halt
@ -120,8 +120,8 @@ define i32 @fact_maybe_not_halt(i32 %0) local_unnamed_addr #0 {
; return ans;
; }
; CHECK_MODULE: Function Attrs: nofree noinline nosync nounwind readnone uwtable willreturn
; CHECK_CGSCC: Function Attrs: nofree noinline norecurse nosync nounwind readnone uwtable willreturn
; IS__TUNIT____: Function Attrs: nofree noinline nosync nounwind readnone uwtable
; IS__CGSCC____: Function Attrs: nofree noinline norecurse nosync nounwind readnone uwtable
define i32 @fact_loop(i32 %0) local_unnamed_addr #0 {
; CHECK-LABEL: define {{[^@]+}}@fact_loop
; CHECK-SAME: (i32 [[TMP0:%.*]]) local_unnamed_addr
@ -274,8 +274,8 @@ define void @conditional_exit(i32 %0, i32* nocapture readonly %1) local_unnamed_
; CHECK-NEXT: declare float @llvm.floor.f32(float)
declare float @llvm.floor.f32(float)
; CHECK_MODULE: Function Attrs: nofree noinline nosync nounwind readnone uwtable willreturn
; CHECK_CGSCC: Function Attrs: nofree noinline norecurse nosync nounwind readnone uwtable willreturn
; IS__TUNIT____: Function Attrs: nofree noinline nosync nounwind readnone uwtable willreturn
; IS__CGSCC____: Function Attrs: nofree noinline norecurse nosync nounwind readnone uwtable willreturn
define void @call_floor(float %a) #0 {
; CHECK-LABEL: define {{[^@]+}}@call_floor
; CHECK-SAME: (float [[A:%.*]])
@ -324,8 +324,8 @@ define void @call_maybe_noreturn() #0 {
; CHECK-NEXT: declare void @will_return()
declare void @will_return() willreturn norecurse
; CHECK_MODULE: Function Attrs: noinline nounwind uwtable willreturn
; CHECK_CGSCC: Function Attrs: noinline norecurse nounwind uwtable willreturn
; IS__TUNIT____: Function Attrs: noinline nounwind uwtable willreturn
; IS__CGSCC____: Function Attrs: noinline norecurse nounwind uwtable willreturn
define void @f1() #0 {
; CHECK-LABEL: define {{[^@]+}}@f1()
; CHECK-NEXT: tail call void @will_return()
@ -335,10 +335,10 @@ define void @f1() #0 {
ret void
}
; CHECK_MODULE: Function Attrs: noinline nounwind uwtable
; IS__TUNIT____: Function Attrs: noinline nounwind uwtable
; FIXME: Because we do not derive norecurse in the module run anymore, willreturn is missing as well.
; CHECK_MODULE-NOT: willreturn
; CHECK_CGSCC: Function Attrs: noinline norecurse nounwind uwtable willreturn
; IS__TUNIT____-NOT: willreturn
; IS__CGSCC____: Function Attrs: noinline norecurse nounwind uwtable willreturn
define void @f2() #0 {
; CHECK-LABEL: define {{[^@]+}}@f2()
; CHECK-NEXT: tail call void @f1()
@ -352,8 +352,8 @@ define void @f2() #0 {
; TEST 9 (negative case)
; call willreturn function in endless loop.
; CHECK_MODULE: Function Attrs: noinline noreturn nounwind uwtable
; CHECK_CGSCC: Function Attrs: noinline norecurse noreturn nounwind uwtable
; IS__TUNIT____: Function Attrs: noinline noreturn nounwind uwtable
; IS__CGSCC____: Function Attrs: noinline norecurse noreturn nounwind uwtable
; CHECK-NOT: willreturn
define void @call_will_return_but_has_loop() #0 {
; CHECK-LABEL: define {{[^@]+}}@call_will_return_but_has_loop()
@ -425,8 +425,8 @@ declare i32 @__gxx_personality_v0(...)
; return ans;
; }
; CHECK_MODULE: Function Attrs: argmemonly nofree noinline nosync nounwind readonly uwtable willreturn
; CHECK_CGSCC: Function Attrs: argmemonly nofree noinline norecurse nosync nounwind readonly uwtable willreturn
; IS__TUNIT____: Function Attrs: argmemonly nofree noinline nosync nounwind readonly uwtable
; IS__CGSCC____: Function Attrs: argmemonly nofree noinline norecurse nosync nounwind readonly uwtable
define i32 @loop_constant_trip_count(i32* nocapture readonly %0) #0 {
; CHECK-LABEL: define {{[^@]+}}@loop_constant_trip_count
; CHECK-SAME: (i32* nocapture nofree readonly [[TMP0:%.*]])
@ -470,8 +470,8 @@ define i32 @loop_constant_trip_count(i32* nocapture readonly %0) #0 {
; }
; return ans;
; }
; CHECK_MODULE: Function Attrs: argmemonly nofree noinline nosync nounwind readonly uwtable
; CHECK_CGSCC: Function Attrs: argmemonly nofree noinline norecurse nosync nounwind readonly uwtable
; IS__TUNIT____: Function Attrs: argmemonly nofree noinline nosync nounwind readonly uwtable
; IS__CGSCC____: Function Attrs: argmemonly nofree noinline norecurse nosync nounwind readonly uwtable
; CHECK-NOT: willreturn
define i32 @loop_trip_count_unbound(i32 %0, i32 %1, i32* nocapture readonly %2, i32 %3) local_unnamed_addr #0 {
; CHECK-LABEL: define {{[^@]+}}@loop_trip_count_unbound
@ -523,9 +523,8 @@ define i32 @loop_trip_count_unbound(i32 %0, i32 %1, i32* nocapture readonly %2,
; }
; CHECK_MODULE: Function Attrs: argmemonly nofree noinline nosync nounwind readonly uwtable willreturn
; CHECK_CGSCC: Function Attrs: argmemonly nofree noinline norecurse nosync nounwind readonly uwtable willreturn
; IS__TUNIT____: Function Attrs: argmemonly nofree noinline nosync nounwind readonly uwtable
; IS__CGSCC____: Function Attrs: argmemonly nofree noinline norecurse nosync nounwind readonly uwtable
define i32 @loop_trip_dec(i32 %0, i32* nocapture readonly %1) local_unnamed_addr #0 {
; CHECK-LABEL: define {{[^@]+}}@loop_trip_dec
; CHECK-SAME: (i32 [[TMP0:%.*]], i32* nocapture nofree readonly [[TMP1:%.*]]) local_unnamed_addr
@ -572,8 +571,8 @@ define i32 @loop_trip_dec(i32 %0, i32* nocapture readonly %1) local_unnamed_addr
; TEST 14 (positive case)
; multiple return
; CHECK_MODULE: Function Attrs: nofree noinline nosync nounwind readnone uwtable willreturn
; CHECK_CGSCC: Function Attrs: nofree noinline norecurse nosync nounwind readnone uwtable willreturn
; IS__TUNIT____: Function Attrs: nofree noinline nosync nounwind readnone uwtable willreturn
; IS__CGSCC____: Function Attrs: nofree noinline norecurse nosync nounwind readnone uwtable willreturn
define i32 @multiple_return(i32 %a) #0 {
; CHECK-LABEL: define {{[^@]+}}@multiple_return
; CHECK-SAME: (i32 [[A:%.*]])
@ -597,8 +596,8 @@ f:
; unreachable exit
; 15.1 (positive case)
; CHECK_MODULE: Function Attrs: noinline nounwind uwtable willreturn
; CHECK_CGSCC: Function Attrs: noinline norecurse nounwind uwtable willreturn
; IS__TUNIT____: Function Attrs: noinline nounwind uwtable
; IS__CGSCC____: Function Attrs: noinline norecurse nounwind uwtable willreturn
define void @unreachable_exit_positive1() #0 {
; CHECK-LABEL: define {{[^@]+}}@unreachable_exit_positive1()
; CHECK-NEXT: tail call void @will_return()
@ -614,8 +613,8 @@ unreachable_label:
unreachable
}
; CHECK_MODULE: Function Attrs: nofree noinline nosync nounwind readnone uwtable willreturn
; CHECK_CGSCC: Function Attrs: nofree noinline norecurse nosync nounwind readnone uwtable willreturn
; IS__TUNIT____: Function Attrs: nofree noinline nosync nounwind readnone uwtable
; IS__CGSCC____: Function Attrs: nofree noinline norecurse nosync nounwind readnone uwtable
define i32 @unreachable_exit_positive2(i32) local_unnamed_addr #0 {
; CHECK-LABEL: define {{[^@]+}}@unreachable_exit_positive2
; CHECK-SAME: (i32 [[TMP0:%.*]]) local_unnamed_addr
@ -674,8 +673,8 @@ unreachable_label:
unreachable
}
; CHECK_MODULE: Function Attrs: nofree noinline noreturn nosync nounwind readnone uwtable
; CHECK_CGSCC: Function Attrs: nofree noinline norecurse noreturn nosync nounwind readnone uwtable
; IS__TUNIT____: Function Attrs: nofree noinline noreturn nosync nounwind readnone uwtable
; IS__CGSCC____: Function Attrs: nofree noinline norecurse noreturn nosync nounwind readnone uwtable
; CHECK-NOT: willreturn
define void @unreachable_exit_negative2() #0 {
; CHECK-LABEL: define {{[^@]+}}@unreachable_exit_negative2()
@ -725,8 +724,8 @@ define void @call_longjmp(i8* nocapture readnone %0) local_unnamed_addr #0 {
; return ans;
; }
; CHECK_MODULE: Function Attrs: nofree nosync nounwind readnone
; CHECK_CGSCC: Function Attrs: nofree norecurse nosync nounwind readnone
; IS__TUNIT____: Function Attrs: nofree nosync nounwind readnone
; IS__CGSCC____: Function Attrs: nofree norecurse nosync nounwind readnone
; CHECK-NOT: willreturn
define i32 @infinite_loop_inside_bounded_loop(i32 %n) {
; CHECK-LABEL: define {{[^@]+}}@infinite_loop_inside_bounded_loop
@ -788,8 +787,8 @@ for.end: ; preds = %for.cond.cleanup
; return ans;
; }
; CHECK_MODULE: Function Attrs: nofree nosync nounwind readnone willreturn
; CHECK_CGSCC: Function Attrs: nofree norecurse nosync nounwind readnone willreturn
; IS__TUNIT____: Function Attrs: nofree nosync nounwind readnone
; IS__CGSCC____: Function Attrs: nofree norecurse nosync nounwind readnone
define i32 @bounded_nested_loops(i32 %n) {
; CHECK-LABEL: define {{[^@]+}}@bounded_nested_loops
; CHECK-SAME: (i32 [[N:%.*]])
@ -866,8 +865,8 @@ for.end: ; preds = %for.cond.cleanup
; return ans;
; }
; CHECK_MODULE: Function Attrs: nofree nosync nounwind readnone
; CHECK_CGSCC: Function Attrs: nofree norecurse nosync nounwind readnone
; IS__TUNIT____: Function Attrs: nofree nosync nounwind readnone
; IS__CGSCC____: Function Attrs: nofree norecurse nosync nounwind readnone
; CHECK-NOT: willreturn
define i32 @bounded_loop_inside_unbounded_loop(i32 %n) {
; CHECK-LABEL: define {{[^@]+}}@bounded_loop_inside_unbounded_loop
@ -952,8 +951,8 @@ while.end: ; preds = %while.cond
; return ans;
; }
; CHECK_MODULE: Function Attrs: nofree nosync nounwind readnone
; CHECK_CGSCC: Function Attrs: nofree norecurse nosync nounwind readnone
; IS__TUNIT____: Function Attrs: nofree nosync nounwind readnone
; IS__CGSCC____: Function Attrs: nofree norecurse nosync nounwind readnone
; CHECK-NOT: willreturn
define i32 @nested_unbounded_loops(i32 %n) {
; CHECK-LABEL: define {{[^@]+}}@nested_unbounded_loops
@ -1044,8 +1043,8 @@ while.end11: ; preds = %while.cond
; return;
; }
; CHECK_MODULE: Function Attrs: nofree nosync nounwind readnone
; CHECK_CGSCC: Function Attrs: nofree norecurse nosync nounwind readnone
; IS__TUNIT____: Function Attrs: nofree nosync nounwind readnone
; IS__CGSCC____: Function Attrs: nofree norecurse nosync nounwind readnone
; CHECK-NOT: willreturn
define void @non_loop_cycle(i32 %n) {
; CHECK-LABEL: define {{[^@]+}}@non_loop_cycle