From 718ed1464bfa8ecef2398c42d7b6b7aec0b63e2a Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 17 Mar 2009 19:39:55 +0000 Subject: [PATCH] 4.4.0-0.27 --- .cvsignore | 2 +- gcc.spec | 23 +++--- gcc44-pr39412.patch | 170 -------------------------------------------- gcc44-pr39443.patch | 131 ---------------------------------- gcc44-pr39454.patch | 74 ------------------- sources | 2 +- 6 files changed, 14 insertions(+), 388 deletions(-) delete mode 100644 gcc44-pr39412.patch delete mode 100644 gcc44-pr39443.patch delete mode 100644 gcc44-pr39454.patch diff --git a/.cvsignore b/.cvsignore index 61aad16..c4b0c0b 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,2 +1,2 @@ fastjar-0.97.tar.gz -gcc-4.4.0-20090313.tar.bz2 +gcc-4.4.0-20090317.tar.bz2 diff --git a/gcc.spec b/gcc.spec index 2071498..23512d7 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,9 +1,9 @@ -%define DATE 20090313 -%define SVNREV 144837 +%define DATE 20090317 +%define SVNREV 144916 %define gcc_version 4.4.0 # Note, gcc_release must be integer, if you want to add suffixes to # %{release}, append them after %{gcc_release} on Release: line. -%define gcc_release 0.26 +%define gcc_release 0.27 %define _unpackaged_files_terminate_build 0 %define multilib_64_archs sparc64 ppc64 s390x x86_64 %define include_gappletviewer 1 @@ -152,10 +152,7 @@ Patch22: gcc44-raw-string.patch Patch24: gcc44-atom.patch Patch25: gcc44-pr39226.patch Patch26: gcc44-power7.patch -Patch27: gcc44-pr39412.patch -Patch28: gcc44-pr39443.patch -Patch29: gcc44-pr39454.patch -Patch30: gcc44-power7-2.patch +Patch27: gcc44-power7-2.patch Patch1000: fastjar-0.97-segfault.patch @@ -445,10 +442,7 @@ which are required to compile with the GNAT. %patch24 -p0 -b .atom~ %patch25 -p0 -b .pr39226~ %patch26 -p0 -b .power7~ -%patch27 -p0 -b .pr39412~ -%patch28 -p0 -b .pr39443~ -%patch29 -p0 -b .pr39454~ -%patch30 -p0 -b .power7-2~ +%patch27 -p0 -b .power7-2~ # This testcase doesn't compile. rm libjava/testsuite/libjava.lang/PR35020* @@ -1759,6 +1753,13 @@ fi %doc rpm.doc/changelogs/libmudflap/ChangeLog* %changelog +* Tue Mar 17 2009 Jakub Jelinek 4.4.0-0.27 +- update from trunk + - PRs debug/37890, debug/39471, debug/39474, libstdc++/39405, target/34299, + target/39473, target/39476, target/39477, target/39482, + testsuite/37628, testsuite/37630, testsuite/37960, testsuite/38526, + tree-optimization/39455 + * Sat Mar 14 2009 Jakub Jelinek 4.4.0-0.26 - fix ppc64 regression caused by the power7 backport (#490149, PR target/39457) diff --git a/gcc44-pr39412.patch b/gcc44-pr39412.patch deleted file mode 100644 index f45c3ea..0000000 --- a/gcc44-pr39412.patch +++ /dev/null @@ -1,170 +0,0 @@ -2009-03-11 Jakub Jelinek - - PR debug/39412 - * dwarf2out.c (gen_inlined_enumeration_type_die, - gen_inlined_structure_type_die, gen_inlined_union_type_die, - gen_tagged_type_instantiation_die): Removed. - (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin - do nothing. - - * gcc.dg/debug/pr39412.c: New test. - ---- gcc/dwarf2out.c.jj 2009-03-09 11:38:55.000000000 +0100 -+++ gcc/dwarf2out.c 2009-03-11 11:12:02.000000000 +0100 -@@ -5149,9 +5149,6 @@ static void gen_descr_array_type_die (tr - #if 0 - static void gen_entry_point_die (tree, dw_die_ref); - #endif --static void gen_inlined_enumeration_type_die (tree, dw_die_ref); --static void gen_inlined_structure_type_die (tree, dw_die_ref); --static void gen_inlined_union_type_die (tree, dw_die_ref); - static dw_die_ref gen_enumeration_type_die (tree, dw_die_ref); - static dw_die_ref gen_formal_parameter_die (tree, tree, dw_die_ref); - static void gen_unspecified_parameters_die (tree, dw_die_ref); -@@ -5172,7 +5169,6 @@ static void gen_struct_or_union_type_die - static void gen_subroutine_type_die (tree, dw_die_ref); - static void gen_typedef_die (tree, dw_die_ref); - static void gen_type_die (tree, dw_die_ref); --static void gen_tagged_type_instantiation_die (tree, dw_die_ref); - static void gen_block_die (tree, dw_die_ref, int); - static void decls_for_scope (tree, dw_die_ref, int); - static int is_redundant_typedef (const_tree); -@@ -13149,18 +13145,6 @@ retry_incomplete_types (void) - gen_type_die (VEC_index (tree, incomplete_types, i), comp_unit_die); - } - --/* Generate a DIE to represent an inlined instance of an enumeration type. */ -- --static void --gen_inlined_enumeration_type_die (tree type, dw_die_ref context_die) --{ -- dw_die_ref type_die = new_die (DW_TAG_enumeration_type, context_die, type); -- -- /* We do not check for TREE_ASM_WRITTEN (type) being set, as the type may -- be incomplete and such types are not marked. */ -- add_abstract_origin_attribute (type_die, type); --} -- - /* Determine what tag to use for a record type. */ - - static enum dwarf_tag -@@ -13185,30 +13169,6 @@ record_type_tag (tree type) - } - } - --/* Generate a DIE to represent an inlined instance of a structure type. */ -- --static void --gen_inlined_structure_type_die (tree type, dw_die_ref context_die) --{ -- dw_die_ref type_die = new_die (record_type_tag (type), context_die, type); -- -- /* We do not check for TREE_ASM_WRITTEN (type) being set, as the type may -- be incomplete and such types are not marked. */ -- add_abstract_origin_attribute (type_die, type); --} -- --/* Generate a DIE to represent an inlined instance of a union type. */ -- --static void --gen_inlined_union_type_die (tree type, dw_die_ref context_die) --{ -- dw_die_ref type_die = new_die (DW_TAG_union_type, context_die, type); -- -- /* We do not check for TREE_ASM_WRITTEN (type) being set, as the type may -- be incomplete and such types are not marked. */ -- add_abstract_origin_attribute (type_die, type); --} -- - /* Generate a DIE to represent an enumeration type. Note that these DIEs - include all of the information about the enumeration values also. Each - enumerated type name/value is listed as a child of the enumerated type -@@ -14835,46 +14795,6 @@ gen_type_die (tree type, dw_die_ref cont - gen_type_die_with_usage (type, context_die, DINFO_USAGE_DIR_USE); - } - --/* Generate a DIE for a tagged type instantiation. */ -- --static void --gen_tagged_type_instantiation_die (tree type, dw_die_ref context_die) --{ -- if (type == NULL_TREE || type == error_mark_node) -- return; -- -- /* We are going to output a DIE to represent the unqualified version of -- this type (i.e. without any const or volatile qualifiers) so make sure -- that we have the main variant (i.e. the unqualified version) of this -- type now. */ -- gcc_assert (type == type_main_variant (type)); -- -- /* Do not check TREE_ASM_WRITTEN (type) as it may not be set if this is -- an instance of an unresolved type. */ -- -- switch (TREE_CODE (type)) -- { -- case ERROR_MARK: -- break; -- -- case ENUMERAL_TYPE: -- gen_inlined_enumeration_type_die (type, context_die); -- break; -- -- case RECORD_TYPE: -- gen_inlined_structure_type_die (type, context_die); -- break; -- -- case UNION_TYPE: -- case QUAL_UNION_TYPE: -- gen_inlined_union_type_die (type, context_die); -- break; -- -- default: -- gcc_unreachable (); -- } --} -- - /* Generate a DW_TAG_lexical_block DIE followed by DIEs to represent all of the - things which are local to the given block. */ - -@@ -15315,14 +15235,14 @@ gen_decl_die (tree decl, tree origin, dw - of some type tag, if the given TYPE_DECL is marked as having been - instantiated from some other (original) TYPE_DECL node (e.g. one which - was generated within the original definition of an inline function) we -- have to generate a special (abbreviated) DW_TAG_structure_type, -- DW_TAG_union_type, or DW_TAG_enumeration_type DIE here. */ -- if (TYPE_DECL_IS_STUB (decl) && decl_ultimate_origin (decl) != NULL_TREE -- && is_tagged_type (TREE_TYPE (decl))) -- { -- gen_tagged_type_instantiation_die (TREE_TYPE (decl), context_die); -- break; -- } -+ used to generate a special (abbreviated) DW_TAG_structure_type, -+ DW_TAG_union_type, or DW_TAG_enumeration_type DIE here. But nothing -+ should be actually referencing those DIEs, as variable DIEs with that -+ type would be emitted already in the abstract origin, so it was always -+ removed during unused type prunning. Don't add anything in this -+ case. */ -+ if (TYPE_DECL_IS_STUB (decl) && decl_ultimate_origin (decl) != NULL_TREE) -+ break; - - if (is_redundant_typedef (decl)) - gen_type_die (TREE_TYPE (decl), context_die); ---- gcc/testsuite/gcc.dg/debug/pr39412.c.jj 2009-03-11 11:14:32.000000000 +0100 -+++ gcc/testsuite/gcc.dg/debug/pr39412.c 2009-03-11 11:14:39.000000000 +0100 -@@ -0,0 +1,16 @@ -+/* PR debug/39412 */ -+/* { dg-do compile } */ -+ -+struct S { int i; }; -+ -+inline void -+bar (const void *x, unsigned long y) -+{ -+ const union { struct S a[y]; } *u = x; -+} -+ -+void -+foo (const void *x, unsigned long y) -+{ -+ bar (x, y); -+} diff --git a/gcc44-pr39443.patch b/gcc44-pr39443.patch deleted file mode 100644 index e16aa7e..0000000 --- a/gcc44-pr39443.patch +++ /dev/null @@ -1,131 +0,0 @@ -2009-03-12 Jakub Jelinek - - PR middle-end/39443 - * optabs.c (set_user_assembler_libfunc): New function. - * expr.h (set_user_assembler_libfunc): New prototype. - * c-common.c: Include libfuncs.h. - (set_builtin_user_assembler_name): Call set_user_assembler_libfunc - for memcmp, memset, memcpy, memmove and abort. - - * gcc.dg/pr39443.c: New test. - ---- gcc/optabs.c.jj 2008-11-18 19:24:09.000000000 +0100 -+++ gcc/optabs.c 2009-03-12 16:16:56.000000000 +0100 -@@ -6072,6 +6072,24 @@ init_one_libfunc (const char *name) - return XEXP (DECL_RTL (decl), 0); - } - -+/* Adjust the assembler name of libfunc NAME to ASMSPEC. */ -+ -+rtx -+set_user_assembler_libfunc (const char *name, const char *asmspec) -+{ -+ tree id, decl; -+ void **slot; -+ hashval_t hash; -+ -+ id = get_identifier (name); -+ hash = htab_hash_string (name); -+ slot = htab_find_slot_with_hash (libfunc_decls, id, hash, INSERT); -+ decl = (tree) *slot; -+ gcc_assert (decl); -+ set_user_assembler_name (decl, asmspec); -+ return XEXP (DECL_RTL (decl), 0); -+} -+ - /* Call this to reset the function entry for one optab (OPTABLE) in mode - MODE to NAME, which should be either 0 or a string constant. */ - void ---- gcc/expr.h.jj 2009-02-20 15:33:46.000000000 +0100 -+++ gcc/expr.h 2009-03-12 16:17:41.000000000 +0100 -@@ -1,6 +1,6 @@ - /* Definitions for code generation pass of GNU compiler. - Copyright (C) 1987, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, -- 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -+ 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 - Free Software Foundation, Inc. - - This file is part of GCC. -@@ -786,6 +786,7 @@ extern void init_all_optabs (void); - - /* Call this to initialize an optab function entry. */ - extern rtx init_one_libfunc (const char *); -+extern rtx set_user_assembler_libfunc (const char *, const char *); - - extern int vector_mode_valid_p (enum machine_mode); - ---- gcc/c-common.c.jj 2009-03-02 09:45:47.000000000 +0100 -+++ gcc/c-common.c 2009-03-12 16:20:37.000000000 +0100 -@@ -51,6 +51,7 @@ along with GCC; see the file COPYING3. - #include "target-def.h" - #include "gimple.h" - #include "fixed-value.h" -+#include "libfuncs.h" - - cpp_reader *parse_in; /* Declared in c-pragma.h. */ - -@@ -4401,10 +4402,28 @@ set_builtin_user_assembler_name (tree de - - builtin = built_in_decls [DECL_FUNCTION_CODE (decl)]; - set_user_assembler_name (builtin, asmspec); -- if (DECL_FUNCTION_CODE (decl) == BUILT_IN_MEMCPY) -- init_block_move_fn (asmspec); -- else if (DECL_FUNCTION_CODE (decl) == BUILT_IN_MEMSET) -- init_block_clear_fn (asmspec); -+ switch (DECL_FUNCTION_CODE (decl)) -+ { -+ case BUILT_IN_MEMCPY: -+ init_block_move_fn (asmspec); -+ memcpy_libfunc = set_user_assembler_libfunc ("memcpy", asmspec); -+ break; -+ case BUILT_IN_MEMSET: -+ init_block_clear_fn (asmspec); -+ memset_libfunc = set_user_assembler_libfunc ("memset", asmspec); -+ break; -+ case BUILT_IN_MEMMOVE: -+ memmove_libfunc = set_user_assembler_libfunc ("memmove", asmspec); -+ break; -+ case BUILT_IN_MEMCMP: -+ memcmp_libfunc = set_user_assembler_libfunc ("memcmp", asmspec); -+ break; -+ case BUILT_IN_ABORT: -+ abort_libfunc = set_user_assembler_libfunc ("abort", asmspec); -+ break; -+ default: -+ break; -+ } - } - - /* The number of named compound-literals generated thus far. */ ---- gcc/Makefile.in.jj 2009-02-20 15:49:01.000000000 +0100 -+++ gcc/Makefile.in 2009-03-12 16:42:47.000000000 +0100 -@@ -1890,7 +1890,7 @@ c-common.o : c-common.c $(CONFIG_H) $(SY - $(TARGET_H) $(C_TREE_H) tree-iterator.h langhooks.h tree-mudflap.h \ - intl.h opts.h $(REAL_H) $(CPPLIB_H) $(TREE_INLINE_H) $(HASHTAB_H) \ - $(BUILTINS_DEF) $(CGRAPH_H) $(BASIC_BLOCK_H) $(TARGET_DEF_H) \ -- $(GIMPLE_H) -+ $(GIMPLE_H) libfuncs.h - - c-pretty-print.o : c-pretty-print.c $(C_PRETTY_PRINT_H) \ - $(C_TREE_H) $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(REAL_H) \ ---- gcc/testsuite/gcc.dg/pr39443.c.jj 2009-03-12 16:33:41.000000000 +0100 -+++ gcc/testsuite/gcc.dg/pr39443.c 2009-03-12 16:33:22.000000000 +0100 -@@ -0,0 +1,18 @@ -+/* PR middle-end/39443 */ -+/* { dg-do compile } */ -+/* { dg-options "-O2" } */ -+/* { dg-final { scan-assembler-not "memcmp" } } */ -+ -+typedef __SIZE_TYPE__ size_t; -+ -+extern int memcmp (const void *s1, const void *s2, size_t n) -+ __attribute__ ((__nothrow__, __pure__)); -+extern __typeof (memcmp) memcmp __asm__ ("memory_compare"); -+ -+int -+test (char *s, char *t, int cnt) -+{ -+ if (__builtin_expect (cnt, 0)) -+ return memcmp (s, t, cnt); -+ return 0; -+} diff --git a/gcc44-pr39454.patch b/gcc44-pr39454.patch deleted file mode 100644 index cb82106..0000000 --- a/gcc44-pr39454.patch +++ /dev/null @@ -1,74 +0,0 @@ -2009-03-13 Jakub Jelinek - - PR bootstrap/39454 - * cse.c (fold_rtx): Don't modify original const_arg1 when - canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a - separate variable instead. - * rtlanal.c (nonzero_bits1) : Don't assume anything - from out of range shift counts. - (num_sign_bit_copies1) : Similarly. - ---- gcc/cse.c.jj 2009-03-06 20:29:07.000000000 +0100 -+++ gcc/cse.c 2009-03-13 11:44:11.000000000 +0100 -@@ -3464,6 +3464,7 @@ fold_rtx (rtx x, rtx insn) - int is_shift - = (code == ASHIFT || code == ASHIFTRT || code == LSHIFTRT); - rtx y, inner_const, new_const; -+ rtx canon_const_arg1 = const_arg1; - enum rtx_code associate_code; - - if (is_shift -@@ -3471,8 +3472,9 @@ fold_rtx (rtx x, rtx insn) - || INTVAL (const_arg1) < 0)) - { - if (SHIFT_COUNT_TRUNCATED) -- const_arg1 = GEN_INT (INTVAL (const_arg1) -- & (GET_MODE_BITSIZE (mode) - 1)); -+ canon_const_arg1 = GEN_INT (INTVAL (const_arg1) -+ & (GET_MODE_BITSIZE (mode) -+ - 1)); - else - break; - } -@@ -3531,7 +3533,8 @@ fold_rtx (rtx x, rtx insn) - associate_code = (is_shift || code == MINUS ? PLUS : code); - - new_const = simplify_binary_operation (associate_code, mode, -- const_arg1, inner_const); -+ canon_const_arg1, -+ inner_const); - - if (new_const == 0) - break; ---- gcc/rtlanal.c.jj 2009-02-20 15:55:28.000000000 +0100 -+++ gcc/rtlanal.c 2009-03-13 13:30:55.000000000 +0100 -@@ -4061,7 +4061,8 @@ nonzero_bits1 (const_rtx x, enum machine - low-order bits by left shifts. */ - if (GET_CODE (XEXP (x, 1)) == CONST_INT - && INTVAL (XEXP (x, 1)) >= 0 -- && INTVAL (XEXP (x, 1)) < HOST_BITS_PER_WIDE_INT) -+ && INTVAL (XEXP (x, 1)) < HOST_BITS_PER_WIDE_INT -+ && INTVAL (XEXP (x, 1)) < GET_MODE_BITSIZE (GET_MODE (x))) - { - enum machine_mode inner_mode = GET_MODE (x); - unsigned int width = GET_MODE_BITSIZE (inner_mode); -@@ -4542,7 +4543,8 @@ num_sign_bit_copies1 (const_rtx x, enum - num0 = cached_num_sign_bit_copies (XEXP (x, 0), mode, - known_x, known_mode, known_ret); - if (GET_CODE (XEXP (x, 1)) == CONST_INT -- && INTVAL (XEXP (x, 1)) > 0) -+ && INTVAL (XEXP (x, 1)) > 0 -+ && INTVAL (XEXP (x, 1)) < GET_MODE_BITSIZE (GET_MODE (x))) - num0 = MIN ((int) bitwidth, num0 + INTVAL (XEXP (x, 1))); - - return num0; -@@ -4551,7 +4553,8 @@ num_sign_bit_copies1 (const_rtx x, enum - /* Left shifts destroy copies. */ - if (GET_CODE (XEXP (x, 1)) != CONST_INT - || INTVAL (XEXP (x, 1)) < 0 -- || INTVAL (XEXP (x, 1)) >= (int) bitwidth) -+ || INTVAL (XEXP (x, 1)) >= (int) bitwidth -+ || INTVAL (XEXP (x, 1)) >= GET_MODE_BITSIZE (GET_MODE (x))) - return 1; - - num0 = cached_num_sign_bit_copies (XEXP (x, 0), mode, diff --git a/sources b/sources index c6d98e6..e936ca6 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ 2659f09c2e43ef8b7d4406321753f1b2 fastjar-0.97.tar.gz -6dca5ece6628cb31123bf1fba7b1cd1e gcc-4.4.0-20090313.tar.bz2 +fc00990e92faf4bc5668d2cd6234fa4c gcc-4.4.0-20090317.tar.bz2