Re: [PATCH 5/5] New tests introduction
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
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
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
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
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 +{ +