41 lines · plain
1; RUN: opt < %s -passes=inline -S | FileCheck %s2; RUN: opt < %s -passes='cgscc(inline)' -S | FileCheck %s3; Do not inline calls with variable-sized alloca.4 5@q = common global ptr null6 7define ptr @a(i32 %i) nounwind {8; CHECK-LABEL: define ptr @a9entry:10 %i_addr = alloca i3211 %retval = alloca ptr12 %p = alloca ptr13 %"alloca point" = bitcast i32 0 to i3214 store i32 %i, ptr %i_addr15 %0 = load i32, ptr %i_addr, align 416 %1 = alloca i8, i32 %017 store ptr %1, ptr %p, align 418 %2 = load ptr, ptr %p, align 419 store ptr %2, ptr @q, align 420 br label %return21 22return:23 %retval1 = load ptr, ptr %retval24 ret ptr %retval125}26 27define void @b(i32 %i) nounwind {28; CHECK-LABEL: define void @b29entry:30 %i_addr = alloca i3231 %"alloca point" = bitcast i32 0 to i3232 store i32 %i, ptr %i_addr33 %0 = load i32, ptr %i_addr, align 434 %1 = call ptr @a(i32 %0) nounwind35; CHECK: call ptr @a36 br label %return37 38return:39 ret void40}41