From e7818e646687c05e13a68828ef70fb41716a267c Mon Sep 17 00:00:00 2001
From: mliska <mliska@suse.cz>
Date: Fri, 26 Sep 2014 13:52:29 +0200
Subject: [PATCH 2/3] IPA ICF: patch2.
---
gcc/testsuite/c-c++-common/rotate-1.c | 2 +-
gcc/testsuite/c-c++-common/rotate-2.c | 2 +-
gcc/testsuite/c-c++-common/rotate-3.c | 2 +-
gcc/testsuite/c-c++-common/rotate-4.c | 2 +-
gcc/testsuite/g++.dg/cpp0x/rv-return.C | 1 +
gcc/testsuite/g++.dg/cpp0x/rv1n.C | 2 ++
gcc/testsuite/g++.dg/cpp0x/rv1p.C | 1 +
gcc/testsuite/g++.dg/cpp0x/rv2n.C | 2 +-
gcc/testsuite/g++.dg/cpp0x/rv3n.C | 2 +-
gcc/testsuite/g++.dg/cpp0x/rv4n.C | 2 +-
gcc/testsuite/g++.dg/cpp0x/rv5n.C | 2 +-
gcc/testsuite/g++.dg/cpp0x/rv6n.C | 2 +-
gcc/testsuite/g++.dg/cpp0x/rv7n.C | 2 +-
gcc/testsuite/g++.dg/ipa/devirt-g-1.C | 2 +-
gcc/testsuite/g++.dg/ipa/inline-1.C | 2 +-
gcc/testsuite/g++.dg/ipa/inline-2.C | 2 +-
gcc/testsuite/g++.dg/ipa/inline-3.C | 2 +-
gcc/testsuite/g++.dg/opt/pr30965.C | 2 +-
gcc/testsuite/g++.dg/tree-ssa/pr19637.C | 2 +-
gcc/testsuite/gcc.dg/guality/csttest.c | 2 +-
gcc/testsuite/gcc.dg/ipa/iinline-4.c | 2 +-
gcc/testsuite/gcc.dg/ipa/iinline-7.c | 2 +-
gcc/testsuite/gcc.dg/ipa/ipa-pta-13.c | 2 +-
gcc/testsuite/gcc.dg/ipa/ipacost-1.c | 2 +-
gcc/testsuite/gcc.dg/ipa/ipacost-2.c | 2 +-
gcc/testsuite/gcc.dg/ipa/ipcp-agg-6.c | 2 +-
gcc/testsuite/gcc.dg/ipa/remref-2a.c | 2 +-
gcc/testsuite/gcc.dg/ipa/remref-2b.c | 2 +-
gcc/testsuite/gcc.dg/pr46309-2.c | 2 +-
gcc/testsuite/gcc.dg/torture/ipa-pta-1.c | 2 +-
gcc/testsuite/gcc.dg/tree-ssa/andor-3.c | 2 +-
gcc/testsuite/gcc.dg/tree-ssa/andor-4.c | 2 +-
gcc/testsuite/gcc.dg/tree-ssa/andor-5.c | 2 +-
gcc/testsuite/gcc.dg/vect/no-vfa-pr29145.c | 1 +
gcc/testsuite/gcc.dg/vect/vect-cond-10.c | 1 +
gcc/testsuite/gcc.dg/vect/vect-cond-9.c | 1 +
gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-s16.c | 1 +
gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-u16.c | 1 +
gcc/testsuite/gcc.dg/vect/vect-widen-mult-half-u8.c | 1 +
gcc/testsuite/gcc.target/i386/bmi-1.c | 2 +-
gcc/testsuite/gcc.target/i386/bmi-2.c | 2 +-
gcc/testsuite/gcc.target/i386/pr56564-2.c | 2 +-
42 files changed, 43 insertions(+), 33 deletions(-)
@@ -1,6 +1,6 @@
/* Check rotate pattern detection. */
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-optimized" } */
+/* { dg-options "-O2 -fno-ipa-icf -fdump-tree-optimized" } */
/* { dg-final { scan-tree-dump-times "r\[<>]\[<>]" 96 "optimized" } } */
/* { dg-final { cleanup-tree-dump "optimized" } } */
@@ -1,6 +1,6 @@
/* Check rotate pattern detection. */
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-optimized" } */
+/* { dg-options "-O2 -fno-ipa-icf -fdump-tree-optimized" } */
/* Rotates should be recognized only in functions with | instead of + or ^,
or in functions that have constant shift counts (unused attribute on y). */
/* { dg-final { scan-tree-dump-times "r\[<>]\[<>]" 48 "optimized" } } */
@@ -1,6 +1,6 @@
/* Check rotate pattern detection. */
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-optimized" } */
+/* { dg-options "-O2 -fno-ipa-icf -fdump-tree-optimized" } */
/* { dg-final { scan-tree-dump-times "r\[<>]\[<>]" 96 "optimized" } } */
/* { dg-final { cleanup-tree-dump "optimized" } } */
@@ -1,6 +1,6 @@
/* Check rotate pattern detection. */
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-optimized" } */
+/* { dg-options "-O2 -fno-ipa-icf -fdump-tree-optimized" } */
/* Rotates should be recognized only in functions with | instead of + or ^,
or in functions that have constant shift counts (unused attribute on y). */
/* { dg-final { scan-tree-dump-times "r\[<>]\[<>]" 48 "optimized" } } */
@@ -1,5 +1,6 @@
// PR c++/41815
// { dg-do compile { target c++11 } }
+// { dg-options "-fno-ipa-icf" }
template<typename T, typename U> struct same_type;
template<typename T> struct same_type<T, T> {};
@@ -1,8 +1,10 @@
// I, Howard Hinnant, hereby place this code in the public domain.
+/* { dg-additional-options "-fno-ipa-icf" } */
// Test overload resolution among reference types
// { dg-do compile { target c++11 } }
+// { dg-additional-options "-fno-ipa-icf" }
template <bool> struct sa;
template <> struct sa<true> {};
@@ -4,6 +4,7 @@
// { dg-do compile { target c++11 } }
// { dg-skip-if "packed attribute missing for struct one/three/five/seven" { "epiphany-*-*" } { "*" } { "" } }
+// { dg-additional-options "-fno-ipa-icf" }
template <bool> struct sa;
template <> struct sa<true> {};
@@ -3,7 +3,7 @@
// Test overload resolution among reference types
// { dg-do compile { target c++11 } }
-// { dg-options "" }
+// { dg-options "-fno-ipa-icf" }
template <bool> struct sa;
template <> struct sa<true> {};
@@ -3,7 +3,7 @@
// Test overload resolution among reference types
// { dg-do compile { target c++11 } }
-// { dg-options "" }
+// { dg-options "-fno-ipa-icf" }
template <bool> struct sa;
template <> struct sa<true> {};
@@ -3,7 +3,7 @@
// Test overload resolution among reference types
// { dg-do compile { target c++11 } }
-// { dg-options "" }
+// { dg-options "-fno-ipa-icf" }
template <bool> struct sa;
template <> struct sa<true> {};
@@ -3,7 +3,7 @@
// Test overload resolution among reference types
// { dg-do compile { target c++11 } }
-// { dg-options "" }
+// { dg-options "-fno-ipa-icf" }
template <bool> struct sa;
template <> struct sa<true> {};
@@ -3,7 +3,7 @@
// Test overload resolution among reference types
// { dg-do compile { target c++11 } }
-// { dg-options "" }
+// { dg-options "-fno-ipa-icf" }
template <bool> struct sa;
template <> struct sa<true> {};
@@ -3,7 +3,7 @@
// Test overload resolution among reference types
// { dg-do compile { target c++11 } }
-// { dg-options "" }
+// { dg-options "-fno-ipa-icf" }
template <bool> struct sa;
template <> struct sa<true> {};
@@ -1,5 +1,5 @@
// { dg-do compile }
-// { dg-options "-O2 -fdump-ipa-cp -fdump-tree-optimized" }
+// { dg-options "-O2 -fdump-ipa-cp -fno-ipa-icf -fdump-tree-optimized" }
struct S { S(); virtual void xyzzy(); void otherstuff(); };
struct R { int a; S s; R(); };
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-ipa-inline --param max-early-inliner-iterations=1" } */
+/* { dg-options "-O2 -fdump-ipa-inline -fno-ipa-icf --param max-early-inliner-iterations=1" } */
/* { dg-add-options bind_pic_locally } */
namespace std {
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-ipa-inline --param max-early-inliner-iterations=1" } */
+/* { dg-options "-O2 -fdump-ipa-inline -fno-ipa-icf --param max-early-inliner-iterations=1" } */
/* { dg-add-options bind_pic_locally } */
namespace std {
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-ipa-inline --param max-early-inliner-iterations=1" } */
+/* { dg-options "-O2 -fdump-ipa-inline -fno-ipa-icf --param max-early-inliner-iterations=1" } */
/* { dg-add-options bind_pic_locally } */
#include <algorithm>
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O3 -fdump-tree-optimized" } */
+/* { dg-options "-O3 -fno-ipa-icf -fdump-tree-optimized" } */
#include <tr1/functional>
#include <algorithm>
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-dom1" } */
+/* { dg-options "-O2 -fno-ipa-icf -fdump-tree-dom1" } */
#include <new>
@@ -1,6 +1,6 @@
/* PR debug/49676 */
/* { dg-do run { target lp64 } } */
-/* { dg-options "-g" } */
+/* { dg-options "-g -fno-ipa-icf" } */
volatile int v;
@@ -1,7 +1,7 @@
/* Verify that simple indirect calls are inlined even without early
inlining.. */
/* { dg-do compile } */
-/* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining" } */
+/* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining -fno-ipa-icf" } */
struct S
{
@@ -1,7 +1,7 @@
/* Verify that simple indirect calls are inlined even without early
inlining.. */
/* { dg-do run } */
-/* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining" } */
+/* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining -fno-ipa-icf" } */
extern void abort (void);
@@ -1,5 +1,5 @@
/* { dg-do link } */
-/* { dg-options "-O2 -fipa-pta -fdump-ipa-pta-details -fdump-tree-fre2" } */
+/* { dg-options "-O2 -fipa-pta -fdump-ipa-pta-details -fdump-tree-fre2 -fno-ipa-icf" } */
static int x, y;
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-Os -fipa-cp -fdump-ipa-cp -fno-early-inlining -fdump-tree-optimized" } */
+/* { dg-options "-Os -fipa-cp -fdump-ipa-cp -fno-early-inlining -fdump-tree-optimized -fno-ipa-icf" } */
int array[100];
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining -fdump-tree-optimized" } */
+/* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining -fdump-tree-optimized -fno-ipa-icf" } */
/* { dg-add-options bind_pic_locally } */
int array[100];
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O3 -fno-ipa-sra -fdump-ipa-cp-details -fdump-tree-optimized-slim" } */
+/* { dg-options "-O3 -fno-ipa-sra -fdump-ipa-cp-details -fdump-tree-optimized-slim -fno-ipa-icf" } */
/* { dg-add-options bind_pic_locally } */
struct S
@@ -1,7 +1,7 @@
/* Verify that indirect inlining can also remove references of the functions it
discovers calls for. */
/* { dg-do compile } */
-/* { dg-options "-O3 -fno-early-inlining -fno-ipa-cp -fdump-ipa-inline -fdump-tree-optimized" } */
+/* { dg-options "-O3 -fno-early-inlining -fno-ipa-cp -fdump-ipa-inline -fdump-tree-optimized -fno-ipa-icf" } */
int global;
@@ -2,7 +2,7 @@
discovers calls for, even when nodes being inlined are virtual IPA-CP
clones. */
/* { dg-do compile } */
-/* { dg-options "-O3 -fno-early-inlining -fdump-ipa-cp-details -fdump-ipa-inline -fdump-tree-optimized" } */
+/* { dg-options "-O3 -fno-early-inlining -fdump-ipa-cp-details -fdump-ipa-inline -fdump-tree-optimized -fno-ipa-icf" } */
int global;
@@ -1,6 +1,6 @@
/* PR tree-optimization/46309 */
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-reassoc-details" } */
+/* { dg-options "-O2 -fno-ipa-icf -fdump-tree-reassoc-details" } */
int foo (void);
@@ -1,5 +1,5 @@
/* { dg-do compile { target { nonpic } } } */
-/* { dg-options "-fipa-pta -fdump-ipa-pta" } */
+/* { dg-options "-fipa-pta -fdump-ipa-pta -fno-ipa-icf" } */
/* { dg-skip-if "" { *-*-* } { "-O0" "-fno-fat-lto-objects" } { "" } } */
struct X { char x; char y; };
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-optimized" } */
+/* { dg-options "-O2 -fno-ipa-icf -fdump-tree-optimized" } */
int f(int y, int x)
{
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-optimized" } */
+/* { dg-options "-O2 -fno-ipa-icf -fdump-tree-optimized" } */
int f(int y, int x)
{
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-optimized" } */
+/* { dg-options "-O2 -fno-ipa-icf -fdump-tree-optimized" } */
int f(int y, int x)
{
@@ -1,4 +1,5 @@
/* { dg-require-effective-target vect_int } */
+/* { dg-additional-options "-fno-ipa-icf" } */
#include <stdarg.h>
#include "tree-vect.h"
@@ -1,4 +1,5 @@
/* { dg-require-effective-target vect_cond_mixed } */
+/* { dg-additional-options "-fno-ipa-icf" } */
#include "tree-vect.h"
@@ -1,4 +1,5 @@
/* { dg-require-effective-target vect_cond_mixed } */
+/* { dg-additional-options "-fno-ipa-icf" } */
#include "tree-vect.h"
@@ -1,4 +1,5 @@
/* { dg-require-effective-target vect_int } */
+/* { dg-additional-options "-fno-ipa-icf" } */
#include "tree-vect.h"
#include <stdlib.h>
@@ -1,4 +1,5 @@
/* { dg-require-effective-target vect_int } */
+/* { dg-additional-options "-fno-ipa-icf" } */
#include "tree-vect.h"
#include <stdlib.h>
@@ -1,4 +1,5 @@
/* { dg-require-effective-target vect_int } */
+/* { dg-additional-options "-fno-ipa-icf" } */
#include "tree-vect.h"
#include <stdlib.h>
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -mbmi " } */
+/* { dg-options "-O2 -fno-ipa-icf -mbmi " } */
/* { dg-final { scan-assembler "andn\[^\\n]*eax" } } */
/* { dg-final { scan-assembler-times "bextr\[ \\t]+\[^\\n]*eax" 2 } } */
/* { dg-final { scan-assembler-times "blsi\[^\\n]*eax" 2 } } */
@@ -1,5 +1,5 @@
/* { dg-do compile { target { ! { ia32 } } } } */
-/* { dg-options "-O2 -mbmi " } */
+/* { dg-options "-O2 -fno-ipa-icf -mbmi " } */
/* { dg-final { scan-assembler "andn\[^\\n]*rax" } } */
/* { dg-final { scan-assembler-times "bextr\[ \\t]+\[^\\n]*rax" 2 } } */
/* { dg-final { scan-assembler-times "blsi\[^\\n]*rax" 2 } } */
@@ -1,6 +1,6 @@
/* PR target/56564 */
/* { dg-do compile { target { *-*-linux* && lp64 } } } */
-/* { dg-options "-O3 -fno-pic -fdump-tree-optimized" } */
+/* { dg-options "-O3 -fno-pic -fno-ipa-icf -fdump-tree-optimized" } */
struct S { long a, b; } s = { 5, 6 };
char t[16] = { 7 };
--
1.8.4.5