Re: [PATCH 5/5] New tests introduction

2014-10-23 Thread Martin Liška

On 10/19/2014 09:50 AM, Andreas Schwab wrote:

Martin Liška mli...@suse.cz writes:


diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-icf-21.c 
b/gcc/testsuite/gcc.dg/ipa/ipa-icf-21.c
new file mode 100644
index 000..7358e43
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-icf-21.c
@@ -0,0 +1,27 @@
+/* { dg-do compile } */
+/* { dg-options -O2 -fdump-ipa-icf  } */
+
+#include xmmintrin.h
+
+__attribute__ ((noinline))
+void foo()
+{
+  float x = 1.2345f;
+  __m128 v =_mm_load1_ps(x);
+}
+
+__attribute__ ((noinline))
+void bar()
+{
+  float x = 1.2345f;
+  __m128 v =_mm_load1_ps(x);
+}
+
+int main()
+{
+  return 2;
+}
+
+/* { dg-final { scan-ipa-dump Semantic equality hit:bar-foo icf  } } */
+/* { dg-final { scan-ipa-dump Equal symbols: 1 icf  } } */
+/* { dg-final { cleanup-ipa-dump icf } } */


FAIL: gcc.dg/ipa/ipa-icf-21.c (test for excess errors)
Excess errors:
/usr/local/gcc/gcc-20141019/gcc/testsuite/gcc.dg/ipa/ipa-icf-21.c:4:23: fatal e\
rror: xmmintrin.h: No such file or directory
compilation terminated.

Andreas.



Hello Andreas.

Starting from r216589 this problem should be fixed.

Thanks,
Martin



Re: [PATCH 5/5] New tests introduction

2014-10-19 Thread Andreas Schwab
Martin Liška mli...@suse.cz writes:

 diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-icf-21.c 
 b/gcc/testsuite/gcc.dg/ipa/ipa-icf-21.c
 new file mode 100644
 index 000..7358e43
 --- /dev/null
 +++ b/gcc/testsuite/gcc.dg/ipa/ipa-icf-21.c
 @@ -0,0 +1,27 @@
 +/* { dg-do compile } */
 +/* { dg-options -O2 -fdump-ipa-icf  } */
 +
 +#include xmmintrin.h
 +
 +__attribute__ ((noinline))
 +void foo()
 +{
 +  float x = 1.2345f;
 +  __m128 v =_mm_load1_ps(x);
 +}
 +
 +__attribute__ ((noinline))
 +void bar()
 +{
 +  float x = 1.2345f;
 +  __m128 v =_mm_load1_ps(x);
 +}
 +
 +int main()
 +{
 +  return 2;
 +}
 +
 +/* { dg-final { scan-ipa-dump Semantic equality hit:bar-foo icf  } } */
 +/* { dg-final { scan-ipa-dump Equal symbols: 1 icf  } } */
 +/* { dg-final { cleanup-ipa-dump icf } } */

FAIL: gcc.dg/ipa/ipa-icf-21.c (test for excess errors)
Excess errors:
/usr/local/gcc/gcc-20141019/gcc/testsuite/gcc.dg/ipa/ipa-icf-21.c:4:23: fatal e\
rror: xmmintrin.h: No such file or directory
compilation terminated.

Andreas.

-- 
Andreas Schwab, sch...@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
And now for something completely different.


Re: [PATCH 5/5] New tests introduction

2014-06-30 Thread Martin Liška


On 06/17/2014 09:53 PM, Jeff Law wrote:

On 06/13/14 05:16, mliska wrote:

Hi,
this is a new collection of tests for IPA ICF pass.

Martin

Changelog:

2014-06-13  Martin Liska  mli...@suse.cz
Honza Hubicka  hubi...@ucw.cz

* gcc/testsuite/g++.dg/ipa/ipa-se-1.C: New test.
* gcc/testsuite/g++.dg/ipa/ipa-se-2.C: Likewise.
* gcc/testsuite/g++.dg/ipa/ipa-se-3.C: Likewise.
* gcc/testsuite/g++.dg/ipa/ipa-se-4.C: Likewise.
* gcc/testsuite/g++.dg/ipa/ipa-se-5.C: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-1.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-10.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-11.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-12.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-13.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-14.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-15.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-16.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-17.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-18.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-19.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-2.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-20.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-21.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-22.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-23.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-24.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-25.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-26.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-27.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-28.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-3.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-4.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-5.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-6.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-7.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-8.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-9.c: Likewise.

Also approved, but please don't install entire the entire kit is approved.

