This commit is contained in:
Jakub Jelinek 2015-02-12 11:29:37 +01:00
parent 62ab2a7e6a
commit 37242838cf
4 changed files with 20 additions and 101 deletions

1
.gitignore vendored
View File

@ -30,3 +30,4 @@
/gcc-4.9.2-20141212.tar.bz2
/gcc-4.9.2-20141217.tar.bz2
/gcc-4.9.2-20150107.tar.bz2
/gcc-4.9.2-20150212.tar.bz2

View File

@ -1,9 +1,9 @@
%global DATE 20150107
%global SVNREV 219315
%global DATE 20150212
%global SVNREV 220644
%global gcc_version 4.9.2
# Note, gcc_release must be integer, if you want to add suffixes to
# %{release}, append them after %{gcc_release} on Release: line.
%global gcc_release 5
%global gcc_release 6
%global _unpackaged_files_terminate_build 0
%global _performance_build 1
%global multilib_64_archs sparc64 ppc64 ppc64p7 s390x x86_64
@ -200,7 +200,6 @@ Patch14: gcc49-libgo-p224.patch
Patch15: gcc49-aarch64-async-unw-tables.patch
Patch16: gcc49-aarch64-unwind-opt.patch
Patch17: gcc49-pr64336.patch
Patch18: gcc49-pr64536.patch
Patch1100: cloog-%{cloog_version}-ppc64le-config.patch
@ -729,7 +728,6 @@ rm -f libgo/go/crypto/elliptic/p224{,_test}.go
%patch15 -p0 -b .aarch64-async-unw-tables~
%patch16 -p0 -b .aarch64-unwind-opt~
%patch17 -p0 -b .pr64336~
%patch18 -p0 -b .pr64536~
%if 0%{?_enable_debug_packages}
cat > split-debuginfo.sh <<\EOF
@ -2809,6 +2807,21 @@ fi
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
%changelog
* Thu Feb 12 2015 Jakub Jelinek <jakub@redhat.com> 4.9.2-6
- update from the 4.9 branch
- PRs c++/54442, c++/64514, c++/64521, c++/64901, c/57653, c/61553, c/64766,
c/64778, c/64824, c/64868, debug/64511, debug/64663, fortran/56867,
fortran/57023, fortran/60922, fortran/62044, fortran/63733,
fortran/64230, fortran/64528, fortran/64771, ipa/63970, ipa/64068,
ipa/64559, libstdc++/64476, libstdc++/64584, libstdc++/64585,
libstdc++/64646, libstdc++/64649, libstdc++/64680, middle-end/63704,
middle-end/64391, middle-end/64421, middle-end/64734,
rtl-optimization/61058, rtl-optimization/63637,
rtl-optimization/64286, rtl-optimization/64557, target/61413,
target/63424, target/64358, target/64479, target/64505, target/64513,
target/64580, target/64795, target/64882, target/64938, target/64979,
testsuite/64712, tree-optimization/64563
* Thu Jan 8 2015 Jakub Jelinek <jakub@redhat.com> 4.9.2-5
- don't remove tablejumps in rtl_tidy_fallthru_edge (#1136939,
PR rtl-optimization/64536)

View File

@ -1,95 +0,0 @@
2015-01-08 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/64536
* cfgrtl.c (rtl_tidy_fallthru_edge): Don't remove tablejumps.
* gcc.dg/pr64536.c: New test.
--- gcc/cfgrtl.c.jj 2015-01-05 13:07:12.000000000 +0100
+++ gcc/cfgrtl.c 2015-01-08 17:03:18.511218340 +0100
@@ -1782,10 +1782,14 @@ rtl_tidy_fallthru_edge (edge e)
if (INSN_P (q))
return;
+ q = BB_END (b);
+ /* Don't remove table jumps here. */
+ if (tablejump_p (q, NULL, NULL))
+ return;
+
/* Remove what will soon cease being the jump insn from the source block.
If block B consisted only of this single jump, turn it into a deleted
note. */
- q = BB_END (b);
if (JUMP_P (q)
&& onlyjump_p (q)
&& (any_uncondjump_p (q)
--- gcc/testsuite/gcc.dg/pr64536.c.jj 2015-01-08 17:13:32.218929003 +0100
+++ gcc/testsuite/gcc.dg/pr64536.c 2015-01-08 17:28:56.758428958 +0100
@@ -0,0 +1,67 @@
+/* PR rtl-optimization/64536 */
+/* { dg-do link } */
+/* { dg-options "-O2" } */
+/* { dg-additional-options "-fPIC" { target fpic } } */
+
+struct S { long q; } *h;
+long a, b, g, j, k, *c, *d, *e, *f, *i;
+long *baz (void)
+{
+ asm volatile ("" : : : "memory");
+ return e;
+}
+
+void
+bar (int x)
+{
+ int y;
+ for (y = 0; y < x; y++)
+ {
+ switch (b)
+ {
+ case 0:
+ case 2:
+ a++;
+ break;
+ case 3:
+ a++;
+ break;
+ case 1:
+ a++;
+ }
+ if (d)
+ {
+ f = baz ();
+ g = k++;
+ if (&h->q)
+ {
+ j = *f;
+ h->q = *f;
+ }
+ else
+ i = (long *) (h->q = *f);
+ *c++ = (long) f;
+ e += 6;
+ }
+ else
+ {
+ f = baz ();
+ g = k++;
+ if (&h->q)
+ {
+ j = *f;
+ h->q = *f;
+ }
+ else
+ i = (long *) (h->q = *f);
+ *c++ = (long) f;
+ e += 6;
+ }
+ }
+}
+
+int
+main ()
+{
+ return 0;
+}

View File

@ -1,3 +1,3 @@
e34fca0540d840e5d0f6427e98c92252 cloog-0.18.1.tar.gz
689887cca4a28c1385169bc5d3a14c77 gcc-4.9.2-20150107.tar.bz2
bad062712242d2825ca5ef7f3ce7f0bb gcc-4.9.2-20150212.tar.bz2
e039bfcfb6c2ab039b8ee69bf883e824 isl-0.12.2.tar.bz2