diff --git a/llvm/test/Transforms/Attributor/heap_to_stack.ll b/llvm/test/Transforms/Attributor/heap_to_stack.ll --- a/llvm/test/Transforms/Attributor/heap_to_stack.ll +++ b/llvm/test/Transforms/Attributor/heap_to_stack.ll @@ -188,7 +188,7 @@ define void @test3b(i8* %p) { ; IS________OPM-LABEL: define {{[^@]+}}@test3b ; IS________OPM-SAME: (i8* nocapture [[P:%.*]]) { -; IS________OPM-NEXT: [[TMP1:%.*]] = tail call noalias i8* @aligned_alloc(i64 noundef 32, i64 noundef 128) +; IS________OPM-NEXT: [[TMP1:%.*]] = tail call noalias i8* @aligned_alloc(i64 allocalign noundef 32, i64 noundef 128) ; IS________OPM-NEXT: tail call void @nofree_arg_only(i8* nocapture nofree [[TMP1]], i8* nocapture [[P]]) ; IS________OPM-NEXT: tail call void @free(i8* noalias nocapture [[TMP1]]) ; IS________OPM-NEXT: ret void @@ -199,7 +199,7 @@ ; IS________NPM-NEXT: tail call void @nofree_arg_only(i8* noalias nocapture nofree [[TMP1]], i8* nocapture [[P]]) ; IS________NPM-NEXT: ret void ; - %1 = tail call noalias i8* @aligned_alloc(i64 32, i64 128) + %1 = tail call noalias i8* @aligned_alloc(i64 allocalign 32, i64 128) tail call void @nofree_arg_only(i8* %1, i8* %p) tail call void @free(i8* %1) ret void @@ -209,11 +209,11 @@ define void @test3c(i64 %alignment) { ; CHECK-LABEL: define {{[^@]+}}@test3c ; CHECK-SAME: (i64 [[ALIGNMENT:%.*]]) { -; CHECK-NEXT: [[TMP1:%.*]] = tail call noalias i8* @aligned_alloc(i64 [[ALIGNMENT]], i64 noundef 128) +; CHECK-NEXT: [[TMP1:%.*]] = tail call noalias i8* @aligned_alloc(i64 allocalign [[ALIGNMENT]], i64 noundef 128) ; CHECK-NEXT: tail call void @free(i8* noalias nocapture [[TMP1]]) ; CHECK-NEXT: ret void ; - %1 = tail call noalias i8* @aligned_alloc(i64 %alignment, i64 128) + %1 = tail call noalias i8* @aligned_alloc(i64 allocalign %alignment, i64 128) tail call void @free(i8* %1) ret void } @@ -222,20 +222,20 @@ define void @test3d(i8* %p) { ; IS________OPM-LABEL: define {{[^@]+}}@test3d ; IS________OPM-SAME: (i8* nocapture [[P:%.*]]) { -; IS________OPM-NEXT: [[TMP1:%.*]] = tail call noalias i8* @aligned_alloc(i64 noundef 33, i64 noundef 128) +; IS________OPM-NEXT: [[TMP1:%.*]] = tail call noalias i8* @aligned_alloc(i64 allocalign noundef 33, i64 noundef 128) ; IS________OPM-NEXT: tail call void @nofree_arg_only(i8* nocapture nofree [[TMP1]], i8* nocapture [[P]]) ; IS________OPM-NEXT: tail call void @free(i8* noalias nocapture [[TMP1]]) ; IS________OPM-NEXT: ret void ; ; IS________NPM-LABEL: define {{[^@]+}}@test3d ; IS________NPM-SAME: (i8* nocapture [[P:%.*]]) { -; IS________NPM-NEXT: [[TMP1:%.*]] = tail call noalias i8* @aligned_alloc(i64 noundef 33, i64 noundef 128) +; IS________NPM-NEXT: [[TMP1:%.*]] = tail call noalias i8* @aligned_alloc(i64 allocalign noundef 33, i64 noundef 128) ; IS________NPM-NEXT: tail call void @nofree_arg_only(i8* noalias nocapture nofree [[TMP1]], i8* nocapture [[P]]) ; IS________NPM-NEXT: tail call void @free(i8* noalias nocapture [[TMP1]]) ; IS________NPM-NEXT: ret void ; ; CHECK-SAME; (i8* nocapture [[P:%.*]]) { - %1 = tail call noalias i8* @aligned_alloc(i64 33, i64 128) + %1 = tail call noalias i8* @aligned_alloc(i64 allocalign 33, i64 128) tail call void @nofree_arg_only(i8* %1, i8* %p) tail call void @free(i8* %1) ret void diff --git a/llvm/test/Transforms/InstCombine/deref-alloc-fns.ll b/llvm/test/Transforms/InstCombine/deref-alloc-fns.ll --- a/llvm/test/Transforms/InstCombine/deref-alloc-fns.ll +++ b/llvm/test/Transforms/InstCombine/deref-alloc-fns.ll @@ -36,41 +36,41 @@ define noalias i8* @aligned_alloc_constant_size() { ; CHECK-LABEL: @aligned_alloc_constant_size( -; CHECK-NEXT: [[CALL:%.*]] = tail call noalias align 32 dereferenceable_or_null(512) i8* @aligned_alloc(i64 32, i64 512) +; CHECK-NEXT: [[CALL:%.*]] = tail call noalias align 32 dereferenceable_or_null(512) i8* @aligned_alloc(i64 allocalign 32, i64 512) ; CHECK-NEXT: ret i8* [[CALL]] ; - %call = tail call noalias i8* @aligned_alloc(i64 32, i64 512) + %call = tail call noalias i8* @aligned_alloc(i64 allocalign 32, i64 512) ret i8* %call } define noalias i8* @aligned_alloc_unknown_size_nonzero(i1 %c) { ; CHECK-LABEL: @aligned_alloc_unknown_size_nonzero( ; CHECK-NEXT: [[SIZE:%.*]] = select i1 [[C:%.*]], i64 64, i64 128 -; CHECK-NEXT: [[CALL:%.*]] = tail call noalias align 32 i8* @aligned_alloc(i64 32, i64 [[SIZE]]) +; CHECK-NEXT: [[CALL:%.*]] = tail call noalias align 32 i8* @aligned_alloc(i64 allocalign 32, i64 [[SIZE]]) ; CHECK-NEXT: ret i8* [[CALL]] ; %size = select i1 %c, i64 64, i64 128 - %call = tail call noalias i8* @aligned_alloc(i64 32, i64 %size) + %call = tail call noalias i8* @aligned_alloc(i64 allocalign 32, i64 %size) ret i8* %call } define noalias i8* @aligned_alloc_unknown_size_possibly_zero(i1 %c) { ; CHECK-LABEL: @aligned_alloc_unknown_size_possibly_zero( ; CHECK-NEXT: [[SIZE:%.*]] = select i1 [[C:%.*]], i64 64, i64 0 -; CHECK-NEXT: [[CALL:%.*]] = tail call noalias align 32 i8* @aligned_alloc(i64 32, i64 [[SIZE]]) +; CHECK-NEXT: [[CALL:%.*]] = tail call noalias align 32 i8* @aligned_alloc(i64 allocalign 32, i64 [[SIZE]]) ; CHECK-NEXT: ret i8* [[CALL]] ; %size = select i1 %c, i64 64, i64 0 - %call = tail call noalias i8* @aligned_alloc(i64 32, i64 %size) + %call = tail call noalias i8* @aligned_alloc(i64 allocalign 32, i64 %size) ret i8* %call } define noalias i8* @aligned_alloc_unknown_align(i64 %align) { ; CHECK-LABEL: @aligned_alloc_unknown_align( -; CHECK-NEXT: [[CALL:%.*]] = tail call noalias dereferenceable_or_null(128) i8* @aligned_alloc(i64 [[ALIGN:%.*]], i64 128) +; CHECK-NEXT: [[CALL:%.*]] = tail call noalias dereferenceable_or_null(128) i8* @aligned_alloc(i64 allocalign [[ALIGN:%.*]], i64 128) ; CHECK-NEXT: ret i8* [[CALL]] ; - %call = tail call noalias i8* @aligned_alloc(i64 %align, i64 128) + %call = tail call noalias i8* @aligned_alloc(i64 allocalign %align, i64 128) ret i8* %call } @@ -78,15 +78,15 @@ define noalias i8* @aligned_alloc_dynamic_args(i64 %align, i64 %size) { ; CHECK-LABEL: @aligned_alloc_dynamic_args( -; CHECK-NEXT: [[CALL:%.*]] = tail call noalias dereferenceable_or_null(1024) i8* @aligned_alloc(i64 [[ALIGN:%.*]], i64 1024) -; CHECK-NEXT: [[CALL_1:%.*]] = tail call noalias dereferenceable_or_null(1024) i8* @aligned_alloc(i64 0, i64 1024) -; CHECK-NEXT: [[CALL_2:%.*]] = tail call noalias align 32 i8* @aligned_alloc(i64 32, i64 [[SIZE:%.*]]) +; CHECK-NEXT: [[CALL:%.*]] = tail call noalias dereferenceable_or_null(1024) i8* @aligned_alloc(i64 allocalign [[ALIGN:%.*]], i64 1024) +; CHECK-NEXT: [[CALL_1:%.*]] = tail call noalias dereferenceable_or_null(1024) i8* @aligned_alloc(i64 allocalign 0, i64 1024) +; CHECK-NEXT: [[CALL_2:%.*]] = tail call noalias align 32 i8* @aligned_alloc(i64 allocalign 32, i64 [[SIZE:%.*]]) ; CHECK-NEXT: [[TMP1:%.*]] = call i8* @foo(i8* [[CALL]], i8* [[CALL_1]], i8* [[CALL_2]]) ; CHECK-NEXT: ret i8* [[CALL]] ; - %call = tail call noalias i8* @aligned_alloc(i64 %align, i64 1024) - %call_1 = tail call noalias i8* @aligned_alloc(i64 0, i64 1024) - %call_2 = tail call noalias i8* @aligned_alloc(i64 32, i64 %size) + %call = tail call noalias i8* @aligned_alloc(i64 allocalign %align, i64 1024) + %call_1 = tail call noalias i8* @aligned_alloc(i64 allocalign 0, i64 1024) + %call_2 = tail call noalias i8* @aligned_alloc(i64 allocalign 32, i64 %size) call i8* @foo(i8* %call, i8* %call_1, i8* %call_2) ret i8* %call @@ -94,41 +94,41 @@ define noalias i8* @memalign_constant_size() { ; GNU-LABEL: @memalign_constant_size( -; GNU-NEXT: [[CALL:%.*]] = tail call noalias align 32 dereferenceable_or_null(512) i8* @memalign(i64 32, i64 512) +; GNU-NEXT: [[CALL:%.*]] = tail call noalias align 32 dereferenceable_or_null(512) i8* @memalign(i64 allocalign 32, i64 512) ; GNU-NEXT: ret i8* [[CALL]] ; - %call = tail call noalias i8* @memalign(i64 32, i64 512) + %call = tail call noalias i8* @memalign(i64 allocalign 32, i64 512) ret i8* %call } define noalias i8* @memalign_unknown_size_nonzero(i1 %c) { ; GNU-LABEL: @memalign_unknown_size_nonzero( ; GNU-NEXT: [[SIZE:%.*]] = select i1 [[C:%.*]], i64 64, i64 128 -; GNU-NEXT: [[CALL:%.*]] = tail call noalias align 32 i8* @memalign(i64 32, i64 [[SIZE]]) +; GNU-NEXT: [[CALL:%.*]] = tail call noalias align 32 i8* @memalign(i64 allocalign 32, i64 [[SIZE]]) ; GNU-NEXT: ret i8* [[CALL]] ; %size = select i1 %c, i64 64, i64 128 - %call = tail call noalias i8* @memalign(i64 32, i64 %size) + %call = tail call noalias i8* @memalign(i64 allocalign 32, i64 %size) ret i8* %call } define noalias i8* @memalign_unknown_size_possibly_zero(i1 %c) { ; GNU-LABEL: @memalign_unknown_size_possibly_zero( ; GNU-NEXT: [[SIZE:%.*]] = select i1 [[C:%.*]], i64 64, i64 0 -; GNU-NEXT: [[CALL:%.*]] = tail call noalias align 32 i8* @memalign(i64 32, i64 [[SIZE]]) +; GNU-NEXT: [[CALL:%.*]] = tail call noalias align 32 i8* @memalign(i64 allocalign 32, i64 [[SIZE]]) ; GNU-NEXT: ret i8* [[CALL]] ; %size = select i1 %c, i64 64, i64 0 - %call = tail call noalias i8* @memalign(i64 32, i64 %size) + %call = tail call noalias i8* @memalign(i64 allocalign 32, i64 %size) ret i8* %call } define noalias i8* @memalign_unknown_align(i64 %align) { ; GNU-LABEL: @memalign_unknown_align( -; GNU-NEXT: [[CALL:%.*]] = tail call noalias dereferenceable_or_null(128) i8* @memalign(i64 [[ALIGN:%.*]], i64 128) +; GNU-NEXT: [[CALL:%.*]] = tail call noalias dereferenceable_or_null(128) i8* @memalign(i64 allocalign [[ALIGN:%.*]], i64 128) ; GNU-NEXT: ret i8* [[CALL]] ; - %call = tail call noalias i8* @memalign(i64 %align, i64 128) + %call = tail call noalias i8* @memalign(i64 allocalign %align, i64 128) ret i8* %call } @@ -336,21 +336,21 @@ define noalias i8* @ossfuzz_23214() { ; CHECK-LABEL: @ossfuzz_23214( ; CHECK-NEXT: bb: -; CHECK-NEXT: [[CALL:%.*]] = tail call noalias dereferenceable_or_null(512) i8* @aligned_alloc(i64 -9223372036854775808, i64 512) +; CHECK-NEXT: [[CALL:%.*]] = tail call noalias dereferenceable_or_null(512) i8* @aligned_alloc(i64 allocalign -9223372036854775808, i64 512) ; CHECK-NEXT: ret i8* [[CALL]] ; bb: %and = and i64 -1, -9223372036854775808 - %call = tail call noalias i8* @aligned_alloc(i64 %and, i64 512) + %call = tail call noalias i8* @aligned_alloc(i64 allocalign %and, i64 512) ret i8* %call } define noalias i8* @op_new_align() { ; CHECK-LABEL: @op_new_align( -; CHECK-NEXT: [[CALL:%.*]] = tail call align 32 dereferenceable_or_null(32) i8* @_ZnajSt11align_val_t(i64 32, i64 32) +; CHECK-NEXT: [[CALL:%.*]] = tail call align 32 dereferenceable_or_null(32) i8* @_ZnajSt11align_val_t(i64 32, i64 allocalign 32) ; CHECK-NEXT: ret i8* [[CALL]] ; - %call = tail call i8* @_ZnajSt11align_val_t(i64 32, i64 32) + %call = tail call i8* @_ZnajSt11align_val_t(i64 32, i64 allocalign 32) ret i8* %call }