4.8.0-0.11
This commit is contained in:
parent
081310d587
commit
b471196219
1
.gitignore
vendored
1
.gitignore
vendored
@ -59,3 +59,4 @@
|
|||||||
/gcc-4.8.0-20130131.tar.bz2
|
/gcc-4.8.0-20130131.tar.bz2
|
||||||
/gcc-4.8.0-20130206.tar.bz2
|
/gcc-4.8.0-20130206.tar.bz2
|
||||||
/gcc-4.8.0-20130208.tar.bz2
|
/gcc-4.8.0-20130208.tar.bz2
|
||||||
|
/gcc-4.8.0-20130211.tar.bz2
|
||||||
|
22
gcc.spec
22
gcc.spec
@ -1,9 +1,9 @@
|
|||||||
%global DATE 20130208
|
%global DATE 20130211
|
||||||
%global SVNREV 195894
|
%global SVNREV 195954
|
||||||
%global gcc_version 4.8.0
|
%global gcc_version 4.8.0
|
||||||
# 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 0.10
|
%global gcc_release 0.11
|
||||||
%global _unpackaged_files_terminate_build 0
|
%global _unpackaged_files_terminate_build 0
|
||||||
%global multilib_64_archs sparc64 ppc64 s390x x86_64
|
%global multilib_64_archs sparc64 ppc64 s390x x86_64
|
||||||
%ifarch %{ix86} x86_64 ia64 ppc ppc64 alpha
|
%ifarch %{ix86} x86_64 ia64 ppc ppc64 alpha
|
||||||
@ -194,9 +194,7 @@ Patch10: gcc48-pr38757.patch
|
|||||||
Patch11: gcc48-libstdc++-docs.patch
|
Patch11: gcc48-libstdc++-docs.patch
|
||||||
Patch12: gcc48-no-add-needed.patch
|
Patch12: gcc48-no-add-needed.patch
|
||||||
Patch13: gcc48-pr55608.patch
|
Patch13: gcc48-pr55608.patch
|
||||||
Patch14: gcc48-pr56256.patch
|
Patch14: gcc48-pr56151.patch
|
||||||
Patch15: gcc48-pr53948.patch
|
|
||||||
Patch16: gcc48-pr56245.patch
|
|
||||||
|
|
||||||
Patch1000: fastjar-0.97-segfault.patch
|
Patch1000: fastjar-0.97-segfault.patch
|
||||||
Patch1001: fastjar-0.97-len1.patch
|
Patch1001: fastjar-0.97-len1.patch
|
||||||
@ -749,9 +747,7 @@ package or when debugging this package.
|
|||||||
%endif
|
%endif
|
||||||
%patch12 -p0 -b .no-add-needed~
|
%patch12 -p0 -b .no-add-needed~
|
||||||
%patch13 -p0 -b .pr55608~
|
%patch13 -p0 -b .pr55608~
|
||||||
%patch14 -p0 -b .pr56256~
|
%patch14 -p0 -b .pr56151~
|
||||||
%patch15 -p0 -b .pr53948~
|
|
||||||
%patch16 -p0 -b .pr56245~
|
|
||||||
|
|
||||||
%if 0%{?_enable_debug_packages}
|
%if 0%{?_enable_debug_packages}
|
||||||
cat > split-debuginfo.sh <<\EOF
|
cat > split-debuginfo.sh <<\EOF
|
||||||
@ -2975,6 +2971,14 @@ fi
|
|||||||
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
|
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Feb 11 2013 Jakub Jelinek <jakub@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@redhat.com> 4.8.0-0.10
|
* Fri Feb 8 2013 Jakub Jelinek <jakub@redhat.com> 4.8.0-0.10
|
||||||
- updated from trunk
|
- updated from trunk
|
||||||
- PRs bootstrap/56227, c++/56235, c++/56237, c++/56239, c++/56241,
|
- PRs bootstrap/56227, c++/56235, c++/56237, c++/56239, c++/56241,
|
||||||
|
@ -1,72 +0,0 @@
|
|||||||
2013-02-08 Jeff Law <law@redhat.com>
|
|
||||||
|
|
||||||
PR debug/53948
|
|
||||||
* emit-rtl.c (reg_is_parm_p): New function.
|
|
||||||
* regs.h (reg_is_parm_p): New prototype.
|
|
||||||
* ira-conflicts.c (ira_build_conflicts): Allow parameters in
|
|
||||||
callee-clobbered registers.
|
|
||||||
|
|
||||||
* gcc.dg/debug/dwarf2/pr53948.c: New test.
|
|
||||||
|
|
||||||
--- gcc/emit-rtl.c
|
|
||||||
+++ gcc/emit-rtl.c
|
|
||||||
@@ -919,6 +919,18 @@ gen_reg_rtx (enum machine_mode mode)
|
|
||||||
return val;
|
|
||||||
}
|
|
||||||
|
|
||||||
+/* Return TRUE if REG is a PARM_DECL, FALSE otherwise. */
|
|
||||||
+
|
|
||||||
+bool
|
|
||||||
+reg_is_parm_p (rtx reg)
|
|
||||||
+{
|
|
||||||
+ tree decl;
|
|
||||||
+
|
|
||||||
+ gcc_assert (REG_P (reg));
|
|
||||||
+ decl = REG_EXPR (reg);
|
|
||||||
+ return (decl && TREE_CODE (decl) == PARM_DECL);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
/* Update NEW with the same attributes as REG, but with OFFSET added
|
|
||||||
to the REG_OFFSET. */
|
|
||||||
|
|
||||||
--- gcc/ira-conflicts.c
|
|
||||||
+++ gcc/ira-conflicts.c
|
|
||||||
@@ -895,8 +895,12 @@ ira_build_conflicts (void)
|
|
||||||
|
|
||||||
if ((! flag_caller_saves && ALLOCNO_CALLS_CROSSED_NUM (a) != 0)
|
|
||||||
/* For debugging purposes don't put user defined variables in
|
|
||||||
- callee-clobbered registers. */
|
|
||||||
- || (optimize == 0 && REG_USERVAR_P (allocno_reg)))
|
|
||||||
+ callee-clobbered registers. However, do allow parameters
|
|
||||||
+ in callee-clobbered registers to improve debugging. This
|
|
||||||
+ is a bit of a fragile hack. */
|
|
||||||
+ || (optimize == 0
|
|
||||||
+ && REG_USERVAR_P (allocno_reg)
|
|
||||||
+ && ! reg_is_parm_p (allocno_reg)))
|
|
||||||
{
|
|
||||||
IOR_HARD_REG_SET (OBJECT_TOTAL_CONFLICT_HARD_REGS (obj),
|
|
||||||
call_used_reg_set);
|
|
||||||
--- gcc/regs.h
|
|
||||||
+++ gcc/regs.h
|
|
||||||
@@ -89,6 +89,8 @@ REG_N_SETS (int regno)
|
|
||||||
#define SET_REG_N_SETS(N,V) (regstat_n_sets_and_refs[N].sets = V)
|
|
||||||
#define INC_REG_N_SETS(N,V) (regstat_n_sets_and_refs[N].sets += V)
|
|
||||||
|
|
||||||
+/* Given a REG, return TRUE if the reg is a PARM_DECL, FALSE otherwise. */
|
|
||||||
+extern bool reg_is_parm_p (rtx);
|
|
||||||
|
|
||||||
/* Functions defined in regstat.c. */
|
|
||||||
extern void regstat_init_n_sets_and_refs (void);
|
|
||||||
--- gcc/testsuite/gcc.dg/debug/dwarf2/pr53948.c 2012-11-17 15:43:17.572007394 +0100
|
|
||||||
+++ gcc/testsuite/gcc.dg/debug/dwarf2/pr53948.c 2013-02-08 19:10:23.000000000 +0100
|
|
||||||
@@ -0,0 +1,10 @@
|
|
||||||
+/* Test that we emit a .line directive for the line
|
|
||||||
+ with local variable initializations. */
|
|
||||||
+/* { dg-options "-O0 -g -dA" } */
|
|
||||||
+/* { dg-final { scan-assembler ".loc 1 8 0|# line 8" } } */
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+int f (register int a, register int b) {
|
|
||||||
+ register int x = b, y = a;
|
|
||||||
+ return x + y; }
|
|
||||||
+
|
|
73
gcc48-pr56151.patch
Normal file
73
gcc48-pr56151.patch
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
2013-02-11 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
Steven Bosscher <steven@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 } } } */
|
@ -1,47 +0,0 @@
|
|||||||
2013-02-08 Jakub Jelinek <jakub@redhat.com>
|
|
||||||
|
|
||||||
PR other/56245
|
|
||||||
* regex.c (PTR_INT_TYPE): Define.
|
|
||||||
(EXTEND_BUFFER): Change incr type from int to PTR_INT_TYPE.
|
|
||||||
|
|
||||||
--- libiberty/regex.c.jj 2011-05-02 18:39:35.000000000 +0200
|
|
||||||
+++ libiberty/regex.c 2013-02-08 18:33:18.136802070 +0100
|
|
||||||
@@ -46,9 +46,11 @@
|
|
||||||
|
|
||||||
# if defined STDC_HEADERS && !defined emacs
|
|
||||||
# include <stddef.h>
|
|
||||||
+# define PTR_INT_TYPE ptrdiff_t
|
|
||||||
# else
|
|
||||||
/* We need this for `regex.h', and perhaps for the Emacs include files. */
|
|
||||||
# include <sys/types.h>
|
|
||||||
+# define PTR_INT_TYPE long
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# define WIDE_CHAR_SUPPORT (HAVE_WCTYPE_H && HAVE_WCHAR_H && HAVE_BTOWC)
|
|
||||||
@@ -2045,7 +2047,7 @@ static reg_errcode_t byte_compile_range
|
|
||||||
/* How many characters the new buffer can have? */ \
|
|
||||||
wchar_count = bufp->allocated / sizeof(UCHAR_T); \
|
|
||||||
if (wchar_count == 0) wchar_count = 1; \
|
|
||||||
- /* Truncate the buffer to CHAR_T align. */ \
|
|
||||||
+ /* Truncate the buffer to CHAR_T align. */ \
|
|
||||||
bufp->allocated = wchar_count * sizeof(UCHAR_T); \
|
|
||||||
RETALLOC (COMPILED_BUFFER_VAR, wchar_count, UCHAR_T); \
|
|
||||||
bufp->buffer = (char*)COMPILED_BUFFER_VAR; \
|
|
||||||
@@ -2054,7 +2056,7 @@ static reg_errcode_t byte_compile_range
|
|
||||||
/* If the buffer moved, move all the pointers into it. */ \
|
|
||||||
if (old_buffer != COMPILED_BUFFER_VAR) \
|
|
||||||
{ \
|
|
||||||
- int incr = COMPILED_BUFFER_VAR - old_buffer; \
|
|
||||||
+ PTR_INT_TYPE incr = COMPILED_BUFFER_VAR - old_buffer; \
|
|
||||||
MOVE_BUFFER_POINTER (b); \
|
|
||||||
MOVE_BUFFER_POINTER (begalt); \
|
|
||||||
if (fixup_alt_jump) \
|
|
||||||
@@ -2082,7 +2084,7 @@ static reg_errcode_t byte_compile_range
|
|
||||||
/* If the buffer moved, move all the pointers into it. */ \
|
|
||||||
if (old_buffer != COMPILED_BUFFER_VAR) \
|
|
||||||
{ \
|
|
||||||
- int incr = COMPILED_BUFFER_VAR - old_buffer; \
|
|
||||||
+ PTR_INT_TYPE incr = COMPILED_BUFFER_VAR - old_buffer; \
|
|
||||||
MOVE_BUFFER_POINTER (b); \
|
|
||||||
MOVE_BUFFER_POINTER (begalt); \
|
|
||||||
if (fixup_alt_jump) \
|
|
@ -1,36 +0,0 @@
|
|||||||
2013-02-08 Jakub Jelinek <jakub@redhat.com>
|
|
||||||
|
|
||||||
PR target/56256
|
|
||||||
* config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
|
|
||||||
|
|
||||||
* gcc.target/powerpc/pr56256.c: New test.
|
|
||||||
|
|
||||||
--- gcc/config/rs6000/rs6000.h.jj 2013-01-11 09:03:12.000000000 +0100
|
|
||||||
+++ gcc/config/rs6000/rs6000.h 2013-02-08 16:46:35.988977363 +0100
|
|
||||||
@@ -356,6 +356,12 @@ extern const char *host_detect_local_cpu
|
|
||||||
#define PROCESSOR_DEFAULT PROCESSOR_PPC603
|
|
||||||
#define PROCESSOR_DEFAULT64 PROCESSOR_RS64A
|
|
||||||
|
|
||||||
+/* Specify the dialect of assembler to use. Only new mnemonics are supported
|
|
||||||
+ starting with GCC 4.8, i.e. just one dialect, but for backwards
|
|
||||||
+ compatibility with older inline asm ASSEMBLER_DIALECT needs to be
|
|
||||||
+ defined. */
|
|
||||||
+#define ASSEMBLER_DIALECT 1
|
|
||||||
+
|
|
||||||
/* Debug support */
|
|
||||||
#define MASK_DEBUG_STACK 0x01 /* debug stack applications */
|
|
||||||
#define MASK_DEBUG_ARG 0x02 /* debug argument handling */
|
|
||||||
--- gcc/testsuite/gcc.target/powerpc/pr56256.c.jj 2013-02-08 17:00:11.096171281 +0100
|
|
||||||
+++ gcc/testsuite/gcc.target/powerpc/pr56256.c 2013-02-08 17:09:05.448004295 +0100
|
|
||||||
@@ -0,0 +1,11 @@
|
|
||||||
+/* PR target/56256 */
|
|
||||||
+/* { dg-do assemble } */
|
|
||||||
+/* { dg-options "-O2" } */
|
|
||||||
+
|
|
||||||
+int
|
|
||||||
+foo (void)
|
|
||||||
+{
|
|
||||||
+ int a;
|
|
||||||
+ __asm__ ("{lil|li} %0,%1" : "=r" (a) : "I" (26));
|
|
||||||
+ return a;
|
|
||||||
+}
|
|
2
sources
2
sources
@ -1,4 +1,4 @@
|
|||||||
be78a47bd82523250eb3e91646db5b3d cloog-0.18.0.tar.gz
|
be78a47bd82523250eb3e91646db5b3d cloog-0.18.0.tar.gz
|
||||||
2659f09c2e43ef8b7d4406321753f1b2 fastjar-0.97.tar.gz
|
2659f09c2e43ef8b7d4406321753f1b2 fastjar-0.97.tar.gz
|
||||||
bce1586384d8635a76d2f017fb067cd2 isl-0.11.1.tar.bz2
|
bce1586384d8635a76d2f017fb067cd2 isl-0.11.1.tar.bz2
|
||||||
94f2b1c221e6f1561a93525c6679080c gcc-4.8.0-20130208.tar.bz2
|
ab39481e50bd55b5efdf8bbcdfda63e3 gcc-4.8.0-20130211.tar.bz2
|
||||||
|
Loading…
Reference in New Issue
Block a user