From e3e70e5e70aa85041c85980952ee507c96f9fccc Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 26 Jan 2012 14:17:11 +0100 Subject: [PATCH] 4.7.0-0.10 --- .gitignore | 1 + gcc.spec | 26 ++++-- gcc47-pr47858.patch | 23 ----- gcc47-pr51957.patch | 206 -------------------------------------------- gcc47-pr51968.patch | 21 ----- gcc47-pr52006.patch | 43 +++++++++ sources | 2 +- 7 files changed, 62 insertions(+), 260 deletions(-) delete mode 100644 gcc47-pr47858.patch delete mode 100644 gcc47-pr51957.patch delete mode 100644 gcc47-pr51968.patch create mode 100644 gcc47-pr52006.patch diff --git a/.gitignore b/.gitignore index 5abe4a6..c85b456 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ /gcc-4.7.0-20120117.tar.bz2 /gcc-4.7.0-20120119.tar.bz2 /gcc-4.7.0-20120123.tar.bz2 +/gcc-4.7.0-20120126.tar.bz2 diff --git a/gcc.spec b/gcc.spec index 9564ca0..0150c7b 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,9 +1,9 @@ -%global DATE 20120123 -%global SVNREV 183456 +%global DATE 20120126 +%global SVNREV 183558 %global gcc_version 4.7.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.9 +%global gcc_release 0.10 %global _unpackaged_files_terminate_build 0 %global multilib_64_archs sparc64 ppc64 s390x x86_64 %ifarch %{ix86} x86_64 ia64 ppc ppc64 alpha @@ -175,9 +175,8 @@ Patch13: gcc47-no-add-needed.patch Patch14: gcc47-ppl-0.10.patch Patch15: gcc47-libitm-fno-exceptions.patch Patch16: gcc47-pr51895.patch -Patch17: gcc47-pr51957.patch -Patch18: gcc47-pr46590-revert.patch -Patch19: gcc47-pr51968.patch +Patch17: gcc47-pr46590-revert.patch +Patch18: gcc47-pr52006.patch Patch1000: fastjar-0.97-segfault.patch Patch1001: fastjar-0.97-len1.patch @@ -678,9 +677,8 @@ package or when debugging this package. %endif %patch15 -p0 -b .libitm-fno-exceptions~ %patch16 -p0 -b .pr51895~ -%patch17 -p0 -b .pr51957~ -%patch18 -p0 -b .pr46590-revert~ -%patch19 -p0 -b .pr51968~ +%patch17 -p0 -b .pr46590-revert~ +%patch18 -p0 -b .pr52006~ %if 0%{?_enable_debug_packages} cat > split-debuginfo.sh <<\EOF @@ -2641,6 +2639,16 @@ fi %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin %changelog +* Thu Jan 26 2012 Jakub Jelinek 4.7.0-0.10 +- update from trunk + - PRs bootstrap/51985, c++/51223, c++/51812, c++/51917, c++/51928, + c++/51930, c++/51973, c++/51992, driver/47249, fortran/51966, + fortran/51995, libstdc++/49829, lto/51698, middle-end/45678, + middle-end/51986, rtl-optimization/48308, rtl-optimization/48374 + - fix data-ref handling of non-volatile inline asms (#784242, + PR tree-optimization/51987) +- fix ARM ICE with invalid peephole (#784748, PR target/52006) + * Mon Jan 23 2012 Jakub Jelinek 4.7.0-0.9 - update from trunk - PRs ada/46192, c++/51344, c++/51398, c++/51402, c++/51832, c++/51919, diff --git a/gcc47-pr47858.patch b/gcc47-pr47858.patch deleted file mode 100644 index 8d05ac6..0000000 --- a/gcc47-pr47858.patch +++ /dev/null @@ -1,23 +0,0 @@ -2011-03-01 Jakub Jelinek - - PR debug/47858 - * opts.c (default_options_table): Enable -fipa-sra by default - only for -O3, not for -O2 and -Os. - ---- gcc/opts.c.jj 2011-02-20 08:36:59.888390890 +0100 -+++ gcc/opts.c 2011-03-01 12:04:38.680558351 +0100 -@@ -487,13 +487,13 @@ static const struct default_options defa - { OPT_LEVELS_2_PLUS, OPT_ftree_switch_conversion, NULL, 1 }, - { OPT_LEVELS_2_PLUS, OPT_fipa_cp, NULL, 1 }, - { OPT_LEVELS_2_PLUS, OPT_fdevirtualize, NULL, 1 }, -- { OPT_LEVELS_2_PLUS, OPT_fipa_sra, NULL, 1 }, - { OPT_LEVELS_2_PLUS, OPT_falign_loops, NULL, 1 }, - { OPT_LEVELS_2_PLUS, OPT_falign_jumps, NULL, 1 }, - { OPT_LEVELS_2_PLUS, OPT_falign_labels, NULL, 1 }, - { OPT_LEVELS_2_PLUS, OPT_falign_functions, NULL, 1 }, - - /* -O3 optimizations. */ -+ { OPT_LEVELS_3_PLUS, OPT_fipa_sra, NULL, 1 }, - { OPT_LEVELS_3_PLUS, OPT_ftree_loop_distribute_patterns, NULL, 1 }, - { OPT_LEVELS_3_PLUS, OPT_fpredictive_commoning, NULL, 1 }, - /* Inlining of functions reducing size is a good idea with -Os diff --git a/gcc47-pr51957.patch b/gcc47-pr51957.patch deleted file mode 100644 index e36de40..0000000 --- a/gcc47-pr51957.patch +++ /dev/null @@ -1,206 +0,0 @@ -2012-01-23 Jakub Jelinek - - PR target/51957 - * target.def (const_not_ok_for_debug_p): New hook. - * doc/tm.texi.in (TARGET_CONST_NOT_OK_FOR_DEBUG_P): New hook - documentation. - * doc/tm.texi: Regenerated. - * dwarf2out.c (const_ok_for_output_1): If - targetm.const_not_ok_for_debug_p returns true, fail. - * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): New - function. - (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine. - - * gcc.dg/pr51957-1.c: New test. - * gcc.dg/pr51957-1.h: New file. - * gcc.dg/pr51957-2.c: New test. - ---- gcc/target.def.jj 2012-01-20 12:35:16.000000000 +0100 -+++ gcc/target.def 2012-01-23 13:14:52.601638343 +0100 -@@ -1382,6 +1382,14 @@ DEFHOOK - rtx, (rtx x), - delegitimize_mem_from_attrs) - -+/* Given an RTX, return true if it is not ok to emit it into debug info -+ section. */ -+DEFHOOK -+(const_not_ok_for_debug_p, -+ "", -+ bool, (rtx x), -+ hook_bool_rtx_false) -+ - /* Given an address RTX, say whether it is valid. */ - DEFHOOK - (legitimate_address_p, ---- gcc/doc/tm.texi.in.jj 2012-01-20 12:35:10.000000000 +0100 -+++ gcc/doc/tm.texi.in 2012-01-23 13:27:19.544241676 +0100 -@@ -5567,6 +5567,11 @@ the semantics of these opaque @code{UNSP - into their original form. - @end deftypefn - -+@hook TARGET_CONST_NOT_OK_FOR_DEBUG_P -+This hook should return true if @var{x} should not be emitted into -+debug sections. -+@end deftypefn -+ - @hook TARGET_CANNOT_FORCE_CONST_MEM - This hook should return true if @var{x} is of a form that cannot (or - should not) be spilled to the constant pool. @var{mode} is the mode ---- gcc/doc/tm.texi.jj 2012-01-20 12:35:10.000000000 +0100 -+++ gcc/doc/tm.texi 2012-01-23 13:27:33.000000000 +0100 -@@ -5631,6 +5631,11 @@ the semantics of these opaque @code{UNSP - into their original form. - @end deftypefn - -+@deftypefn {Target Hook} bool TARGET_CONST_NOT_OK_FOR_DEBUG_P (rtx @var{x}) -+This hook should return true if @var{x} should not be emitted into -+debug sections. -+@end deftypefn -+ - @deftypefn {Target Hook} bool TARGET_CANNOT_FORCE_CONST_MEM (enum machine_mode @var{mode}, rtx @var{x}) - This hook should return true if @var{x} is of a form that cannot (or - should not) be spilled to the constant pool. @var{mode} is the mode ---- gcc/dwarf2out.c.jj 2012-01-22 16:02:10.000000000 +0100 -+++ gcc/dwarf2out.c 2012-01-23 13:58:09.887380014 +0100 -@@ -10683,6 +10683,13 @@ const_ok_for_output_1 (rtx *rtlp, void * - return 1; - } - -+ if (targetm.const_not_ok_for_debug_p (rtl)) -+ { -+ expansion_failed (NULL_TREE, rtl, -+ "Expression rejected for debug by the backend.\n"); -+ return 1; -+ } -+ - if (GET_CODE (rtl) != SYMBOL_REF) - return 0; - ---- gcc/config/rs6000/rs6000.c.jj 2012-01-22 16:02:10.000000000 +0100 -+++ gcc/config/rs6000/rs6000.c 2012-01-23 13:25:05.092031129 +0100 -@@ -1106,6 +1106,7 @@ static rtx rs6000_debug_legitimize_addre - static rtx rs6000_legitimize_tls_address (rtx, enum tls_model); - static void rs6000_output_dwarf_dtprel (FILE *, int, rtx) ATTRIBUTE_UNUSED; - static rtx rs6000_delegitimize_address (rtx); -+static bool rs6000_const_not_ok_for_debug_p (rtx); - static rtx rs6000_tls_get_addr (void); - static rtx rs6000_got_sym (void); - static int rs6000_tls_symbol_ref_1 (rtx *, void *); -@@ -1405,6 +1406,9 @@ static const struct attribute_spec rs600 - #undef TARGET_DELEGITIMIZE_ADDRESS - #define TARGET_DELEGITIMIZE_ADDRESS rs6000_delegitimize_address - -+#undef TARGET_CONST_NOT_OK_FOR_DEBUG_P -+#define TARGET_CONST_NOT_OK_FOR_DEBUG_P rs6000_const_not_ok_for_debug_p -+ - #undef TARGET_ASM_FUNCTION_PROLOGUE - #define TARGET_ASM_FUNCTION_PROLOGUE rs6000_output_function_prologue - #undef TARGET_ASM_FUNCTION_EPILOGUE -@@ -5815,6 +5819,25 @@ rs6000_delegitimize_address (rtx orig_x) - return orig_x; - } - -+/* Return true if X shouldn't be emitted into the debug info. -+ The linker doesn't like .toc section references from -+ .debug_* sections, so reject .toc section symbols. */ -+ -+static bool -+rs6000_const_not_ok_for_debug_p (rtx x) -+{ -+ if (GET_CODE (x) == SYMBOL_REF -+ && CONSTANT_POOL_ADDRESS_P (x)) -+ { -+ rtx c = get_pool_constant (x); -+ enum machine_mode cmode = get_pool_mode (x); -+ if (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P (c, cmode)) -+ return true; -+ } -+ -+ return false; -+} -+ - /* Construct the SYMBOL_REF for the tls_get_addr function. */ - - static GTY(()) rtx rs6000_tls_symbol; ---- gcc/testsuite/gcc.dg/pr51957-1.c.jj 2012-01-23 14:06:45.024357678 +0100 -+++ gcc/testsuite/gcc.dg/pr51957-1.c 2012-01-23 14:12:02.895492825 +0100 -@@ -0,0 +1,29 @@ -+/* PR target/51957 */ -+/* { dg-do link } */ -+/* { dg-options "-O2 -g -fprofile-use" } */ -+/* { dg-additional-sources "pr51957-2.c" } */ -+ -+int v[128]; -+#include "pr51957-1.h" -+ -+void -+foo (U *x) -+{ -+ T *a = x->u; -+ while (1) -+ { -+ union R *b; -+ b = fn1 (); -+ if (b != w[0] && !(v[b->p->c] == 1)) -+ { -+ fn2 (a->t, "foobar", b->p); -+ b = w[0]; -+ } -+ if (b != w[0]) -+ fn3 (); -+ if (w[0] && b != w[0]) -+ fn4 (b->p); -+ if (b != w[0] && (v[b->p->c] == 1) && fn4 (b->p)) -+ break; -+ } -+} ---- gcc/testsuite/gcc.dg/pr51957-1.h.jj 2012-01-23 14:06:56.491290757 +0100 -+++ gcc/testsuite/gcc.dg/pr51957-1.h 2012-01-23 14:07:35.243060438 +0100 -@@ -0,0 +1,9 @@ -+union R { int c; union R *p; }; -+extern union R *w[]; -+typedef struct { int t; } T; -+typedef struct { void *u; } U; -+union R *fn1 (void); -+void fn2 (int, const char *, union R *); -+void fn3 (void); -+int fn4 (union R *); -+void foo (U *x); ---- gcc/testsuite/gcc.dg/pr51957-2.c.jj 2012-01-23 14:10:59.840862700 +0100 -+++ gcc/testsuite/gcc.dg/pr51957-2.c 2012-01-23 14:10:52.870904033 +0100 -@@ -0,0 +1,35 @@ -+/* PR target/51957 */ -+/* { dg-do compile } */ -+/* { dg-options "-O0" } */ -+ -+#include "pr51957-1.h" -+ -+union R *w[10]; -+ -+union R * -+fn1 (void) -+{ -+ return (union R *) 0; -+} -+ -+void -+fn2 (int x, const char *y, union R *z) -+{ -+} -+ -+void -+fn3 (void) -+{ -+} -+ -+int -+fn4 (union R *x) -+{ -+ return 0; -+} -+ -+int -+main () -+{ -+ return 0; -+} diff --git a/gcc47-pr51968.patch b/gcc47-pr51968.patch deleted file mode 100644 index c6f4c1d..0000000 --- a/gcc47-pr51968.patch +++ /dev/null @@ -1,21 +0,0 @@ -2012-01-23 Richard Henderson - - PR target/51968 - * config/arm/arm.c (neon_split_vcombine): Split into - NOTE_INSN_DELETED instead of nothing. - ---- gcc/config/arm/arm.c -+++ gcc/config/arm/arm.c -@@ -20928,7 +20928,11 @@ neon_split_vcombine (rtx operands[3]) - rtx destlo, desthi; - - if (src1 == dest && src2 == dest + halfregs) -- return; -+ { -+ /* No-op move. Can't split to nothing; emit something. */ -+ emit_note (NOTE_INSN_DELETED); -+ return; -+ } - - /* Preserve register attributes for variable tracking. */ - destlo = gen_rtx_REG_offset (operands[0], halfmode, dest, 0); diff --git a/gcc47-pr52006.patch b/gcc47-pr52006.patch new file mode 100644 index 0000000..67a0e5c --- /dev/null +++ b/gcc47-pr52006.patch @@ -0,0 +1,43 @@ +2012-01-26 Jakub Jelinek + + PR target/52006 + * config/arm/arm.md (pic_add_dot_plus_eight peephole2): Use + arm_general_register_operand predicate for operand 2 instead of + register_operand. + + * gcc.target/arm/pr52006.c: New test. + +--- gcc/config/arm/arm.md.jj 2012-01-20 12:35:15.000000000 +0100 ++++ gcc/config/arm/arm.md 2012-01-26 10:24:13.082570508 +0100 +@@ -5719,7 +5719,8 @@ (define_peephole2 + (const_int 8) + (match_operand 1 "" "")] + UNSPEC_PIC_BASE)) +- (set (match_operand:SI 2 "register_operand" "") (mem:SI (match_dup 0)))] ++ (set (match_operand:SI 2 "arm_general_register_operand" "") ++ (mem:SI (match_dup 0)))] + "TARGET_ARM && peep2_reg_dead_p (2, operands[0])" + [(set (match_dup 2) + (mem:SI (unspec:SI [(match_dup 3) +--- gcc/testsuite/gcc.target/arm/pr52006.c.jj 2012-01-26 10:32:27.989658669 +0100 ++++ gcc/testsuite/gcc.target/arm/pr52006.c 2012-01-26 10:32:34.626620068 +0100 +@@ -0,0 +1,19 @@ ++/* PR target/52006 */ ++/* { dg-do compile } */ ++/* { dg-options "-march=armv7-a -mfloat-abi=hard -O2 -fPIC" } */ ++ ++unsigned long a; ++static int b; ++ ++void ++foo (void) ++{ ++ asm volatile ("" : "=r" (b)); ++} ++ ++void ++bar (float f) ++{ ++ if (f < b / 100.0) ++ a = 1; ++} diff --git a/sources b/sources index db935a4..4227672 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ 2659f09c2e43ef8b7d4406321753f1b2 fastjar-0.97.tar.gz -c616ff4d911b6888dedf1d49df177e73 gcc-4.7.0-20120123.tar.bz2 +d96c83882dc395b8465feb9f86ba999d gcc-4.7.0-20120126.tar.bz2