[gcc] 4.8.0-0.11
Jakub Jelinek
jakub at fedoraproject.org
Mon Feb 11 21:40:49 UTC 2013
commit b4711962194a2a9982f01563c573e71f5fe4e8c8
Author: Jakub Jelinek <jakub at redhat.com>
Date: Mon Feb 11 22:40:42 2013 +0100
4.8.0-0.11
.gitignore | 1 +
gcc.spec | 22 +++++++++------
gcc48-pr53948.patch | 72 --------------------------------------------------
gcc48-pr56151.patch | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++
gcc48-pr56245.patch | 47 --------------------------------
gcc48-pr56256.patch | 36 -------------------------
sources | 2 +-
7 files changed, 88 insertions(+), 165 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index cea4278..e48c1d4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -59,3 +59,4 @@
/gcc-4.8.0-20130131.tar.bz2
/gcc-4.8.0-20130206.tar.bz2
/gcc-4.8.0-20130208.tar.bz2
+/gcc-4.8.0-20130211.tar.bz2
diff --git a/gcc.spec b/gcc.spec
index ab4d70a..945c3c0 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,9 +1,9 @@
-%global DATE 20130208
-%global SVNREV 195894
+%global DATE 20130211
+%global SVNREV 195954
%global gcc_version 4.8.0
# 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 0.10
+%global gcc_release 0.11
%global _unpackaged_files_terminate_build 0
%global multilib_64_archs sparc64 ppc64 s390x x86_64
%ifarch %{ix86} x86_64 ia64 ppc ppc64 alpha
@@ -194,9 +194,7 @@ Patch10: gcc48-pr38757.patch
Patch11: gcc48-libstdc++-docs.patch
Patch12: gcc48-no-add-needed.patch
Patch13: gcc48-pr55608.patch
-Patch14: gcc48-pr56256.patch
-Patch15: gcc48-pr53948.patch
-Patch16: gcc48-pr56245.patch
+Patch14: gcc48-pr56151.patch
Patch1000: fastjar-0.97-segfault.patch
Patch1001: fastjar-0.97-len1.patch
@@ -749,9 +747,7 @@ package or when debugging this package.
%endif
%patch12 -p0 -b .no-add-needed~
%patch13 -p0 -b .pr55608~
-%patch14 -p0 -b .pr56256~
-%patch15 -p0 -b .pr53948~
-%patch16 -p0 -b .pr56245~
+%patch14 -p0 -b .pr56151~
%if 0%{?_enable_debug_packages}
cat > split-debuginfo.sh <<\EOF
@@ -2975,6 +2971,14 @@ fi
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
%changelog
+* Mon Feb 11 2013 Jakub Jelinek <jakub at redhat.com> 4.8.0-0.11
+- updated from trunk
+ - PRs c++/56238, c++/56247, c++/56268, fortran/55362, libstdc++/56267,
+ libstdc++/56278, libstdc++/56282, rtl-optimization/56246,
+ rtl-optimization/56275, target/56043, tree-optimization/56264,
+ tree-optimization/56273
+- improve expansion of mem1 op= mem2 (PR rtl-optimization/56151)
+
* Fri Feb 8 2013 Jakub Jelinek <jakub at redhat.com> 4.8.0-0.10
- updated from trunk
- PRs bootstrap/56227, c++/56235, c++/56237, c++/56239, c++/56241,
diff --git a/gcc48-pr56151.patch b/gcc48-pr56151.patch
new file mode 100644
index 0000000..f3c2dc2
--- /dev/null
+++ b/gcc48-pr56151.patch
@@ -0,0 +1,73 @@
+2013-02-11 Jakub Jelinek <jakub at redhat.com>
+ Steven Bosscher <steven at gcc.gnu.org>
+
+ PR rtl-optimization/56151
+ * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
+ equal to op0 or op1, and last_insn pattern is CODE operation
+ with MEM dest and one of the operands matches that MEM.
+
+ * gcc.target/i386/pr56151.c: New test.
+
+--- gcc/optabs.c.jj 2013-01-16 08:30:10.000000000 +0100
++++ gcc/optabs.c 2013-02-11 15:28:16.543839881 +0100
+@@ -190,17 +190,34 @@ add_equal_note (rtx insns, rtx target, e
+ if (GET_CODE (target) == ZERO_EXTRACT)
+ return 1;
+
+- /* If TARGET is in OP0 or OP1, punt. We'd end up with a note referencing
+- a value changing in the insn, so the note would be invalid for CSE. */
+- if (reg_overlap_mentioned_p (target, op0)
+- || (op1 && reg_overlap_mentioned_p (target, op1)))
+- return 0;
+-
+ for (last_insn = insns;
+ NEXT_INSN (last_insn) != NULL_RTX;
+ last_insn = NEXT_INSN (last_insn))
+ ;
+
++ /* If TARGET is in OP0 or OP1, punt. We'd end up with a note referencing
++ a value changing in the insn, so the note would be invalid for CSE. */
++ if (reg_overlap_mentioned_p (target, op0)
++ || (op1 && reg_overlap_mentioned_p (target, op1)))
++ {
++ if (MEM_P (target)
++ && (rtx_equal_p (target, op0)
++ || (op1 && rtx_equal_p (target, op1))))
++ {
++ /* For MEM target, with MEM = MEM op X, prefer no REG_EQUAL note
++ over expanding it as temp = MEM op X, MEM = temp. See PR56151. */
++ set = single_set (last_insn);
++ if (set
++ && GET_CODE (SET_SRC (set)) == code
++ && MEM_P (SET_DEST (set))
++ && (rtx_equal_p (SET_DEST (set), XEXP (SET_SRC (set), 0))
++ || (op1 && rtx_equal_p (SET_DEST (set),
++ XEXP (SET_SRC (set), 1)))))
++ return 1;
++ }
++ return 0;
++ }
++
+ set = single_set (last_insn);
+ if (set == NULL_RTX)
+ return 1;
+--- gcc/testsuite/gcc.target/i386/pr56151.c.jj 2013-02-11 16:20:51.459752951 +0100
++++ gcc/testsuite/gcc.target/i386/pr56151.c 2013-02-11 16:23:10.590964710 +0100
+@@ -0,0 +1,17 @@
++/* PR rtl-optimization/56151 */
++/* { dg-do compile } */
++/* { dg-options "-O2" } */
++
++int vara, varb;
++
++void
++foo (int i, int j)
++{
++ vara = varb | vara;
++}
++
++/* Verify the above is compiled into movl varb, %reg; orl %reg, vara instead
++ of longer movl vara, %reg; orl varb, %reg; movl %reg, vara. */
++/* { dg-final { scan-assembler-not "mov\[^\n\r]*vara" { target nonpic } } } */
++/* { dg-final { scan-assembler-times "mov\[^\n\r]*varb" 1 { target nonpic } } } */
++/* { dg-final { scan-assembler-times "or\[^\n\r]*vara" 1 { target nonpic } } } */
diff --git a/sources b/sources
index 53d82cb..ff69942 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
be78a47bd82523250eb3e91646db5b3d cloog-0.18.0.tar.gz
2659f09c2e43ef8b7d4406321753f1b2 fastjar-0.97.tar.gz
bce1586384d8635a76d2f017fb067cd2 isl-0.11.1.tar.bz2
-94f2b1c221e6f1561a93525c6679080c gcc-4.8.0-20130208.tar.bz2
+ab39481e50bd55b5efdf8bbcdfda63e3 gcc-4.8.0-20130211.tar.bz2
More information about the scm-commits
mailing list