This commit is contained in:
Jakub Jelinek 2014-08-15 12:42:25 +02:00
parent 5d988eaf97
commit 2bdb06cea2
6 changed files with 63 additions and 125 deletions

1
.gitignore vendored
View File

@ -20,3 +20,4 @@
/gcc-4.9.1-20140801.tar.bz2
/gcc-4.9.1-20140807.tar.bz2
/gcc-4.9.1-20140813.tar.bz2
/gcc-4.9.1-20140815.tar.bz2

View File

@ -1,9 +1,9 @@
%global DATE 20140813
%global SVNREV 213898
%global DATE 20140815
%global SVNREV 214009
%global gcc_version 4.9.1
# 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 7
%global gcc_release 8
%global _unpackaged_files_terminate_build 0
%global _performance_build 1
%global multilib_64_archs sparc64 ppc64 ppc64p7 s390x x86_64
@ -105,7 +105,8 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
# Need binutils which support %gnu_unique_object >= 2.19.51.0.14
# Need binutils which support .cfi_sections >= 2.19.51.0.14-33
# Need binutils which support --no-add-needed >= 2.20.51.0.2-12
BuildRequires: binutils >= 2.20.51.0.2-12
# Need binutils which support -plugin
BuildRequires: binutils >= 2.24
# While gcc doesn't include statically linked binaries, during testing
# -static is used several times.
BuildRequires: glibc-static
@ -156,7 +157,8 @@ Requires: cpp = %{version}-%{release}
# Need binutils that support %gnu_unique_object
# Need binutils that support .cfi_sections
# Need binutils that support --no-add-needed
Requires: binutils >= 2.20.51.0.2-12
# Need binutils that support -plugin
Requires: binutils >= 2.24
# Make sure gdb will understand DW_FORM_strp
Conflicts: gdb < 5.1-2
Requires: glibc-devel >= 2.2.90-12
@ -199,9 +201,8 @@ Patch16: gcc49-libgo-p224.patch
Patch17: gcc49-aarch64-async-unw-tables.patch
Patch18: gcc49-aarch64-unwind-opt.patch
Patch19: gcc49-pr62098.patch
Patch20: gcc49-pr62103.patch
Patch21: gcc49-pr62025.patch
Patch22: gcc49-pr62073.patch
Patch20: gcc49-pr62025.patch
Patch21: gcc49-pr62131.patch
Patch1100: cloog-%{cloog_version}-ppc64le-config.patch
@ -731,9 +732,8 @@ rm -f libgo/go/crypto/elliptic/p224{,_test}.go
%patch17 -p0 -b .aarch64-async-unw-tables~
%patch18 -p0 -b .aarch64-unwind-opt~
%patch19 -p0 -b .pr62098~
%patch20 -p0 -b .pr62103~
%patch21 -p0 -b .pr62025~
%patch22 -p0 -b .pr62073~
%patch20 -p0 -b .pr62025~
%patch21 -p0 -b .pr62131~
%if 0%{?_enable_debug_packages}
cat > split-debuginfo.sh <<\EOF
@ -2806,6 +2806,14 @@ fi
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
%changelog
* Fri Aug 15 2014 Jakub Jelinek <jakub@redhat.com> 4.9.1-8
- update from the 4.9 branch
- PRs fortran/62076, fortran/62107, lto/62032, middle-end/62092,
target/61713
- allow elements/components of allocatables in !$omp atomic
(PR fortran/62131)
- require/build require >= 2.24 binutils
* Thu Aug 14 2014 Jakub Jelinek <jakub@redhat.com> 4.9.1-7
- fix up scheduler deps handling fix (PR target/62025)
- vectorization fix (PR tree-optimization/62073)

View File

