Re: [PATCH 5/5] New tests introduction
On 10/19/2014 09:50 AM, Andreas Schwab wrote: Martin Liška 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 + +__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 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 > + > +__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 Honza Hubicka * 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 Honza Hubicka * 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 b/gcc/testsuite/g++.dg/ipa/ipa-icf-2.C new file mode 100644 index 000..48ba
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 Honza Hubicka * 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 Honza Hubicka * 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