I'd like to applaud you and Jan for including a nice baseline of tests.

jeff


Hi,
   there's updatd baseline of tests.

Martin

gcc/testsuite/ChangeLog:

2014-06-30 Martin Liska  mli...@suse.cz
Honza Hubicka  hubi...@ucw.cz

* gcc/testsuite/g++.dg/ipa/ipa-icf-1.C: New test.
* gcc/testsuite/g++.dg/ipa/ipa-icf-2.C: Likewise.
* gcc/testsuite/g++.dg/ipa/ipa-icf-3.C: Likewise.
* gcc/testsuite/g++.dg/ipa/ipa-icf-4.C: Likewise.
* gcc/testsuite/g++.dg/ipa/ipa-icf-5.C: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-icf-1.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-icf-10.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-icf-11.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-icf-12.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-icf-13.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-icf-14.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-icf-15.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-icf-16.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-icf-17.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-icf-18.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-icf-19.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-icf-2.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-icf-20.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-icf-21.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-icf-22.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-icf-23.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-icf-24.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-icf-25.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-icf-26.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-icf-27.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-icf-28.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-icf-3.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-icf-4.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-icf-5.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-icf-6.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-icf-7.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-icf-8.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-icf-9.c: Likewise.

Martin
diff --git a/gcc/testsuite/g++.dg/ipa/ipa-icf-1.C b/gcc/testsuite/g++.dg/ipa/ipa-icf-1.C
new file mode 100644
index 000..d27abf4
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ipa/ipa-icf-1.C
@@ -0,0 +1,43 @@
+/* { dg-do compile } */
+/* { dg-options -O2 -fdump-ipa-icf  } */
+
+class A
+{
+public:
+  __attribute__ ((noinline))
+  virtual int Foo2()
+  {
+return v;
+  }
+
+  float f;
+  int v;
+};
+
+class B
+{
+public:
+  __attribute__ ((noinline))
+  int Bar2()
+  {
+return v;
+  }
+
+  float f, aaa;
+  int v;
+};
+
+int main()
+{
+  A a;
+  B b;
+
+  a.Foo2();
+  b.Bar2();
+
+  return 12345;
+}
+
+/* { dg-final { scan-ipa-dump-not Semantic equality hit: icf  } } */
+/* { dg-final { scan-ipa-dump Equal symbols: 0 icf  } } */
+/* { dg-final { cleanup-ipa-dump icf } } */
diff --git a/gcc/testsuite/g++.dg/ipa/ipa-icf-2.C 

Re: [PATCH 5/5] New tests introduction

2014-06-17 Thread Jeff Law

On 06/13/14 05:16, mliska wrote:

Hi,
this is a new collection of tests for IPA ICF pass.

Martin

Changelog:

2014-06-13  Martin Liska  mli...@suse.cz
Honza Hubicka  hubi...@ucw.cz

* gcc/testsuite/g++.dg/ipa/ipa-se-1.C: New test.
* gcc/testsuite/g++.dg/ipa/ipa-se-2.C: Likewise.
* gcc/testsuite/g++.dg/ipa/ipa-se-3.C: Likewise.
* gcc/testsuite/g++.dg/ipa/ipa-se-4.C: Likewise.
* gcc/testsuite/g++.dg/ipa/ipa-se-5.C: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-1.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-10.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-11.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-12.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-13.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-14.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-15.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-16.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-17.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-18.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-19.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-2.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-20.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-21.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-22.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-23.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-24.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-25.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-26.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-27.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-28.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-3.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-4.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-5.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-6.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-7.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-8.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-9.c: Likewise.

Also approved, but please don't install entire the entire kit is approved.

I'd like to applaud you and Jan for including a nice baseline of tests.

jeff



[PATCH 5/5] New tests introduction

2014-06-16 Thread mliska
Hi,
   this is a new collection of tests for IPA ICF pass.

Martin

Changelog:

2014-06-13  Martin Liska  mli...@suse.cz
Honza Hubicka  hubi...@ucw.cz

* gcc/testsuite/g++.dg/ipa/ipa-se-1.C: New test.
* gcc/testsuite/g++.dg/ipa/ipa-se-2.C: Likewise.
* gcc/testsuite/g++.dg/ipa/ipa-se-3.C: Likewise.
* gcc/testsuite/g++.dg/ipa/ipa-se-4.C: Likewise.
* gcc/testsuite/g++.dg/ipa/ipa-se-5.C: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-1.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-10.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-11.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-12.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-13.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-14.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-15.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-16.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-17.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-18.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-19.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-2.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-20.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-21.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-22.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-23.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-24.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-25.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-26.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-27.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-28.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-3.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-4.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-5.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-6.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-7.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-8.c: Likewise.
* gcc/testsuite/gcc.dg/ipa/ipa-se-9.c: Likewise.

