forked from OSchip/llvm-project
[Attributor][NFC] Remove and update old check lines
This commit is contained in:
parent
a6b14bae0f
commit
10ff24d853
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue