summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/copy-assign-synthesis-1.cpp
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2013-02-11 23:44:11 +0000
committerLang Hames <lhames@gmail.com>2013-02-11 23:44:11 +0000
commit5824a4f1b0962bfe7a80d382d0ed9ce2050d3d88 (patch)
tree3e8c7035e7476cda708d7f8f5d0bf184aebd6d32 /clang/test/CodeGenCXX/copy-assign-synthesis-1.cpp
parentd7fe06f274a6cf19f30e9cad88f5b7e62df1fce6 (diff)
downloadbcm5719-llvm-5824a4f1b0962bfe7a80d382d0ed9ce2050d3d88.tar.gz
bcm5719-llvm-5824a4f1b0962bfe7a80d382d0ed9ce2050d3d88.zip
When generating IR for default copy-constructors, copy-assignment operators,
move-constructors and move-assignment operators, use memcpy to copy adjacent POD members. Previously, classes with one or more Non-POD members would fall back on element-wise copies for all members, including POD members. This often generated a lot of IR. Without padding metadata, it wasn't often possible for the LLVM optimizers to turn the element-wise copies into a memcpy. This code hasn't yet received any serious tuning. I didn't see any serious regressions on a self-hosted clang build, or any of the nightly tests, but I think it's important to get this out in the wild to get more testing. Insights, feedback and comments welcome. Many thanks to David Blaikie, Richard Smith, and especially John McCall for their help and feedback on this work. llvm-svn: 174919
Diffstat (limited to 'clang/test/CodeGenCXX/copy-assign-synthesis-1.cpp')
-rw-r--r--clang/test/CodeGenCXX/copy-assign-synthesis-1.cpp6
1 files changed, 0 insertions, 6 deletions
diff --git a/clang/test/CodeGenCXX/copy-assign-synthesis-1.cpp b/clang/test/CodeGenCXX/copy-assign-synthesis-1.cpp
index 46d04836411..5d09b5430a1 100644
--- a/clang/test/CodeGenCXX/copy-assign-synthesis-1.cpp
+++ b/clang/test/CodeGenCXX/copy-assign-synthesis-1.cpp
@@ -96,14 +96,8 @@ int main() {
// CHECK-LP64: .globl __ZN1XaSERKS_
// CHECK-LP64: .weak_definition __ZN1XaSERKS_
// CHECK-LP64: __ZN1XaSERKS_:
-// CHECK-LP64: .globl __ZN1QaSERKS_
-// CHECK-LP64: .weak_definition __ZN1QaSERKS_
-// CHECK-LP64: __ZN1QaSERKS_:
// CHECK-LP32: .globl __ZN1XaSERKS_
// CHECK-LP32: .weak_definition __ZN1XaSERKS_
// CHECK-LP32: __ZN1XaSERKS_:
-// CHECK-LP32: .globl __ZN1QaSERKS_
-// CHECK-LP32: .weak_definition __ZN1QaSERKS_
-// CHECK-LP32: __ZN1QaSERKS_:
OpenPOWER on IntegriCloud