diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2011-05-17 21:08:01 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2011-05-17 21:08:01 +0000 |
commit | af9b325d232f52ca858c67cd497b79f5e63716af (patch) | |
tree | 9cb0d9a100ef9dbbba860c66830693139fab6296 /clang/test/CodeGenObjCXX/property-object-conditional-exp.mm | |
parent | 3597b6340c00dd2bf720b0f66c43b5698e2d04b6 (diff) | |
download | bcm5719-llvm-af9b325d232f52ca858c67cd497b79f5e63716af.tar.gz bcm5719-llvm-af9b325d232f52ca858c67cd497b79f5e63716af.zip |
For calls returning first-class aggregates, store by element instead of creating aggregate stores in common cases. This is more friendly to fast-isel.
llvm-svn: 131490
Diffstat (limited to 'clang/test/CodeGenObjCXX/property-object-conditional-exp.mm')
-rw-r--r-- | clang/test/CodeGenObjCXX/property-object-conditional-exp.mm | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/clang/test/CodeGenObjCXX/property-object-conditional-exp.mm b/clang/test/CodeGenObjCXX/property-object-conditional-exp.mm index 826c351e79e..a3c1027ed70 100644 --- a/clang/test/CodeGenObjCXX/property-object-conditional-exp.mm +++ b/clang/test/CodeGenObjCXX/property-object-conditional-exp.mm @@ -23,7 +23,12 @@ extern "C" bool CGRectIsEmpty(CGRect); CGRect virtualBounds; // CHECK: [[SRC:%.*]] = call %struct.CGRect bitcast (i8* (i8*, i8*, ...)* @objc_msgSend -// CHECK-NEXT:store %struct.CGRect [[SRC]], %struct.CGRect* +// CHECK-NEXT:getelementptr %struct.CGRect* [[SRC:%.*]] +// CHECK-NEXT:extractvalue +// CHECK-NEXT:store +// CHECK-NEXT:getelementptr %struct.CGRect* [[SRC:%.*]] +// CHECK-NEXT:extractvalue +// CHECK-NEXT:store dataRect = CGRectIsEmpty(virtualBounds) ? self.bounds : virtualBounds; dataRect = CGRectIsEmpty(virtualBounds) ? [self bounds] : virtualBounds; dataRect = CGRectIsEmpty(virtualBounds) ? virtualBounds : self.bounds; |