diff --git a/gcc/testsuite/g++.dg/ipa/ipa-se-1.C 
b/gcc/testsuite/g++.dg/ipa/ipa-se-1.C
new file mode 100644
index 000..d27abf4
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ipa/ipa-se-1.C
@@ -0,0 +1,43 @@
+/* { dg-do compile } */
+/* { dg-options -O2 -fdump-ipa-icf  } */
+
+class A
+{
+public:
+  __attribute__ ((noinline))
+  virtual int Foo2()
+  {
+return v;
+  }
+
+  float f;
+  int v;
+};
+
+class B
+{
+public:
+  __attribute__ ((noinline))
+  int Bar2()
+  {
+return v;
+  }
+
+  float f, aaa;
+  int v;
+};
+
+int main()
+{
+  A a;
+  B b;
+
+  a.Foo2();
+  b.Bar2();
+
+  return 12345;
+}
+
+/* { dg-final { scan-ipa-dump-not Semantic equality hit: icf  } } */
+/* { dg-final { scan-ipa-dump Equal symbols: 0 icf  } } */
+/* { dg-final { cleanup-ipa-dump icf } } */
diff --git a/gcc/testsuite/g++.dg/ipa/ipa-se-2.C 
b/gcc/testsuite/g++.dg/ipa/ipa-se-2.C
new file mode 100644
index 000..48badd7
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ipa/ipa-se-2.C
@@ -0,0 +1,40 @@
+/* { dg-do compile } */
+/* { dg-options -O2 -fdump-ipa-icf  } */
+
+class A
+{
+public:
+  __attribute__ ((noinline))
+  int Foo2()
+  {
+return 1;
+  }
+
+  int v;
+  float f;
+};
+
+class B
+{
+public:
+  __attribute__ ((noinline))
+  int Bar2()
+  {
+return 1;
+  }
+
+  int v;
+  float f, aaa;
+};
+
+int main()
+{
+  A a;
+  B b;
+
+  return a.Foo2() + b.Bar2();
+}
+
+/* { dg-final { scan-ipa-dump Semantic equality hit: icf  } } */
+/* { dg-final { scan-ipa-dump Equal symbols: 1 icf  } } */
+/* { dg-final { cleanup-ipa-dump icf } } */
diff --git a/gcc/testsuite/g++.dg/ipa/ipa-se-3.C 
b/gcc/testsuite/g++.dg/ipa/ipa-se-3.C
new file mode 100644
index 000..042f789
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ipa/ipa-se-3.C
@@ -0,0 +1,36 @@
+/* { dg-do compile } */
+/* { dg-options -O2 -fdump-ipa-icf  } */
+
+__attribute__ ((noinline))
+int zero()
+{
+  return 0;
+}
+
+__attribute__ ((noinline))
+int nula()
+{
+  return 0;
+}
+
+__attribute__ ((noinline))
+int foo()
+{
+  return zero();
+}
+
+__attribute__ ((noinline))
+int bar()
+{
+  return nula();
+}
+
+int main()
+{
+  return foo() + bar();
+}
+
+/* { dg-final { scan-ipa-dump Semantic equality hit:.*bar.*-.*foo.* icf  
} } */
+/* { dg-final { scan-ipa-dump Semantic equality hit:.*nula.*-.*zero.* icf 
 } } */
+/* { dg-final { scan-ipa-dump Equal symbols: 2 icf  } } */
+/* { dg-final { cleanup-ipa-dump icf } } */
diff --git a/gcc/testsuite/g++.dg/ipa/ipa-se-4.C 
b/gcc/testsuite/g++.dg/ipa/ipa-se-4.C
new file mode 100644
index 000..4ac2cf9
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ipa/ipa-se-4.C
@@ -0,0 +1,49 @@
+/* { dg-do compile } */
+/* { dg-options -O2 -fdump-ipa-icf -fno-inline } */
+
+namespace {
+struct A
+{
+  virtual void foo(void) {}
+};
+struct B: virtual A
+{
+  virtual void foo(void) {}
+};
+struct C: virtual A
+{
+  virtual void bar(void) {}
+};
+struct D: virtual A
+{
+  virtual void sparta(void) {}
+};
+struct E: B,C,D
+{
+