[gcc(refs/vendors/ibm/heads/perf)] re PR tree-optimization/90883 (Generated code is worse if returned struct is unnamed)
Jiu Fu Guo
guojiufu@gcc.gnu.org
Thu Mar 19 06:09:36 GMT 2020
https://gcc.gnu.org/g:46275300312b44e1388b86a45f1600a5a1722303
commit 46275300312b44e1388b86a45f1600a5a1722303
Author: Kito Cheng <kito.cheng@sifive.com>
Date: Tue Mar 3 14:16:42 2020 +0800
re PR tree-optimization/90883 (Generated code is worse if returned struct is unnamed)
After add --param max-inline-insns-size=1 all target will remove the
redundant store at dse1, except some targets like AArch64 and MIPS will
expand the struct initialization into loop due to CLEAR_RATIO.
Tested on cross compiler of riscv32, riscv64, x86, x86_64, mips, mips64,
aarch64, nds32 and arm.
gcc/testsuite/ChangeLog
PR tree-optimization/90883
* g++.dg/tree-ssa/pr90883.c: Add --param max-inline-insns-size=1.
Add aarch64-*-* mips*-*-* to XFAIL.
Diff:
---
gcc/testsuite/ChangeLog | 6 ++++++
gcc/testsuite/g++.dg/tree-ssa/pr90883.C | 6 +++---
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 6b4f301bb39..6b8b5c03c4d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2020-03-06 Kito Cheng <kito.cheng@sifive.com>
+
+ PR tree-optimization/90883
+ * g++.dg/tree-ssa/pr90883.c: Add --param max-inline-insns-size=1.
+ Add aarch64-*-* mips*-*-* to XFAIL.
+
2020-03-05 H.J. Lu <hongjiu.lu@intel.com>
PR target/89229
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr90883.C b/gcc/testsuite/g++.dg/tree-ssa/pr90883.C
index c5faffa1f32..0e622f263d2 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/pr90883.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr90883.C
@@ -1,4 +1,4 @@
-// { dg-options "-O2 -Os -fdump-tree-dse-details -std=c++11" }
+// { dg-options "-O2 -Os -fdump-tree-dse-details -std=c++11 --param max-inline-insns-size=1" }
class C
@@ -15,6 +15,6 @@
// We want to match enough here to capture that we deleted an empty
// constructor store
-// { dg-final { scan-tree-dump "Deleted redundant store: .*\.a = {}" "dse1" { target { ! i?86-*-* } } } }
-// { dg-final { scan-tree-dump "Deleted redundant store: .*\.a = {}" "dse2" { target i?86-*-* } } }
+// aarch64 and mips will expand to loop to clear because CLEAR_RATIO.
+// { dg-final { scan-tree-dump "Deleted redundant store: .*\.a = {}" "dse1" { xfail { aarch64-*-* mips*-*-* } } } }
More information about the Gcc-cvs
mailing list