diff options
author | Sean Fertile <sfertile@ca.ibm.com> | 2018-10-15 15:43:00 +0000 |
---|---|---|
committer | Sean Fertile <sfertile@ca.ibm.com> | 2018-10-15 15:43:00 +0000 |
commit | d900dd0c23f2c2f15f0304ce8fbdac0409382d82 (patch) | |
tree | 74c9ffede39a454a72635a62d787f84beceadaa6 /clang/test/CodeGenCXX/inheriting-constructor.cpp | |
parent | 4e970ff022920a04ba3a898b30e882ab4e95d41e (diff) | |
download | bcm5719-llvm-d900dd0c23f2c2f15f0304ce8fbdac0409382d82.tar.gz bcm5719-llvm-d900dd0c23f2c2f15f0304ce8fbdac0409382d82.zip |
Revert "[CodeGenCXX] Treat 'this' as noalias in constructors"
This reverts commit https://reviews.llvm.org/rL344150 which causes
MachineOutliner related failures on the ppc64le multistage buildbot.
llvm-svn: 344526
Diffstat (limited to 'clang/test/CodeGenCXX/inheriting-constructor.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/inheriting-constructor.cpp | 60 |
1 files changed, 30 insertions, 30 deletions
diff --git a/clang/test/CodeGenCXX/inheriting-constructor.cpp b/clang/test/CodeGenCXX/inheriting-constructor.cpp index 845b354383d..fa3e5ab8aab 100644 --- a/clang/test/CodeGenCXX/inheriting-constructor.cpp +++ b/clang/test/CodeGenCXX/inheriting-constructor.cpp @@ -45,7 +45,7 @@ namespace noninline_nonvirt { struct B : Z, A { Z z; using A::A; }; B b(1, 2, &b); // ITANIUM-LABEL: define {{.*}} @__cxx_global_var_init - // ITANIUM: call void @_ZN1QC1Ei({{.*}} noalias %[[TMP:.*]], i32 2) + // ITANIUM: call void @_ZN1QC1Ei({{.*}} %[[TMP:.*]], i32 2) // ITANIUM: call void @_ZN17noninline_nonvirt1BCI1NS_1AEEiO1QPvU17pass_object_size0({{.*}} @_ZN17noninline_nonvirt1bE, i32 1, {{.*}} %[[TMP]], i8* {{.*}} @_ZN17noninline_nonvirt1bE{{.*}}, i{{32|64}} 12) // ITANIUM: call void @_ZN1QD1Ev({{.*}} %[[TMP]]) // ITANIUM: call i32 @__cxa_atexit( @@ -95,7 +95,7 @@ namespace noninline_virt { // constructor, which takes no arguments other than the this pointer and VTT. // ITANIUM_LABEL: define linkonce_odr void @_ZN14noninline_virt1CCI1NS_1AEEiO1QPvU17pass_object_size0( // ITANIUM: call void @_ZN14noninline_virt1AC2EiO1QPvU17pass_object_size0({{.*}} %{{.*}}, i32 %{{.*}}, %{{.*}}* {{.*}}, i8* %{{.*}}, i{{32|64}} %{{.*}}) - // ITANIUM: call void @_ZN14noninline_virt1BCI2NS_1AEEiO1QPvU17pass_object_size0(%{{.*}}* noalias %{{.*}}, i8** getelementptr inbounds ([2 x i8*], [2 x i8*]* @_ZTTN14noninline_virt1CE, i64 0, i64 1)) + // ITANIUM: call void @_ZN14noninline_virt1BCI2NS_1AEEiO1QPvU17pass_object_size0(%{{.*}}* %{{.*}}, i8** getelementptr inbounds ([2 x i8*], [2 x i8*]* @_ZTTN14noninline_virt1CE, i64 0, i64 1)) // ITANIUM: store {{.*}} @_ZTVN14noninline_virt1CE // C constructor forwards to B constructor and A constructor. We pass the args @@ -124,11 +124,11 @@ namespace inalloca_nonvirt { // WIN32: %[[TMP:.*]] = alloca // WIN32: call i8* @llvm.stacksave() // WIN32: %[[ARGMEM:.*]] = alloca inalloca - // WIN32: call {{.*}} @"??0Q@@QAE@H@Z"(%{{.*}}* noalias %[[TMP]], i32 4) + // WIN32: call {{.*}} @"??0Q@@QAE@H@Z"(%{{.*}}* %[[TMP]], i32 4) // WIN32: %[[ARG3:.*]] = getelementptr {{.*}} %[[ARGMEM]] - // WIN32: call {{.*}} @"??0Q@@QAE@H@Z"({{.*}}* noalias %[[ARG3]], i32 3) + // WIN32: call {{.*}} @"??0Q@@QAE@H@Z"({{.*}}* %[[ARG3]], i32 3) // WIN32: %[[ARG1:.*]] = getelementptr {{.*}} %[[ARGMEM]] - // WIN32: call {{.*}} @"??0Q@@QAE@H@Z"({{.*}}* noalias %[[ARG1]], i32 1) + // WIN32: call {{.*}} @"??0Q@@QAE@H@Z"({{.*}}* %[[ARG1]], i32 1) // WIN32: call {{.*}} @"??0Z@@QAE@XZ"( // WIN32: %[[ARG2:.*]] = getelementptr {{.*}} %[[ARGMEM]] // WIN32: store i32 2, i32* %[[ARG2]] @@ -144,9 +144,9 @@ namespace inalloca_nonvirt { // WIN64: %[[TMP:.*]] = alloca // WIN64: %[[ARG3:.*]] = alloca // WIN64: %[[ARG1:.*]] = alloca - // WIN64: call {{.*}} @"??0Q@@QEAA@H@Z"({{.*}}* noalias %[[TMP]], i32 4) - // WIN64: call {{.*}} @"??0Q@@QEAA@H@Z"({{.*}}* noalias %[[ARG3]], i32 3) - // WIN64: call {{.*}} @"??0Q@@QEAA@H@Z"({{.*}}* noalias %[[ARG1]], i32 1) + // WIN64: call {{.*}} @"??0Q@@QEAA@H@Z"({{.*}}* %[[TMP]], i32 4) + // WIN64: call {{.*}} @"??0Q@@QEAA@H@Z"({{.*}}* %[[ARG3]], i32 3) + // WIN64: call {{.*}} @"??0Q@@QEAA@H@Z"({{.*}}* %[[ARG1]], i32 1) // WIN64: call {{.*}} @"??0Z@@QEAA@XZ"( // WIN64: call {{.*}} @"??0A@inalloca_nonvirt@@QEAA@UQ@@H0$$QEAU2@@Z"(%{{.*}}, %{{.*}}* %[[ARG1]], i32 2, %{{.*}}* %[[ARG3]], %{{.*}} %[[TMP]]) // WIN64: call {{.*}} @"??0Z@@QEAA@XZ"( @@ -160,11 +160,11 @@ namespace inalloca_nonvirt { // WIN32: %[[TMP:.*]] = alloca // WIN32: call i8* @llvm.stacksave() // WIN32: %[[ARGMEM:.*]] = alloca inalloca - // WIN32: call {{.*}} @"??0Q@@QAE@H@Z"(%{{.*}}* noalias %[[TMP]], i32 4) + // WIN32: call {{.*}} @"??0Q@@QAE@H@Z"(%{{.*}}* %[[TMP]], i32 4) // WIN32: %[[ARG3:.*]] = getelementptr {{.*}} %[[ARGMEM]] - // WIN32: call {{.*}} @"??0Q@@QAE@H@Z"({{.*}}* noalias %[[ARG3]], i32 3) + // WIN32: call {{.*}} @"??0Q@@QAE@H@Z"({{.*}}* %[[ARG3]], i32 3) // WIN32: %[[ARG1:.*]] = getelementptr {{.*}} %[[ARGMEM]] - // WIN32: call {{.*}} @"??0Q@@QAE@H@Z"({{.*}}* noalias %[[ARG1]], i32 1) + // WIN32: call {{.*}} @"??0Q@@QAE@H@Z"({{.*}}* %[[ARG1]], i32 1) // WIN32: call {{.*}} @"??0Z@@QAE@XZ"( // WIN32: %[[ARG2:.*]] = getelementptr {{.*}} %[[ARGMEM]] // WIN32: store i32 2, i32* %[[ARG2]] @@ -180,9 +180,9 @@ namespace inalloca_nonvirt { // WIN64: %[[TMP:.*]] = alloca // WIN64: %[[ARG3:.*]] = alloca // WIN64: %[[ARG1:.*]] = alloca - // WIN64: call {{.*}} @"??0Q@@QEAA@H@Z"({{.*}}* noalias %[[TMP]], i32 4) - // WIN64: call {{.*}} @"??0Q@@QEAA@H@Z"({{.*}}* noalias %[[ARG3]], i32 3) - // WIN64: call {{.*}} @"??0Q@@QEAA@H@Z"({{.*}}* noalias %[[ARG1]], i32 1) + // WIN64: call {{.*}} @"??0Q@@QEAA@H@Z"({{.*}}* %[[TMP]], i32 4) + // WIN64: call {{.*}} @"??0Q@@QEAA@H@Z"({{.*}}* %[[ARG3]], i32 3) + // WIN64: call {{.*}} @"??0Q@@QEAA@H@Z"({{.*}}* %[[ARG1]], i32 1) // WIN64: call {{.*}} @"??0Z@@QEAA@XZ"( // WIN64: call {{.*}} @"??0A@inalloca_nonvirt@@QEAA@UQ@@H0$$QEAU2@@Z"(%{{.*}}, %{{.*}}* %[[ARG1]], i32 2, %{{.*}}* %[[ARG3]], %{{.*}} %[[TMP]]) // WIN64: call {{.*}} @"??0Z@@QEAA@XZ"( @@ -200,11 +200,11 @@ namespace inalloca_virt { // WIN32: %[[TMP:.*]] = alloca // WIN32: call i8* @llvm.stacksave() // WIN32: %[[ARGMEM:.*]] = alloca inalloca - // WIN32: call {{.*}} @"??0Q@@QAE@H@Z"(%{{.*}}* noalias %[[TMP]], i32 4) + // WIN32: call {{.*}} @"??0Q@@QAE@H@Z"(%{{.*}}* %[[TMP]], i32 4) // WIN32: %[[ARG3:.*]] = getelementptr {{.*}} %[[ARGMEM]] - // WIN32: call {{.*}} @"??0Q@@QAE@H@Z"({{.*}}* noalias %[[ARG3]], i32 3) + // WIN32: call {{.*}} @"??0Q@@QAE@H@Z"({{.*}}* %[[ARG3]], i32 3) // WIN32: %[[ARG1:.*]] = getelementptr {{.*}} %[[ARGMEM]] - // WIN32: call {{.*}} @"??0Q@@QAE@H@Z"({{.*}}* noalias %[[ARG1]], i32 1) + // WIN32: call {{.*}} @"??0Q@@QAE@H@Z"({{.*}}* %[[ARG1]], i32 1) // FIXME: It's dumb to round-trip this though memory and generate a branch. // WIN32: store i32 1, i32* %[[IS_MOST_DERIVED_ADDR:.*]] // WIN32: %[[IS_MOST_DERIVED:.*]] = load i32, i32* %[[IS_MOST_DERIVED_ADDR]] @@ -231,9 +231,9 @@ namespace inalloca_virt { // WIN64: %[[TMP:.*]] = alloca // WIN64: %[[ARG3:.*]] = alloca // WIN64: %[[ARG1:.*]] = alloca - // WIN64: call {{.*}} @"??0Q@@QEAA@H@Z"({{.*}}* noalias %[[TMP]], i32 4) - // WIN64: call {{.*}} @"??0Q@@QEAA@H@Z"({{.*}}* noalias %[[ARG3]], i32 3) - // WIN64: call {{.*}} @"??0Q@@QEAA@H@Z"({{.*}}* noalias %[[ARG1]], i32 1) + // WIN64: call {{.*}} @"??0Q@@QEAA@H@Z"({{.*}}* %[[TMP]], i32 4) + // WIN64: call {{.*}} @"??0Q@@QEAA@H@Z"({{.*}}* %[[ARG3]], i32 3) + // WIN64: call {{.*}} @"??0Q@@QEAA@H@Z"({{.*}}* %[[ARG1]], i32 1) // WIN64: br i1 // WIN64: call {{.*}} @"??0A@inalloca_virt@@QEAA@UQ@@H0$$QEAU2@@Z"(%{{.*}}, %{{.*}}* %[[ARG1]], i32 2, %{{.*}}* %[[ARG3]], %{{.*}} %[[TMP]]) // WIN64: br @@ -251,11 +251,11 @@ namespace inalloca_virt { // WIN32: %[[TMP:.*]] = alloca // WIN32: call i8* @llvm.stacksave() // WIN32: %[[ARGMEM:.*]] = alloca inalloca - // WIN32: call {{.*}} @"??0Q@@QAE@H@Z"(%{{.*}}* noalias %[[TMP]], i32 4) + // WIN32: call {{.*}} @"??0Q@@QAE@H@Z"(%{{.*}}* %[[TMP]], i32 4) // WIN32: %[[ARG3:.*]] = getelementptr {{.*}} %[[ARGMEM]] - // WIN32: call {{.*}} @"??0Q@@QAE@H@Z"({{.*}}* noalias %[[ARG3]], i32 3) + // WIN32: call {{.*}} @"??0Q@@QAE@H@Z"({{.*}}* %[[ARG3]], i32 3) // WIN32: %[[ARG1:.*]] = getelementptr {{.*}} %[[ARGMEM]] - // WIN32: call {{.*}} @"??0Q@@QAE@H@Z"({{.*}}* noalias %[[ARG1]], i32 1) + // WIN32: call {{.*}} @"??0Q@@QAE@H@Z"({{.*}}* %[[ARG1]], i32 1) // WIN32: store i32 1, i32* %[[IS_MOST_DERIVED_ADDR:.*]] // WIN32: %[[IS_MOST_DERIVED:.*]] = load i32, i32* %[[IS_MOST_DERIVED_ADDR]] // WIN32: %[[IS_MOST_DERIVED_i1:.*]] = icmp ne i32 %[[IS_MOST_DERIVED]], 0 @@ -288,9 +288,9 @@ namespace inalloca_virt { // WIN64: %[[TMP:.*]] = alloca // WIN64: %[[ARG3:.*]] = alloca // WIN64: %[[ARG1:.*]] = alloca - // WIN64: call {{.*}} @"??0Q@@QEAA@H@Z"({{.*}}* noalias %[[TMP]], i32 4) - // WIN64: call {{.*}} @"??0Q@@QEAA@H@Z"({{.*}}* noalias %[[ARG3]], i32 3) - // WIN64: call {{.*}} @"??0Q@@QEAA@H@Z"({{.*}}* noalias %[[ARG1]], i32 1) + // WIN64: call {{.*}} @"??0Q@@QEAA@H@Z"({{.*}}* %[[TMP]], i32 4) + // WIN64: call {{.*}} @"??0Q@@QEAA@H@Z"({{.*}}* %[[ARG3]], i32 3) + // WIN64: call {{.*}} @"??0Q@@QEAA@H@Z"({{.*}}* %[[ARG1]], i32 1) // WIN64: br i1 // WIN64: store {{.*}} @"??_8C@inalloca_virt@@7B@" // WIN64: call {{.*}} @"??0A@inalloca_virt@@QEAA@UQ@@H0$$QEAU2@@Z"(%{{.*}}, %{{.*}}* %[[ARG1]], i32 2, %{{.*}}* %[[ARG3]], %{{.*}} %[[TMP]]) @@ -318,7 +318,7 @@ namespace inline_nonvirt { // ITANIUM: %[[B_CAST:.*]] = bitcast {{.*}} %[[THIS]] // ITANIUM: %[[A_CAST:.*]] = getelementptr {{.*}} %[[B_CAST]], i{{32|64}} 4 // ITANIUM: %[[A:.*]] = bitcast {{.*}} %[[A_CAST]] - // ITANIUM: call void ({{.*}}, ...) @_ZN14inline_nonvirt1AC2E1QiS1_OS1_z(%{{.*}}* noalias %[[A]], {{.*}}, i32 2, {{.*}}, {{.*}}, i32 5, i32 6) + // ITANIUM: call void ({{.*}}, ...) @_ZN14inline_nonvirt1AC2E1QiS1_OS1_z(%{{.*}}* %[[A]], {{.*}}, i32 2, {{.*}}, {{.*}}, i32 5, i32 6) // ITANIUM: %[[Z_MEMBER:.*]] = getelementptr {{.*}} %[[THIS]], i32 0, i32 2 // ITANIUM: call void @_ZN1ZC1Ev({{.*}} %[[Z_MEMBER]]) // ITANIUM: call void @_ZN1QD1Ev( @@ -337,7 +337,7 @@ namespace inline_nonvirt { // ITANIUM: %[[B_CAST:.*]] = bitcast {{.*}} %[[THIS]] // ITANIUM: %[[A_CAST:.*]] = getelementptr {{.*}} %[[B_CAST]], i{{32|64}} 4 // ITANIUM: %[[A:.*]] = bitcast {{.*}} %[[A_CAST]] - // ITANIUM: call void ({{.*}}, ...) @_ZN14inline_nonvirt1AC2E1QiS1_OS1_z(%{{.*}}* noalias %[[A]], {{.*}}, i32 2, {{.*}}, {{.*}}, i32 5, i32 6) + // ITANIUM: call void ({{.*}}, ...) @_ZN14inline_nonvirt1AC2E1QiS1_OS1_z(%{{.*}}* %[[A]], {{.*}}, i32 2, {{.*}}, {{.*}}, i32 5, i32 6) // ITANIUM: %[[Z_MEMBER:.*]] = getelementptr {{.*}} %{{.*}}, i32 0, i32 2 // ITANIUM: call void @_ZN1ZC1Ev({{.*}} %[[Z_MEMBER]]) // ITANIUM: call void @_ZN1QD1Ev( @@ -357,7 +357,7 @@ namespace inline_virt { // ITANIUM: %[[B_CAST:.*]] = bitcast {{.*}} %[[THIS:.*]] // ITANIUM: %[[A_CAST:.*]] = getelementptr {{.*}} %[[B_CAST]], i{{32|64}} {{12|16}} // ITANIUM: %[[A:.*]] = bitcast {{.*}} %[[A_CAST]] - // ITANIUM: call void ({{.*}}, ...) @_ZN11inline_virt1AC2E1QiS1_OS1_z(%{{.*}}* noalias %[[A]], {{.*}}, i32 2, {{.*}}, {{.*}}, i32 5, i32 6) + // ITANIUM: call void ({{.*}}, ...) @_ZN11inline_virt1AC2E1QiS1_OS1_z(%{{.*}}* %[[A]], {{.*}}, i32 2, {{.*}}, {{.*}}, i32 5, i32 6) // ITANIUM: call void @_ZN1ZC2Ev( // ITANIUM: call void @_ZN1ZC1Ev( // ITANIUM: call void @_ZN1QD1Ev( @@ -376,7 +376,7 @@ namespace inline_virt { // ITANIUM: %[[B_CAST:.*]] = bitcast {{.*}} %[[THIS:.*]] // ITANIUM: %[[A_CAST:.*]] = getelementptr {{.*}} %[[B_CAST]], i{{32|64}} {{12|16}} // ITANIUM: %[[A:.*]] = bitcast {{.*}} %[[A_CAST]] - // ITANIUM: call void ({{.*}}, ...) @_ZN11inline_virt1AC2E1QiS1_OS1_z(%{{.*}}* noalias %[[A]], {{.*}}, i32 2, {{.*}}, {{.*}}, i32 5, i32 6) + // ITANIUM: call void ({{.*}}, ...) @_ZN11inline_virt1AC2E1QiS1_OS1_z(%{{.*}}* %[[A]], {{.*}}, i32 2, {{.*}}, {{.*}}, i32 5, i32 6) // ITANIUM: call void @_ZN11inline_virt1BCI2NS_1AEE1QiS1_OS1_z({{[^,]*}}, i8** getelementptr inbounds ([2 x i8*], [2 x i8*]* @_ZTTN11inline_virt1CE, i64 0, i64 1)) // ITANIUM: store {{.*}} @_ZTVN11inline_virt1CE // ITANIUM: call void @_ZN1QD1Ev( |