diff options
author | John McCall <rjmccall@apple.com> | 2011-09-13 03:34:09 +0000 |
---|---|---|
committer | John McCall <rjmccall@apple.com> | 2011-09-13 03:34:09 +0000 |
commit | f4528ae0635c3dcba0f0b842c2b67f368d7b702f (patch) | |
tree | d478744d18a1c19e35bb75b2611ad04e4b04cd8d /clang/test/CodeGenObjC/atomic-aggregate-property.m | |
parent | 061d811c51ce29cc2a4b06cf1b812f2af21ecee6 (diff) | |
download | bcm5719-llvm-f4528ae0635c3dcba0f0b842c2b67f368d7b702f.tar.gz bcm5719-llvm-f4528ae0635c3dcba0f0b842c2b67f368d7b702f.zip |
Unify the decision of how to emit property getters and setters into a
single code path. Use atomic loads and stores where necessary. Load and
store anything of the appropriate size and alignment with primitive
operations instead of going through the call.
llvm-svn: 139580
Diffstat (limited to 'clang/test/CodeGenObjC/atomic-aggregate-property.m')
-rw-r--r-- | clang/test/CodeGenObjC/atomic-aggregate-property.m | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/clang/test/CodeGenObjC/atomic-aggregate-property.m b/clang/test/CodeGenObjC/atomic-aggregate-property.m index 3cd12a5c2c1..6c2887f77e3 100644 --- a/clang/test/CodeGenObjC/atomic-aggregate-property.m +++ b/clang/test/CodeGenObjC/atomic-aggregate-property.m @@ -23,7 +23,20 @@ struct s1 { @synthesize y; @synthesize z; @end -// CHECK-LP64: call void @objc_copyStruct -// CHECK-LP64: call void @objc_copyStruct -// CHECK-LP64: call void @objc_copyStruct -// CHECK-LP64: call i8* @objc_memmove_collectable +// CHECK-LP64: define internal double @"\01-[A x]"( +// CHECK-LP64: load atomic i64* {{%.*}} unordered, align 8 + +// CHECK-LP64: define internal void @"\01-[A setX:]"( +// CHECK-LP64: store atomic i64 {{%.*}}, i64* {{%.*}} unordered, align 8 + +// CHECK-LP64: define internal void @"\01-[A y]"( +// CHECK-LP64: call void @objc_copyStruct(i8* {{%.*}}, i8* {{%.*}}, i64 32, i1 zeroext true, i1 zeroext false) + +// CHECK-LP64: define internal void @"\01-[A setY:]"( +// CHECK-LP64: call void @objc_copyStruct(i8* {{%.*}}, i8* {{%.*}}, i64 32, i1 zeroext true, i1 zeroext false) + +// CHECK-LP64: define internal void @"\01-[A z]"( +// CHECK-LP64: call i8* @objc_memmove_collectable( + +// CHECK-LP64: define internal void @"\01-[A setZ:]"( +// CHECK-LP64: call i8* @objc_memmove_collectable( |