diff options
author | doko <doko@6ca36cf4-e1d1-0310-8c6f-e303bb2178ca> | 2015-08-25 13:58:28 +0000 |
---|---|---|
committer | doko <doko@6ca36cf4-e1d1-0310-8c6f-e303bb2178ca> | 2015-08-25 13:58:28 +0000 |
commit | 56d2334365f5809ae096bb5efe34f5f7e7b2b66a (patch) | |
tree | d17d1b9fc6572995e387695815e4668cea24c3f2 | |
parent | bc80576a454830982ec42aa48b78cdce4d0b91ac (diff) | |
download | gcc-5-56d2334365f5809ae096bb5efe34f5f7e7b2b66a.tar.gz |
* Update to SVN 20150825 (r227166, 5.2.1) from the gcc-5-branch.
git-svn-id: svn://anonscm.debian.org/gcccvs/branches/sid/gcc-5@8206 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca
-rw-r--r-- | debian/changelog | 4 | ||||
-rw-r--r-- | debian/patches/pr67211.diff | 76 | ||||
-rw-r--r-- | debian/patches/svn-updates.diff | 453 | ||||
-rw-r--r-- | debian/rules.patch | 1 |
4 files changed, 443 insertions, 91 deletions
diff --git a/debian/changelog b/debian/changelog index 0140edf..46046c2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,13 +1,13 @@ gcc-5 (5.2.1-16) UNRELEASED; urgency=medium - * Update to SVN 20150820 (r227033, 5.2.1) from the gcc-5-branch. + * Update to SVN 20150825 (r227166, 5.2.1) from the gcc-5-branch. - Backport the filesystem TS library. * libstdc++-dev: Install libstdc++fs.a. * Again, configure with --enable-targets=powerpcle-linux on ppc64el. * Apply proposed patch for PR target/67211 (ppc64el). * libgo-dev: Install libgolibbegin.a. - -- Matthias Klose <doko@debian.org> Wed, 19 Aug 2015 18:04:00 +0200 + -- Matthias Klose <doko@debian.org> Tue, 25 Aug 2015 15:56:11 +0200 gcc-5 (5.2.1-15) unstable; urgency=medium diff --git a/debian/patches/pr67211.diff b/debian/patches/pr67211.diff deleted file mode 100644 index 75cc85e..0000000 --- a/debian/patches/pr67211.diff +++ /dev/null @@ -1,76 +0,0 @@ -# DP: Proposed patch for PR target/67211 - -2015-08-19 Michael Meissner <meissner@linux.vnet.ibm.com> - - PR target/67211 - * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Set - -mefficient-unaligned-vsx on ISA 2.7. - - * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Convert - option to a masked option. - - * config/rs6000/rs6000.c (rs6000_option_override_internal): Rework - logic for -mefficient-unaligned-vsx so that it is set via an arch - ISA option, instead of being set if -mtune=power8 is set. - ---- a/src/gcc/config/rs6000/rs6000-cpus.def -+++ b/src/gcc/config/rs6000/rs6000-cpus.def -@@ -53,6 +53,7 @@ - | OPTION_MASK_P8_VECTOR \ - | OPTION_MASK_CRYPTO \ - | OPTION_MASK_DIRECT_MOVE \ -+ | OPTION_MASK_EFFICIENT_UNALIGNED_VSX \ - | OPTION_MASK_HTM \ - | OPTION_MASK_QUAD_MEMORY \ - | OPTION_MASK_QUAD_MEMORY_ATOMIC \ -@@ -78,6 +79,7 @@ - | OPTION_MASK_DFP \ - | OPTION_MASK_DIRECT_MOVE \ - | OPTION_MASK_DLMZB \ -+ | OPTION_MASK_EFFICIENT_UNALIGNED_VSX \ - | OPTION_MASK_FPRND \ - | OPTION_MASK_HTM \ - | OPTION_MASK_ISEL \ ---- a/src/gcc/config/rs6000/rs6000.opt -+++ b/src/gcc/config/rs6000/rs6000.opt -@@ -212,7 +212,7 @@ Target Undocumented Var(TARGET_ALLOW_MOV - ; Allow/disallow the movmisalign in DF/DI vectors - - mefficient-unaligned-vector --Target Undocumented Report Var(TARGET_EFFICIENT_UNALIGNED_VSX) Init(-1) Save -+Target Undocumented Report Mask(EFFICIENT_UNALIGNED_VSX) Var(rs6000_isa_flags) - ; Consider unaligned VSX accesses to be efficient/inefficient - - mallow-df-permute ---- a/src/gcc/config/rs6000/rs6000.c -+++ b/src/gcc/config/rs6000/rs6000.c -@@ -4256,15 +4256,21 @@ rs6000_option_override_internal (bool gl - TARGET_ALLOW_MOVMISALIGN has been disabled by the user, then - TARGET_EFFICIENT_UNALIGNED_VSX must be as well. The converse is - not true. */ -- if (TARGET_EFFICIENT_UNALIGNED_VSX == -1) { -- if (TARGET_VSX && rs6000_cpu == PROCESSOR_POWER8 -- && TARGET_ALLOW_MOVMISALIGN != 0) -- TARGET_EFFICIENT_UNALIGNED_VSX = 1; -- else -- TARGET_EFFICIENT_UNALIGNED_VSX = 0; -- } -+ if (TARGET_EFFICIENT_UNALIGNED_VSX && !TARGET_VSX) -+ { -+ error ("-mefficient-unaligned-vsx requires -mvsx"); -+ rs6000_isa_flags &= ~OPTION_MASK_EFFICIENT_UNALIGNED_VSX; -+ } -+ -+ if (TARGET_EFFICIENT_UNALIGNED_VSX && !TARGET_ALLOW_MOVMISALIGN) -+ { -+ if ((rs6000_isa_flags_explicit & OPTION_MASK_EFFICIENT_UNALIGNED_VSX) != 0) -+ error ("-mefficient-unaligned-vsx requires -mallow-movmisalign"); -+ rs6000_isa_flags &= ~OPTION_MASK_EFFICIENT_UNALIGNED_VSX; -+ } - -- if (TARGET_ALLOW_MOVMISALIGN == -1 && rs6000_cpu == PROCESSOR_POWER8) -+ /* Set -mallow-movmisalign to on explicitly if we have ISA 2.07 support. */ -+ if (TARGET_ALLOW_MOVMISALIGN == -1 && TARGET_P8_VECTOR & TARGET_DIRECT_MOVE) - TARGET_ALLOW_MOVMISALIGN = 1; - - /* Set the builtin mask of the various options used that could affect which diff --git a/debian/patches/svn-updates.diff b/debian/patches/svn-updates.diff index f0fa7ac..e36c22d 100644 --- a/debian/patches/svn-updates.diff +++ b/debian/patches/svn-updates.diff @@ -1,10 +1,10 @@ -# DP: updates from the 5 branch upto 20150819 (r227033). +# DP: updates from the 5 branch upto 20150825 (r227166). last_update() { cat > ${dir}LAST_UPDATED <EOF -Thu Aug 20 15:48:55 CEST 2015 -Thu Aug 20 13:48:55 UTC 2015 (revision 227033) +Tue Aug 25 15:52:53 CEST 2015 +Tue Aug 25 13:52:53 UTC 2015 (revision 227166) EOF } @@ -12,6 +12,83 @@ LANG=C svn diff svn://gcc.gnu.org/svn/gcc/tags/gcc_5_2_0_release svn://gcc.gnu.o | sed -r 's,^--- (\S+)\t(\S+)(.*)$,--- a/src/\1\t\2,;s,^\+\+\+ (\S+)\t(\S+)(.*)$,+++ b/src/\1\t\2,' \ | awk '/^Index:.*\.(class|texi)/ {skip=1; next} /^Index:/ { skip=0 } skip==0' +Index: libgomp/iter.c +=================================================================== +--- a/src/libgomp/iter.c (.../tags/gcc_5_2_0_release) ++++ b/src/libgomp/iter.c (.../branches/gcc-5-branch) +@@ -218,7 +218,7 @@ + } + } + +- start = ws->next; ++ start = __atomic_load_n (&ws->next, MEMMODEL_RELAXED); + while (1) + { + long left = end - start; +@@ -301,7 +301,7 @@ + long start, end, nend, incr; + unsigned long chunk_size; + +- start = ws->next; ++ start = __atomic_load_n (&ws->next, MEMMODEL_RELAXED); + end = ws->end; + incr = ws->incr; + chunk_size = ws->chunk_size; +Index: libgomp/iter_ull.c +=================================================================== +--- a/src/libgomp/iter_ull.c (.../tags/gcc_5_2_0_release) ++++ b/src/libgomp/iter_ull.c (.../branches/gcc-5-branch) +@@ -219,7 +219,7 @@ + } + } + +- start = ws->next_ull; ++ start = __atomic_load_n (&ws->next_ull, MEMMODEL_RELAXED); + while (1) + { + gomp_ull left = end - start; +@@ -305,7 +305,7 @@ + gomp_ull start, end, nend, incr; + gomp_ull chunk_size; + +- start = ws->next_ull; ++ start = __atomic_load_n (&ws->next_ull, MEMMODEL_RELAXED); + end = ws->end_ull; + incr = ws->incr_ull; + chunk_size = ws->chunk_size_ull; +Index: libgomp/ChangeLog +=================================================================== +--- a/src/libgomp/ChangeLog (.../tags/gcc_5_2_0_release) ++++ b/src/libgomp/ChangeLog (.../branches/gcc-5-branch) +@@ -1,3 +1,13 @@ ++2015-08-24 Joost VandeVondele <vondele@gnu.gcc.org> ++ ++ PR libgomp/66761 ++ PR libgomp/67303 ++ * iter.c (gomp_iter_dynamic_next): Employ an atomic load. ++ (gomp_iter_guided_next): Idem. ++ * iter_ull.c (gomp_iter_ull_dynamic_next): Idem. ++ (gomp_iter_ull_guided_next): Idem. ++ * config/linux/wait.h (do_spin): Idem. ++ + 2015-07-16 Release Manager + + * GCC 5.2.0 released. +Index: libgomp/config/linux/wait.h +=================================================================== +--- a/src/libgomp/config/linux/wait.h (.../tags/gcc_5_2_0_release) ++++ b/src/libgomp/config/linux/wait.h (.../branches/gcc-5-branch) +@@ -49,7 +49,9 @@ + { + unsigned long long i, count = gomp_spin_count_var; + +- if (__builtin_expect (gomp_managed_threads > gomp_available_cpus, 0)) ++ if (__builtin_expect (__atomic_load_n (&gomp_managed_threads, ++ MEMMODEL_RELAXED) ++ > gomp_available_cpus, 0)) + count = gomp_throttled_spin_count_var; + for (i = 0; i < count; i++) + if (__builtin_expect (__atomic_load_n (addr, MEMMODEL_RELAXED) != val, 0)) Index: libstdc++-v3/configure =================================================================== --- a/src/libstdc++-v3/configure (.../tags/gcc_5_2_0_release) @@ -11733,7 +11810,7 @@ Index: gcc/DATESTAMP +++ b/src/gcc/DATESTAMP (.../branches/gcc-5-branch) @@ -1 +1 @@ -20150716 -+20150820 ++20150825 Index: gcc/postreload.c =================================================================== --- a/src/gcc/postreload.c (.../tags/gcc_5_2_0_release) @@ -12198,7 +12275,38 @@ Index: gcc/ChangeLog =================================================================== --- a/src/gcc/ChangeLog (.../tags/gcc_5_2_0_release) +++ b/src/gcc/ChangeLog (.../branches/gcc-5-branch) -@@ -1,3 +1,503 @@ +@@ -1,3 +1,534 @@ ++2015-08-25 Dominik Vogt <vogt@linux.vnet.ibm.com> ++ ++ Backport from mainline ++ 2015-08-21 Dominik Vogt <vogt@linux.vnet.ibm.com> ++ ++ * config/s390/s390-builtins.def: Fix value range of vec_load_bndry. ++ ++2015-08-24 Michael Meissner <meissner@linux.vnet.ibm.com> ++ ++ Back port from mainline: ++ 2015-08-24 Michael Meissner <meissner@linux.vnet.ibm.com> ++ ++ PR target/67211 ++ * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Set ++ -mefficient-unaligned-vsx on ISA 2.7. ++ ++ * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Convert ++ option to a masked option. ++ ++ * config/rs6000/rs6000.c (rs6000_option_override_internal): Rework ++ logic for -mefficient-unaligned-vsx so that it is set via an arch ++ ISA option, instead of being set if -mtune=power8 is set. Move ++ -mefficient-unaligned-vsx and -mallow-movmisalign handling to be ++ near other default option handling. ++ ++2015-08-20 Georg-Johann Lay <avr@gjlay.de> ++ ++ * config/avr/avr.c (avr_insert_attributes): In diagnostic essage: ++ Multiply argument avr_n_flash by 64 to match unit of "KiB". ++ (avr_pgm_check_var_decl): Same. ++ +2015-08-18 Segher Boessenkool <segher@kernel.crashing.org> + + Backport from mainline: @@ -12702,7 +12810,7 @@ Index: gcc/ChangeLog 2015-07-16 Release Manager * GCC 5.2.0 released. -@@ -119,8 +619,8 @@ +@@ -119,8 +650,8 @@ 2015-07-09 Iain Sandoe <iain@codesourcery.com> PR target/66523 @@ -13634,6 +13742,91 @@ Index: gcc/testsuite/gcc.target/i386/mpx/pr66581.c + *d = 1; + goto *a; +} +Index: gcc/testsuite/gcc.target/s390/zvector/vec-load_bndry-1.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/s390/zvector/vec-load_bndry-1.c (.../tags/gcc_5_2_0_release) ++++ b/src/gcc/testsuite/gcc.target/s390/zvector/vec-load_bndry-1.c (.../branches/gcc-5-branch) +@@ -0,0 +1,80 @@ ++/* { dg-do compile { target { s390*-*-* } } } */ ++/* { dg-options "-O0 -mzarch -march=z13 -mzvector" } */ ++ ++#include <vecintrin.h> ++ ++signed char ++foo64 (signed char *p) ++{ ++ return vec_load_bndry (p, 64)[0]; ++ /* { dg-final { scan-assembler-times "\tvlbb\t%v..?,0\\(%r..?\\),0" 1 } } */ ++} ++ ++signed char ++foo128 (signed char *p) ++{ ++ return ++ vec_load_bndry (p, 128)[0] ++ + vec_load_bndry (p + 16, 128)[0]; ++ /* { dg-final { scan-assembler-times "\tvlbb\t%v..?,0\\(%r..?\\),1" 2 } } */ ++} ++ ++signed char ++foo256 (signed char *p) ++{ ++ return ++ vec_load_bndry (p, 256)[0] ++ + vec_load_bndry (p + 16, 256)[0] ++ + vec_load_bndry (p + 32, 256)[0]; ++ /* { dg-final { scan-assembler-times "\tvlbb\t%v..?,0\\(%r..?\\),2" 3 } } */ ++} ++ ++signed char ++foo512 (signed char *p) ++{ ++ return ++ vec_load_bndry (p, 512)[0] ++ + vec_load_bndry (p + 16, 512)[0] ++ + vec_load_bndry (p + 32, 512)[0] ++ + vec_load_bndry (p + 48, 512)[0]; ++ /* { dg-final { scan-assembler-times "\tvlbb\t%v..?,0\\(%r..?\\),3" 4 } } */ ++} ++ ++signed char ++foo1024 (signed char *p) ++{ ++ return ++ vec_load_bndry (p, 1024)[0] ++ + vec_load_bndry (p + 16, 1024)[0] ++ + vec_load_bndry (p + 32, 1024)[0] ++ + vec_load_bndry (p + 48, 1024)[0] ++ + vec_load_bndry (p + 64, 1024)[0]; ++ /* { dg-final { scan-assembler-times "\tvlbb\t%v..?,0\\(%r..?\\),4" 5 } } */ ++} ++ ++signed char ++foo2048 (signed char *p) ++{ ++ return ++ vec_load_bndry (p, 2048)[0] ++ + vec_load_bndry (p + 16, 2048)[0] ++ + vec_load_bndry (p + 32, 2048)[0] ++ + vec_load_bndry (p + 48, 2048)[0] ++ + vec_load_bndry (p + 64, 2048)[0] ++ + vec_load_bndry (p + 80, 2048)[0]; ++ /* { dg-final { scan-assembler-times "\tvlbb\t%v..?,0\\(%r..?\\),5" 6 } } */ ++} ++ ++signed char ++foo4096 (signed char *p) ++{ ++ return ++ vec_load_bndry (p, 4096)[0] ++ + vec_load_bndry (p + 16, 4096)[0] ++ + vec_load_bndry (p + 32, 4096)[0] ++ + vec_load_bndry (p + 48, 4096)[0] ++ + vec_load_bndry (p + 64, 4096)[0] ++ + vec_load_bndry (p + 80, 4096)[0] ++ + vec_load_bndry (p + 96, 4096)[0]; ++ /* { dg-final { scan-assembler-times "\tvlbb\t%v..?,0\\(%r..?\\),6" 7 } } */ ++} Index: gcc/testsuite/gfortran.dg/pr66864.f90 =================================================================== --- a/src/gcc/testsuite/gfortran.dg/pr66864.f90 (.../tags/gcc_5_2_0_release) @@ -14556,7 +14749,22 @@ Index: gcc/testsuite/ChangeLog =================================================================== --- a/src/gcc/testsuite/ChangeLog (.../tags/gcc_5_2_0_release) +++ b/src/gcc/testsuite/ChangeLog (.../branches/gcc-5-branch) -@@ -1,3 +1,362 @@ +@@ -1,3 +1,377 @@ ++2015-08-25 Dominik Vogt <vogt@linux.vnet.ibm.com> ++ ++ Backport from mainline ++ 2015-08-21 Dominik Vogt <vogt@linux.vnet.ibm.com> ++ ++ * gcc.target/s390/zvector/vec-load_bndry-1.c: New test. ++ ++2015-08-24 Michael Meissner <meissner@linux.vnet.ibm.com> ++ ++ Backport from mainline: ++ 2015-08-24 Michael Meissner <meissner@linux.vnet.ibm.com> ++ ++ PR target/67211 ++ * g++.dg/pr67211.C: New test. ++ +2015-08-18 Segher Boessenkool <segher@kernel.crashing.org> + + Backport from mainline: @@ -14919,7 +15127,7 @@ Index: gcc/testsuite/ChangeLog 2015-07-16 Release Manager * GCC 5.2.0 released. -@@ -792,7 +1151,7 @@ +@@ -792,7 +1166,7 @@ Add missing ChangeLog entry for r222341. Backport from trunk r222273 @@ -14928,6 +15136,61 @@ Index: gcc/testsuite/ChangeLog * gcc.target/i386/avx512bw-vpermi2w-2.c: Fix includes to use actual headers. * gcc.target/i386/avx512bw-vpermt2w-2.c: Likewise. +Index: gcc/testsuite/g++.dg/pr67211.C +=================================================================== +--- a/src/gcc/testsuite/g++.dg/pr67211.C (.../tags/gcc_5_2_0_release) ++++ b/src/gcc/testsuite/g++.dg/pr67211.C (.../branches/gcc-5-branch) +@@ -0,0 +1,50 @@ ++/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ ++/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */ ++/* { dg-require-effective-target powerpc_p8vector_ok } */ ++/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power7" } } */ ++/* { dg-options "-mcpu=power7 -mtune=power8 -O3 -w" } */ ++ ++/* target/67211, compiler got a 'insn does not satisfy its constraints' error. */ ++ ++template <typename _InputIterator, typename _ForwardIterator> ++void find_first_of(_InputIterator, _InputIterator, _ForwardIterator p3, ++ _ForwardIterator p4) { ++ for (; p3 != p4; ++p3) ++ ; ++} ++ ++template <typename, typename, typename> struct A { ++ int _S_buffer_size; ++ int *_M_cur; ++ int *_M_first; ++ int *_M_last; ++ int **_M_node; ++ void operator++() { ++ if (_M_cur == _M_last) ++ m_fn1(_M_node + 1); ++ } ++ void m_fn1(int **p1) { ++ _M_node = p1; ++ _M_first = *p1; ++ _M_last = _M_first + _S_buffer_size; ++ } ++}; ++ ++template <typename _Tp, typename _Ref, typename _Ptr> ++bool operator==(A<_Tp, _Ref, _Ptr>, A<_Tp, _Ref, _Ptr>); ++template <typename _Tp, typename _Ref, typename _Ptr> ++bool operator!=(A<_Tp, _Ref, _Ptr> p1, A<_Tp, _Ref, _Ptr> p2) { ++ return p1 == p2; ++} ++ ++class B { ++public: ++ A<int, int, int> m_fn2(); ++}; ++struct { ++ B j; ++} a; ++void Linked() { ++ A<int, int, int> b, c, d; ++ find_first_of(d, c, b, a.j.m_fn2()); ++} Index: gcc/testsuite/g++.dg/cpp0x/alignas1.C =================================================================== --- a/src/gcc/testsuite/g++.dg/cpp0x/alignas1.C (.../tags/gcc_5_2_0_release) @@ -533059,6 +533322,35 @@ Index: gcc/config/alpha/alpha.c emit_label (XEXP (label2, 0)); } +Index: gcc/config/s390/s390-builtins.def +=================================================================== +--- a/src/gcc/config/s390/s390-builtins.def (.../tags/gcc_5_2_0_release) ++++ b/src/gcc/config/s390/s390-builtins.def (.../branches/gcc-5-branch) +@@ -438,15 +438,15 @@ + B_DEF (s390_vllezg, vec_insert_and_zerov2di,0, B_VX, 0, BT_FN_UV2DI_ULONGLONGCONSTPTR) + + OB_DEF (s390_vec_load_bndry, s390_vec_load_bndry_s8,s390_vec_load_bndry_dbl,B_VX, BT_FN_OV4SI_INTCONSTPTR_INT) +-OB_DEF_VAR (s390_vec_load_bndry_s8, s390_vlbb, O2_U3, BT_OV_V16QI_SCHARCONSTPTR_USHORT) +-OB_DEF_VAR (s390_vec_load_bndry_u8, s390_vlbb, O2_U3, BT_OV_UV16QI_UCHARCONSTPTR_USHORT) +-OB_DEF_VAR (s390_vec_load_bndry_s16, s390_vlbb, O2_U3, BT_OV_V8HI_SHORTCONSTPTR_USHORT) +-OB_DEF_VAR (s390_vec_load_bndry_u16, s390_vlbb, O2_U3, BT_OV_UV8HI_USHORTCONSTPTR_USHORT) +-OB_DEF_VAR (s390_vec_load_bndry_s32, s390_vlbb, O2_U3, BT_OV_V4SI_INTCONSTPTR_USHORT) +-OB_DEF_VAR (s390_vec_load_bndry_u32, s390_vlbb, O2_U3, BT_OV_UV4SI_UINTCONSTPTR_USHORT) +-OB_DEF_VAR (s390_vec_load_bndry_s64, s390_vlbb, O2_U3, BT_OV_V2DI_LONGLONGCONSTPTR_USHORT) +-OB_DEF_VAR (s390_vec_load_bndry_u64, s390_vlbb, O2_U3, BT_OV_UV2DI_ULONGLONGCONSTPTR_USHORT) +-OB_DEF_VAR (s390_vec_load_bndry_dbl, s390_vlbb, O2_U3, BT_OV_V2DF_DBLCONSTPTR_USHORT) ++OB_DEF_VAR (s390_vec_load_bndry_s8, s390_vlbb, O2_U16, BT_OV_V16QI_SCHARCONSTPTR_USHORT) ++OB_DEF_VAR (s390_vec_load_bndry_u8, s390_vlbb, O2_U16, BT_OV_UV16QI_UCHARCONSTPTR_USHORT) ++OB_DEF_VAR (s390_vec_load_bndry_s16, s390_vlbb, O2_U16, BT_OV_V8HI_SHORTCONSTPTR_USHORT) ++OB_DEF_VAR (s390_vec_load_bndry_u16, s390_vlbb, O2_U16, BT_OV_UV8HI_USHORTCONSTPTR_USHORT) ++OB_DEF_VAR (s390_vec_load_bndry_s32, s390_vlbb, O2_U16, BT_OV_V4SI_INTCONSTPTR_USHORT) ++OB_DEF_VAR (s390_vec_load_bndry_u32, s390_vlbb, O2_U16, BT_OV_UV4SI_UINTCONSTPTR_USHORT) ++OB_DEF_VAR (s390_vec_load_bndry_s64, s390_vlbb, O2_U16, BT_OV_V2DI_LONGLONGCONSTPTR_USHORT) ++OB_DEF_VAR (s390_vec_load_bndry_u64, s390_vlbb, O2_U16, BT_OV_UV2DI_ULONGLONGCONSTPTR_USHORT) ++OB_DEF_VAR (s390_vec_load_bndry_dbl, s390_vlbb, O2_U16, BT_OV_V2DF_DBLCONSTPTR_USHORT) + + B_DEF (s390_vlbb, vlbb, 0, B_VX, O2_U3, BT_FN_UV16QI_UCHARCONSTPTR_USHORT) + Index: gcc/config/s390/s390.md =================================================================== --- a/src/gcc/config/s390/s390.md (.../tags/gcc_5_2_0_release) @@ -533596,6 +533888,32 @@ Index: gcc/config/avr/avr-dimode.md "%~call __<extend_u>mulsidi3" [(set_attr "adjust_len" "call") (set_attr "cc" "clobber")]) +Index: gcc/config/avr/avr.c +=================================================================== +--- a/src/gcc/config/avr/avr.c (.../tags/gcc_5_2_0_release) ++++ b/src/gcc/config/avr/avr.c (.../branches/gcc-5-branch) +@@ -9272,10 +9272,10 @@ + { + if (TYPE_P (node)) + error ("%qT uses address space %qs beyond flash of %d KiB", +- node, avr_addrspace[as].name, avr_n_flash); ++ node, avr_addrspace[as].name, 64 * avr_n_flash); + else + error ("%s %q+D uses address space %qs beyond flash of %d KiB", +- reason, node, avr_addrspace[as].name, avr_n_flash); ++ reason, node, avr_addrspace[as].name, 64 * avr_n_flash); + } + else + { +@@ -9322,7 +9322,7 @@ + if (avr_addrspace[as].segment >= avr_n_flash) + { + error ("variable %q+D located in address space %qs beyond flash " +- "of %d KiB", node, avr_addrspace[as].name, avr_n_flash); ++ "of %d KiB", node, avr_addrspace[as].name, 64 * avr_n_flash); + } + else if (!AVR_HAVE_LPM && avr_addrspace[as].pointer_size > 2) + { Index: gcc/config/ia64/ia64.c =================================================================== --- a/src/gcc/config/ia64/ia64.c (.../tags/gcc_5_2_0_release) @@ -534042,11 +534360,113 @@ Index: gcc/config/rs6000/htm.md UNSPECV_HTM_TABORT))] "TARGET_HTM" "tabort. %0" +Index: gcc/config/rs6000/rs6000-cpus.def +=================================================================== +--- a/src/gcc/config/rs6000/rs6000-cpus.def (.../tags/gcc_5_2_0_release) ++++ b/src/gcc/config/rs6000/rs6000-cpus.def (.../branches/gcc-5-branch) +@@ -53,6 +53,7 @@ + | OPTION_MASK_P8_VECTOR \ + | OPTION_MASK_CRYPTO \ + | OPTION_MASK_DIRECT_MOVE \ ++ | OPTION_MASK_EFFICIENT_UNALIGNED_VSX \ + | OPTION_MASK_HTM \ + | OPTION_MASK_QUAD_MEMORY \ + | OPTION_MASK_QUAD_MEMORY_ATOMIC \ +@@ -78,6 +79,7 @@ + | OPTION_MASK_DFP \ + | OPTION_MASK_DIRECT_MOVE \ + | OPTION_MASK_DLMZB \ ++ | OPTION_MASK_EFFICIENT_UNALIGNED_VSX \ + | OPTION_MASK_FPRND \ + | OPTION_MASK_HTM \ + | OPTION_MASK_ISEL \ +Index: gcc/config/rs6000/rs6000.opt +=================================================================== +--- a/src/gcc/config/rs6000/rs6000.opt (.../tags/gcc_5_2_0_release) ++++ b/src/gcc/config/rs6000/rs6000.opt (.../branches/gcc-5-branch) +@@ -212,7 +212,7 @@ + ; Allow/disallow the movmisalign in DF/DI vectors + + mefficient-unaligned-vector +-Target Undocumented Report Var(TARGET_EFFICIENT_UNALIGNED_VSX) Init(-1) Save ++Target Undocumented Report Mask(EFFICIENT_UNALIGNED_VSX) Var(rs6000_isa_flags) + ; Consider unaligned VSX accesses to be efficient/inefficient + + mallow-df-permute Index: gcc/config/rs6000/rs6000.c =================================================================== --- a/src/gcc/config/rs6000/rs6000.c (.../tags/gcc_5_2_0_release) +++ b/src/gcc/config/rs6000/rs6000.c (.../branches/gcc-5-branch) -@@ -20537,12 +20537,15 @@ +@@ -3692,6 +3692,45 @@ + && optimize >= 3) + rs6000_isa_flags |= OPTION_MASK_P8_FUSION_SIGN; + ++ /* Set -mallow-movmisalign to explicitly on if we have full ISA 2.07 ++ support. If we only have ISA 2.06 support, and the user did not specify ++ the switch, leave it set to -1 so the movmisalign patterns are enabled, ++ but we don't enable the full vectorization support */ ++ if (TARGET_ALLOW_MOVMISALIGN == -1 && TARGET_P8_VECTOR && TARGET_DIRECT_MOVE) ++ TARGET_ALLOW_MOVMISALIGN = 1; ++ ++ else if (TARGET_ALLOW_MOVMISALIGN && !TARGET_VSX) ++ { ++ if (TARGET_ALLOW_MOVMISALIGN > 0) ++ error ("-mallow-movmisalign requires -mvsx"); ++ ++ TARGET_ALLOW_MOVMISALIGN = 0; ++ } ++ ++ /* Determine when unaligned vector accesses are permitted, and when ++ they are preferred over masked Altivec loads. Note that if ++ TARGET_ALLOW_MOVMISALIGN has been disabled by the user, then ++ TARGET_EFFICIENT_UNALIGNED_VSX must be as well. The converse is ++ not true. */ ++ if (TARGET_EFFICIENT_UNALIGNED_VSX) ++ { ++ if (!TARGET_VSX) ++ { ++ if (rs6000_isa_flags_explicit & OPTION_MASK_EFFICIENT_UNALIGNED_VSX) ++ error ("-mefficient-unaligned-vsx requires -mvsx"); ++ ++ rs6000_isa_flags &= ~OPTION_MASK_EFFICIENT_UNALIGNED_VSX; ++ } ++ ++ else if (!TARGET_ALLOW_MOVMISALIGN) ++ { ++ if (rs6000_isa_flags_explicit & OPTION_MASK_EFFICIENT_UNALIGNED_VSX) ++ error ("-mefficient-unaligned-vsx requires -mallow-movmisalign"); ++ ++ rs6000_isa_flags &= ~OPTION_MASK_EFFICIENT_UNALIGNED_VSX; ++ } ++ } ++ + if (TARGET_DEBUG_REG || TARGET_DEBUG_TARGET) + rs6000_print_isa_options (stderr, 0, "after defaults", rs6000_isa_flags); + +@@ -4251,22 +4290,6 @@ + } + } + +- /* Determine when unaligned vector accesses are permitted, and when +- they are preferred over masked Altivec loads. Note that if +- TARGET_ALLOW_MOVMISALIGN has been disabled by the user, then +- TARGET_EFFICIENT_UNALIGNED_VSX must be as well. The converse is +- not true. */ +- if (TARGET_EFFICIENT_UNALIGNED_VSX == -1) { +- if (TARGET_VSX && rs6000_cpu == PROCESSOR_POWER8 +- && TARGET_ALLOW_MOVMISALIGN != 0) +- TARGET_EFFICIENT_UNALIGNED_VSX = 1; +- else +- TARGET_EFFICIENT_UNALIGNED_VSX = 0; +- } +- +- if (TARGET_ALLOW_MOVMISALIGN == -1 && rs6000_cpu == PROCESSOR_POWER8) +- TARGET_ALLOW_MOVMISALIGN = 1; +- + /* Set the builtin mask of the various options used that could affect which + builtins were used. In the past we used target_flags, but we've run out + of bits, and some options like SPE and PAIRED are no longer in +@@ -20537,12 +20560,15 @@ case MEMMODEL_RELAXED: case MEMMODEL_CONSUME: case MEMMODEL_ACQUIRE: @@ -534062,7 +534482,7 @@ Index: gcc/config/rs6000/rs6000.c emit_insn (gen_hwsync ()); break; default: -@@ -20559,10 +20562,13 @@ +@@ -20559,10 +20585,13 @@ case MEMMODEL_RELAXED: case MEMMODEL_CONSUME: case MEMMODEL_RELEASE: @@ -534076,7 +534496,7 @@ Index: gcc/config/rs6000/rs6000.c emit_insn (gen_isync ()); break; default: -@@ -20662,8 +20668,8 @@ +@@ -20662,8 +20691,8 @@ oldval = operands[3]; newval = operands[4]; is_weak = (INTVAL (operands[5]) != 0); @@ -534087,7 +534507,7 @@ Index: gcc/config/rs6000/rs6000.c orig_mode = mode = GET_MODE (mem); mask = shift = NULL_RTX; -@@ -20751,12 +20757,12 @@ +@@ -20751,12 +20780,12 @@ emit_unlikely_jump (x, label1); } @@ -534102,6 +534522,15 @@ Index: gcc/config/rs6000/rs6000.c emit_label (XEXP (label2, 0)); if (shift) +@@ -32274,6 +32303,8 @@ + { "crypto", OPTION_MASK_CRYPTO, false, true }, + { "direct-move", OPTION_MASK_DIRECT_MOVE, false, true }, + { "dlmzb", OPTION_MASK_DLMZB, false, true }, ++ { "efficient-unaligned-vsx", OPTION_MASK_EFFICIENT_UNALIGNED_VSX, ++ false, true }, + { "fprnd", OPTION_MASK_FPRND, false, true }, + { "hard-dfp", OPTION_MASK_DFP, false, true }, + { "htm", OPTION_MASK_HTM, false, true }, Index: gcc/config/rs6000/sync.md =================================================================== --- a/src/gcc/config/rs6000/sync.md (.../tags/gcc_5_2_0_release) diff --git a/debian/rules.patch b/debian/rules.patch index 0269649..8bf488a 100644 --- a/debian/rules.patch +++ b/debian/rules.patch @@ -89,7 +89,6 @@ debian_patches += \ gccgo-sendfile-fix \ pr66368 \ gcc-sh-bootstrap-ignore \ - pr67211 \ ifeq ($(libstdcxx_abi),new) debian_patches += libstdc++-functexcept |