4.9.2-1
This commit is contained in:
parent
18b821470e
commit
72541ade18
1
.gitignore
vendored
1
.gitignore
vendored
@ -26,3 +26,4 @@
|
|||||||
/gcc-4.9.1-20140930.tar.bz2
|
/gcc-4.9.1-20140930.tar.bz2
|
||||||
/gcc-4.9.1-20141017.tar.bz2
|
/gcc-4.9.1-20141017.tar.bz2
|
||||||
/gcc-4.9.1-20141024.tar.bz2
|
/gcc-4.9.1-20141024.tar.bz2
|
||||||
|
/gcc-4.9.2-20141101.tar.bz2
|
||||||
|
22
gcc.spec
22
gcc.spec
@ -1,9 +1,9 @@
|
|||||||
%global DATE 20141024
|
%global DATE 20141101
|
||||||
%global SVNREV 216625
|
%global SVNREV 216995
|
||||||
%global gcc_version 4.9.1
|
%global gcc_version 4.9.2
|
||||||
# Note, gcc_release must be integer, if you want to add suffixes to
|
# Note, gcc_release must be integer, if you want to add suffixes to
|
||||||
# %{release}, append them after %{gcc_release} on Release: line.
|
# %{release}, append them after %{gcc_release} on Release: line.
|
||||||
%global gcc_release 13
|
%global gcc_release 1
|
||||||
%global _unpackaged_files_terminate_build 0
|
%global _unpackaged_files_terminate_build 0
|
||||||
%global _performance_build 1
|
%global _performance_build 1
|
||||||
%global multilib_64_archs sparc64 ppc64 ppc64p7 s390x x86_64
|
%global multilib_64_archs sparc64 ppc64 ppc64p7 s390x x86_64
|
||||||
@ -200,6 +200,7 @@ Patch15: gcc49-color-auto.patch
|
|||||||
Patch16: gcc49-libgo-p224.patch
|
Patch16: gcc49-libgo-p224.patch
|
||||||
Patch17: gcc49-aarch64-async-unw-tables.patch
|
Patch17: gcc49-aarch64-async-unw-tables.patch
|
||||||
Patch18: gcc49-aarch64-unwind-opt.patch
|
Patch18: gcc49-aarch64-unwind-opt.patch
|
||||||
|
Patch19: gcc49-pr63659.patch
|
||||||
|
|
||||||
Patch1100: cloog-%{cloog_version}-ppc64le-config.patch
|
Patch1100: cloog-%{cloog_version}-ppc64le-config.patch
|
||||||
|
|
||||||
@ -728,6 +729,7 @@ package or when debugging this package.
|
|||||||
rm -f libgo/go/crypto/elliptic/p224{,_test}.go
|
rm -f libgo/go/crypto/elliptic/p224{,_test}.go
|
||||||
%patch17 -p0 -b .aarch64-async-unw-tables~
|
%patch17 -p0 -b .aarch64-async-unw-tables~
|
||||||
%patch18 -p0 -b .aarch64-unwind-opt~
|
%patch18 -p0 -b .aarch64-unwind-opt~
|
||||||
|
%patch19 -p0 -b .pr63659~
|
||||||
|
|
||||||
%if 0%{?_enable_debug_packages}
|
%if 0%{?_enable_debug_packages}
|
||||||
cat > split-debuginfo.sh <<\EOF
|
cat > split-debuginfo.sh <<\EOF
|
||||||
@ -778,7 +780,7 @@ chmod 755 split-debuginfo.sh
|
|||||||
|
|
||||||
%patch1100 -p0 -b .cloog-ppc64le-config~
|
%patch1100 -p0 -b .cloog-ppc64le-config~
|
||||||
|
|
||||||
sed -i -e 's/4\.9\.2/4.9.1/' gcc/BASE-VER
|
sed -i -e 's/4\.9\.3/4.9.2/' gcc/BASE-VER
|
||||||
echo 'Red Hat %{version}-%{gcc_release}' > gcc/DEV-PHASE
|
echo 'Red Hat %{version}-%{gcc_release}' > gcc/DEV-PHASE
|
||||||
|
|
||||||
%if 0%{?fedora} >= 16 || 0%{?rhel} >= 7
|
%if 0%{?fedora} >= 16 || 0%{?rhel} >= 7
|
||||||
@ -2052,6 +2054,9 @@ fi
|
|||||||
%if %{build_libcilkrts}
|
%if %{build_libcilkrts}
|
||||||
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/cilk
|
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/cilk
|
||||||
%endif
|
%endif
|
||||||
|
%if %{build_libasan}
|
||||||
|
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/sanitizer
|
||||||
|
%endif
|
||||||
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/collect2
|
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/collect2
|
||||||
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/crt*.o
|
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/crt*.o
|
||||||
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc.a
|
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc.a
|
||||||
@ -2800,6 +2805,13 @@ fi
|
|||||||
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
|
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sat Nov 1 2014 Jakub Jelinek <jakub@redhat.com> 4.9.2-1
|
||||||
|
- update from the 4.9 branch
|
||||||
|
- GCC 4.9.2 release
|
||||||
|
- PRs sanitizer/63638, sanitizer/63697, tree-optimization/63530
|
||||||
|
- handle REG_EQ* notes in REE (PR rtl-optimization/63659)
|
||||||
|
- include asan/lsan sanitizer/ includes
|
||||||
|
|
||||||
* Fri Oct 24 2014 Jakub Jelinek <jakub@redhat.com> 4.9.1-13
|
* Fri Oct 24 2014 Jakub Jelinek <jakub@redhat.com> 4.9.1-13
|
||||||
- update from the 4.9 branch
|
- update from the 4.9 branch
|
||||||
- PRs bootstrap/63632, libfortran/63589, libstdc++/63500,
|
- PRs bootstrap/63632, libfortran/63589, libstdc++/63500,
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<a class="link" href="http://www.fsf.org/" target="_top">FSF
|
<a class="link" href="http://www.fsf.org/" target="_top">FSF
|
||||||
</a>
|
</a>
|
||||||
</p><p>
|
</p><p>
|
||||||
+ Release 4.9.1
|
+ Release 4.9.2
|
||||||
+ </p><p>
|
+ </p><p>
|
||||||
Permission is granted to copy, distribute and/or modify this
|
Permission is granted to copy, distribute and/or modify this
|
||||||
document under the terms of the GNU Free Documentation
|
document under the terms of the GNU Free Documentation
|
||||||
@ -18,7 +18,7 @@
|
|||||||
- The API documentation, rendered into HTML, can be viewed online:
|
- The API documentation, rendered into HTML, can be viewed online:
|
||||||
+ The API documentation, rendered into HTML, can be viewed here:
|
+ The API documentation, rendered into HTML, can be viewed here:
|
||||||
</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
|
</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
|
||||||
+ <a class="link" href="api/index.html" target="_top">for the 4.9.1 release, local
|
+ <a class="link" href="api/index.html" target="_top">for the 4.9.2 release, local
|
||||||
+ </a>
|
+ </a>
|
||||||
+ </p></li><li class="listitem"><p>
|
+ </p></li><li class="listitem"><p>
|
||||||
<a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-3.4/index.html" target="_top">for the 3.4 release
|
<a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-3.4/index.html" target="_top">for the 3.4 release
|
||||||
|
134
gcc49-pr63659.patch
Normal file
134
gcc49-pr63659.patch
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
2014-10-31 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR rtl-optimization/63659
|
||||||
|
* ree.c (update_reg_equal_equiv_notes): New function.
|
||||||
|
(combine_set_extension, transform_ifelse): Use it.
|
||||||
|
|
||||||
|
* gcc.c-torture/execute/pr63659.c: New test.
|
||||||
|
|
||||||
|
--- gcc/ree.c.jj 2014-10-22 15:52:18.000000000 +0200
|
||||||
|
+++ gcc/ree.c 2014-10-27 19:18:37.287412478 +0100
|
||||||
|
@@ -266,6 +266,50 @@ typedef struct ext_cand
|
||||||
|
|
||||||
|
static int max_insn_uid;
|
||||||
|
|
||||||
|
+/* Update or remove REG_EQUAL or REG_EQUIV notes for INSN. */
|
||||||
|
+
|
||||||
|
+static bool
|
||||||
|
+update_reg_equal_equiv_notes (rtx_insn *insn, enum machine_mode new_mode,
|
||||||
|
+ enum machine_mode old_mode, enum rtx_code code)
|
||||||
|
+{
|
||||||
|
+ rtx *loc = ®_NOTES (insn);
|
||||||
|
+ while (*loc)
|
||||||
|
+ {
|
||||||
|
+ enum reg_note kind = REG_NOTE_KIND (*loc);
|
||||||
|
+ if (kind == REG_EQUAL || kind == REG_EQUIV)
|
||||||
|
+ {
|
||||||
|
+ rtx orig_src = XEXP (*loc, 0);
|
||||||
|
+ /* Update equivalency constants. Recall that RTL constants are
|
||||||
|
+ sign-extended. */
|
||||||
|
+ if (GET_CODE (orig_src) == CONST_INT
|
||||||
|
+ && HOST_BITS_PER_WIDE_INT >= GET_MODE_BITSIZE (new_mode))
|
||||||
|
+ {
|
||||||
|
+ if (INTVAL (orig_src) >= 0 || code == SIGN_EXTEND)
|
||||||
|
+ /* Nothing needed. */;
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ /* Zero-extend the negative constant by masking out the
|
||||||
|
+ bits outside the source mode. */
|
||||||
|
+ rtx new_const_int
|
||||||
|
+ = gen_int_mode (INTVAL (orig_src)
|
||||||
|
+ & GET_MODE_MASK (old_mode),
|
||||||
|
+ new_mode);
|
||||||
|
+ if (!validate_change (insn, &XEXP (*loc, 0),
|
||||||
|
+ new_const_int, true))
|
||||||
|
+ return false;
|
||||||
|
+ }
|
||||||
|
+ loc = &XEXP (*loc, 1);
|
||||||
|
+ }
|
||||||
|
+ /* Drop all other notes, they assume a wrong mode. */
|
||||||
|
+ else if (!validate_change (insn, loc, XEXP (*loc, 1), true))
|
||||||
|
+ return false;
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ loc = &XEXP (*loc, 1);
|
||||||
|
+ }
|
||||||
|
+ return true;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
/* Given a insn (CURR_INSN), an extension candidate for removal (CAND)
|
||||||
|
and a pointer to the SET rtx (ORIG_SET) that needs to be modified,
|
||||||
|
this code modifies the SET rtx to a new SET rtx that extends the
|
||||||
|
@@ -287,6 +331,7 @@ static bool
|
||||||
|
combine_set_extension (ext_cand *cand, rtx_insn *curr_insn, rtx *orig_set)
|
||||||
|
{
|
||||||
|
rtx orig_src = SET_SRC (*orig_set);
|
||||||
|
+ enum machine_mode orig_mode = GET_MODE (SET_DEST (*orig_set));
|
||||||
|
rtx new_set;
|
||||||
|
rtx cand_pat = PATTERN (cand->insn);
|
||||||
|
|
||||||
|
@@ -323,9 +368,8 @@ combine_set_extension (ext_cand *cand, r
|
||||||
|
{
|
||||||
|
/* Zero-extend the negative constant by masking out the bits outside
|
||||||
|
the source mode. */
|
||||||
|
- enum machine_mode src_mode = GET_MODE (SET_DEST (*orig_set));
|
||||||
|
rtx new_const_int
|
||||||
|
- = gen_int_mode (INTVAL (orig_src) & GET_MODE_MASK (src_mode),
|
||||||
|
+ = gen_int_mode (INTVAL (orig_src) & GET_MODE_MASK (orig_mode),
|
||||||
|
GET_MODE (new_reg));
|
||||||
|
new_set = gen_rtx_SET (VOIDmode, new_reg, new_const_int);
|
||||||
|
}
|
||||||
|
@@ -364,7 +408,9 @@ combine_set_extension (ext_cand *cand, r
|
||||||
|
|
||||||
|
/* This change is a part of a group of changes. Hence,
|
||||||
|
validate_change will not try to commit the change. */
|
||||||
|
- if (validate_change (curr_insn, orig_set, new_set, true))
|
||||||
|
+ if (validate_change (curr_insn, orig_set, new_set, true)
|
||||||
|
+ && update_reg_equal_equiv_notes (curr_insn, cand->mode, orig_mode,
|
||||||
|
+ cand->code))
|
||||||
|
{
|
||||||
|
if (dump_file)
|
||||||
|
{
|
||||||
|
@@ -414,7 +460,9 @@ transform_ifelse (ext_cand *cand, rtx_in
|
||||||
|
ifexpr = gen_rtx_IF_THEN_ELSE (cand->mode, cond, map_srcreg, map_srcreg2);
|
||||||
|
new_set = gen_rtx_SET (VOIDmode, map_dstreg, ifexpr);
|
||||||
|
|
||||||
|
- if (validate_change (def_insn, &PATTERN (def_insn), new_set, true))
|
||||||
|
+ if (validate_change (def_insn, &PATTERN (def_insn), new_set, true)
|
||||||
|
+ && update_reg_equal_equiv_notes (def_insn, cand->mode, GET_MODE (dstreg),
|
||||||
|
+ cand->code))
|
||||||
|
{
|
||||||
|
if (dump_file)
|
||||||
|
{
|
||||||
|
--- gcc/testsuite/gcc.c-torture/execute/pr63659.c.jj 2014-10-27 19:26:57.720902738 +0100
|
||||||
|
+++ gcc/testsuite/gcc.c-torture/execute/pr63659.c 2014-10-27 19:26:36.000000000 +0100
|
||||||
|
@@ -0,0 +1,29 @@
|
||||||
|
+/* PR rtl-optimization/63659 */
|
||||||
|
+
|
||||||
|
+int a, b, c, *d = &b, g, h, i;
|
||||||
|
+unsigned char e;
|
||||||
|
+char f;
|
||||||
|
+
|
||||||
|
+int
|
||||||
|
+main ()
|
||||||
|
+{
|
||||||
|
+ while (a)
|
||||||
|
+ {
|
||||||
|
+ for (a = 0; a; a++)
|
||||||
|
+ for (; c; c++)
|
||||||
|
+ ;
|
||||||
|
+ if (i)
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ char j = c, k = -1, l;
|
||||||
|
+ l = g = j >> h;
|
||||||
|
+ f = l == 0 ? k : k % l;
|
||||||
|
+ e = 0 ? 0 : f;
|
||||||
|
+ *d = e;
|
||||||
|
+
|
||||||
|
+ if (b != 255)
|
||||||
|
+ __builtin_abort ();
|
||||||
|
+
|
||||||
|
+ return 0;
|
||||||
|
+}
|
2
sources
2
sources
@ -1,3 +1,3 @@
|
|||||||
e34fca0540d840e5d0f6427e98c92252 cloog-0.18.1.tar.gz
|
e34fca0540d840e5d0f6427e98c92252 cloog-0.18.1.tar.gz
|
||||||
715eda9680ef1144dec3b44b913f3b16 gcc-4.9.1-20141024.tar.bz2
|
3b5578a7f9e33fb0b6321ab5283c4cbf gcc-4.9.2-20141101.tar.bz2
|
||||||
e039bfcfb6c2ab039b8ee69bf883e824 isl-0.12.2.tar.bz2
|
e039bfcfb6c2ab039b8ee69bf883e824 isl-0.12.2.tar.bz2
|
||||||
|
Loading…
Reference in New Issue
Block a user