; RUN: llc < %s


declare i8* @llvm_gc_allocate(i32)
declare void @llvm_gc_initialize(i32)

declare void @llvm.gcroot(i8**, i8*)
declare void @llvm.gcwrite(i8*, i8*, i8**)

define i32 @main() gc "shadow-stack" {
entry:
	%A = alloca i8*
	%B = alloca i8**

	call void @llvm_gc_initialize(i32 1048576)  ; Start with 1MB heap

        ;; void *A;
	call void @llvm.gcroot(i8** %A, i8* null)

        ;; A = gcalloc(10);
	%Aptr = call i8* @llvm_gc_allocate(i32 10)
	store i8* %Aptr, i8** %A

        ;; void **B;
	%tmp.1 = bitcast i8*** %B to i8**
	call void @llvm.gcroot(i8** %tmp.1, i8* null)

	;; B = gcalloc(4);
	%B.upgrd.1 = call i8* @llvm_gc_allocate(i32 8)
	%tmp.2 = bitcast i8* %B.upgrd.1 to i8**
	store i8** %tmp.2, i8*** %B

	;; *B = A;
	%B.1 = load i8*** %B
	%A.1 = load i8** %A
	call void @llvm.gcwrite(i8* %A.1, i8* %B.upgrd.1, i8** %B.1)
	
	br label %AllocLoop

AllocLoop:
	%i = phi i32 [ 0, %entry ], [ %indvar.next, %AllocLoop ]
        ;; Allocated mem: allocated memory is immediately dead.
	call i8* @llvm_gc_allocate(i32 100)
	
	%indvar.next = add i32 %i, 1
	%exitcond = icmp eq i32 %indvar.next, 10000000
	br i1 %exitcond, label %Exit, label %AllocLoop

Exit:
	ret i32 0
}

declare void @__main()
