summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenObjC/atomic-aggregate-property.m
diff options
context:
space:
mode:
authorJohn McCall <rjmccall@apple.com>2011-09-13 03:34:09 +0000
committerJohn McCall <rjmccall@apple.com>2011-09-13 03:34:09 +0000
commitf4528ae0635c3dcba0f0b842c2b67f368d7b702f (patch)
treed478744d18a1c19e35bb75b2611ad04e4b04cd8d /clang/test/CodeGenObjC/atomic-aggregate-property.m
parent061d811c51ce29cc2a4b06cf1b812f2af21ecee6 (diff)
downloadbcm5719-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.m21
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(
OpenPOWER on IntegriCloud