Update gc intrinsics to take pointer to object as well as pointer to field.

Patch contributed by Tobias Nurmiranta


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15094 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2004-07-22 05:48:38 +00:00
parent 10e169b038
commit de1618f1bb

View File

@ -4,7 +4,7 @@ declare sbyte* %llvm_gc_allocate(uint)
declare void %llvm_gc_initialize(uint) declare void %llvm_gc_initialize(uint)
declare void %llvm.gcroot(sbyte**, sbyte*) declare void %llvm.gcroot(sbyte**, sbyte*)
declare void %llvm.gcwrite(sbyte*, sbyte**) declare void %llvm.gcwrite(sbyte*, sbyte*, sbyte**)
int %main() { int %main() {
entry: entry:
@ -32,7 +32,7 @@ entry:
;; *B = A; ;; *B = A;
%B.1 = load sbyte*** %B %B.1 = load sbyte*** %B
%A.1 = load sbyte** %A %A.1 = load sbyte** %A
call void %llvm.gcwrite(sbyte* %A.1, sbyte** %B.1) call void %llvm.gcwrite(sbyte* %A.1, sbyte* %B, sbyte** %B.1)
br label %AllocLoop br label %AllocLoop