aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMartin Jambor <mjambor@suse.cz>2009-08-06 13:55:30 +0200
committerMartin Jambor <jamborm@gcc.gnu.org>2009-08-06 13:55:30 +0200
commit5b62ee8ae37494be0187ded458072c66414304ce (patch)
treeb82c951a2ce5cec8c52157eb3d1e4275157d20d1 /gcc
parent4dbf26d534a9c3fff592ca9fef172449f6886842 (diff)
downloadgcc-5b62ee8ae37494be0187ded458072c66414304ce.zip
gcc-5b62ee8ae37494be0187ded458072c66414304ce.tar.gz
gcc-5b62ee8ae37494be0187ded458072c66414304ce.tar.bz2
re PR middle-end/32964 (union cause inefficient code inside loops)
2009-08-06 Martin Jambor <mjambor@suse.cz> PR middle-end/32964 * testsuite/gcc.dg/tree-ssa/pr32964.c: New test. From-SVN: r150523
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr32964.c26
2 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 2232d5f..7d35150 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2009-08-06 Martin Jambor <mjambor@suse.cz>
+
+ PR middle-end/32964
+ * gcc.dg/tree-ssa/pr32964.c: New test.
+
2009-08-06 Uros Bizjak <ubizjak@gmail.com>
H.J. Lu <hongjiu.lu@intel.com>
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr32964.c b/gcc/testsuite/gcc.dg/tree-ssa/pr32964.c
new file mode 100644
index 0000000..18e73f9
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr32964.c
@@ -0,0 +1,26 @@
+/* { dg-do compile } */
+/* { dg-options "-O1 -fdump-tree-optimized" } */
+
+union A
+{
+ float a;
+};
+
+float t(float a)
+{
+ union A a1, a2, a3;
+ int i;
+
+ a1.a = a;
+ for(i = 0; i<100; i++)
+ {
+ a2 = a1;
+ a2.a += a;
+ a1 = a2;
+ }
+ a3 = a1;
+ return a3.a;
+}
+
+/* { dg-final { scan-tree-dump-times "union" 0 "optimized"} } */
+/* { dg-final { cleanup-tree-dump "optimized" } } */