4.9.2-1
This commit is contained in:
parent
3438bcad98
commit
f5f8bc6087
1
.gitignore
vendored
1
.gitignore
vendored
@ -26,3 +26,4 @@
|
||||
/gcc-4.9.1-20140930.tar.bz2
|
||||
/gcc-4.9.1-20141017.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 SVNREV 216625
|
||||
%global gcc_version 4.9.1
|
||||
%global DATE 20141101
|
||||
%global SVNREV 216995
|
||||
%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 13
|
||||
%global gcc_release 1
|
||||
%global _unpackaged_files_terminate_build 0
|
||||
%global _performance_build 1
|
||||
%global multilib_64_archs sparc64 ppc64 ppc64p7 s390x x86_64
|
||||
@ -200,6 +200,7 @@ Patch15: gcc49-color-auto.patch
|
||||
Patch16: gcc49-libgo-p224.patch
|
||||
Patch17: gcc49-aarch64-async-unw-tables.patch
|
||||
Patch18: gcc49-aarch64-unwind-opt.patch
|
||||
Patch19: gcc49-pr63659.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
|
||||
%patch17 -p0 -b .aarch64-async-unw-tables~
|
||||
%patch18 -p0 -b .aarch64-unwind-opt~
|
||||
%patch19 -p0 -b .pr63659~
|
||||
|
||||
%if 0%{?_enable_debug_packages}
|
||||
cat > split-debuginfo.sh <<\EOF
|
||||
@ -778,7 +780,7 @@ chmod 755 split-debuginfo.sh
|
||||
|
||||
%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
|
||||
|
||||
%if 0%{?fedora} >= 16 || 0%{?rhel} >= 7
|
||||
@ -2052,6 +2054,9 @@ fi
|
||||
%if %{build_libcilkrts}
|
||||
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/cilk
|
||||
%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}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/crt*.o
|
||||
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc.a
|
||||
@ -2800,6 +2805,13 @@ fi
|
||||
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
|
||||
|
||||
%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
|
||||
- update from the 4.9 branch
|
||||
- PRs bootstrap/63632, libfortran/63589, libstdc++/63500,
|
||||
|
@ -4,7 +4,7 @@
|
||||
<a class="link" href="http://www.fsf.org/" target="_top">FSF
|
||||
</a>
|
||||
</p><p>
|
||||
+ Release 4.9.1
|
||||
+ Release 4.9.2
|
||||
+ </p><p>
|
||||
Permission is granted to copy, distribute and/or modify this
|
||||
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 here:
|
||||
</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>
|
||||
+ </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
|
||||
|
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;
|
||||
+}
|
Loading…
Reference in New Issue
Block a user