@ -1,63 +0,0 @@
2014-08-12 Felix Yang <fei.yang0953@gmail.com>
PR tree-optimization/62073
* tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
a basic block.
* gcc.dg/vect/pr62073.c: New test.
--- gcc/tree-vect-loop.c (revision 213900)
+++ gcc/tree-vect-loop.c (revision 213901)
@@ -2321,7 +2321,8 @@ vect_is_simple_reduction_1 (loop_vec_inf
}
def1 = SSA_NAME_DEF_STMT (op1);
- if (flow_bb_inside_loop_p (loop, gimple_bb (def_stmt))
+ if (gimple_bb (def1)
+ && flow_bb_inside_loop_p (loop, gimple_bb (def_stmt))
&& loop->inner
&& flow_bb_inside_loop_p (loop->inner, gimple_bb (def1))
&& is_gimple_assign (def1))
--- gcc/testsuite/gcc.dg/vect/pr62073.c (revision 0)
+++ gcc/testsuite/gcc.dg/vect/pr62073.c (revision 213901)
@@ -0,0 +1,40 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-O1" } */
+
+struct S0
+{
+ int f7;
+};
+struct S0 g_50;
+int g_70;
+int g_76;
+
+int foo (long long p_56, int * p_57)
+{
+ int *l_77;
+ int l_101;
+
+ for (; g_70;)
+ {
+ int **l_78 = &l_77;
+ if (g_50.f7)
+ continue;
+ *l_78 = 0;
+ }
+ for (g_76 = 1; g_76 >= 0; g_76--)
+ {
+ int *l_90;
+ for (l_101 = 4; l_101 >= 0; l_101--)
+ if (l_101)
+ *l_90 = 0;
+ else
+ {
+ int **l_113 = &l_77;
+ *l_113 = p_57;
+ }
+ }
+
+ return *l_77;
+}
+
+/* { dg-final { cleanup-tree-dump "vect" } } */

View File

@ -1,50 +0,0 @@
2014-08-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
PR middle-end/62103
* gimple-fold.c (fold_ctor_reference): Don't fold in presence of
bitfields, that is when size doesn't match the size of type or the
size of the constructor.
* gcc.c-torture/execute/bitfld-6.c: New test.
--- gcc/gimple-fold.c (revision 213845)
+++ gcc/gimple-fold.c (revision 213846)
@@ -4355,8 +4355,10 @@ fold_ctor_reference (tree type, tree cto
result. */
if (!AGGREGATE_TYPE_P (TREE_TYPE (ctor)) && !offset
/* VIEW_CONVERT_EXPR is defined only for matching sizes. */
- && operand_equal_p (TYPE_SIZE (type),
- TYPE_SIZE (TREE_TYPE (ctor)), 0))
+ && TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST
+ && TREE_CODE (TYPE_SIZE (TREE_TYPE (ctor))) == INTEGER_CST
+ && !compare_tree_int (TYPE_SIZE (type), size)
+ && !compare_tree_int (TYPE_SIZE (TREE_TYPE (ctor)), size))
{
ret = canonicalize_constructor_val (unshare_expr (ctor), from_decl);
ret = fold_unary (VIEW_CONVERT_EXPR, type, ret);
--- gcc/testsuite/gcc.c-torture/execute/bitfld-6.c (revision 0)
+++ gcc/testsuite/gcc.c-torture/execute/bitfld-6.c (revision 213846)
@@ -0,0 +1,23 @@
+union U
+{
+ const int a;
+ unsigned b : 20;
+};
+
+static union U u = { 0x12345678 };
+
+/* Constant folding used to fail to account for endianness when folding a
+ union. */
+
+int
+main (void)
+{
+#ifdef __BYTE_ORDER__
+#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+ return u.b - 0x45678;
+#else
+ return u.b - 0x12345;
+#endif
+#endif
+ return 0;
+}

42
gcc49-pr62131.patch Normal file
View File

@ -0,0 +1,42 @@
2014-08-15 Jakub Jelinek <jakub@redhat.com>
Tobias Burnus <burnus@net-b.de>
PR fortran/62131
* openmp.c (resolve_omp_atomic): Only complain if code->expr1's attr
is allocatable, rather than whenever var->attr.allocatable.
* gfortran.dg/gomp/pr62131.f90: New test.
--- gcc/fortran/openmp.c (revision 214010)
+++ gcc/fortran/openmp.c (revision 214011)
@@ -2744,7 +2744,7 @@ resolve_omp_atomic (gfc_code *code)
break;
}
- if (var->attr.allocatable)
+ if (gfc_expr_attr (code->expr1).allocatable)
{
gfc_error ("!$OMP ATOMIC with ALLOCATABLE variable at %L",
&code->loc);
--- gcc/testsuite/gfortran.dg/gomp/pr62131.f90 (revision 0)
+++ gcc/testsuite/gfortran.dg/gomp/pr62131.f90 (revision 214011)
@@ -0,0 +1,19 @@
+! PR fortran/62131
+! { dg-do compile }
+! { dg-options "-fopenmp" }
+
+program pr62131
+ integer,allocatable :: nerrs(:,:)
+ allocate(nerrs(10,10))
+ nerrs(:,:) = 0
+!$omp parallel do
+ do k=1,10
+ call uperrs(k,1)
+ end do
+contains
+ subroutine uperrs(i,io)
+ integer,intent(in) :: i,io
+!$omp atomic
+ nerrs(i,io)=nerrs(i,io)+1
+ end subroutine
+end

View File

@ -1,3 +1,3 @@
e34fca0540d840e5d0f6427e98c92252 cloog-0.18.1.tar.gz
aebbdaf7f7e28a92e0ed5b4aec401fd5 gcc-4.9.1-20140813.tar.bz2
dff0aab44d2b28c124b53322678be13b gcc-4.9.1-20140815.tar.bz2
e039bfcfb6c2ab039b8ee69bf883e824 isl-0.12.2.tar.bz2