From 2b90ba6797b207a565cf18685b90ab4cf9134aa3 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Jan 25 2010 22:31:28 +0000 Subject: 4.4.3-3 --- diff --git a/gcc.spec b/gcc.spec index 2719dc0..853af6c 100644 --- a/gcc.spec +++ b/gcc.spec @@ -3,7 +3,7 @@ %global gcc_version 4.4.3 # 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 1 +%global gcc_release 3 %global _unpackaged_files_terminate_build 0 %global multilib_64_archs sparc64 ppc64 s390x x86_64 %if 0%{?fedora} >= 13 @@ -167,6 +167,8 @@ Patch18: gcc44-libstdc++-docs.patch Patch19: gcc44-ppc64-aixdesc.patch Patch20: gcc44-max-vartrack-size.patch Patch21: gcc44-vta-non-call-exception.patch +Patch22: gcc44-rh530847.patch +Patch23: gcc44-pr42861.patch Patch1000: fastjar-0.97-segfault.patch Patch1001: fastjar-0.97-len1.patch @@ -477,6 +479,8 @@ which are required to compile with the GNAT. %patch19 -p0 -b .ppc64-aixdesc~ %patch20 -p0 -b .max-vartrack-size~ %patch21 -p0 -b .vta-non-call-exception~ +%patch22 -p0 -b .rh530847~ +%patch23 -p0 -b .pr42861~ # This testcase doesn't compile. rm libjava/testsuite/libjava.lang/PR35020* @@ -1866,6 +1870,12 @@ fi %doc rpm.doc/changelogs/libmudflap/ChangeLog* %changelog +* Mon Jan 25 2010 Jakub Jelinek 4.4.3-3 +- VTA improvements (#556975, PR debug/42861) + +* Sat Jan 23 2010 Dennis Gilmore 4.4.3-2 +- use gas .section syntax (#530847) + * Thu Jan 21 2010 Jakub Jelinek 4.4.3-1 - update from gcc-4_4-branch - GCC 4.4.3 release diff --git a/gcc44-pr42861.patch b/gcc44-pr42861.patch new file mode 100644 index 0000000..9aaafc1 --- /dev/null +++ b/gcc44-pr42861.patch @@ -0,0 +1,123 @@ +2010-01-25 Alexandre Oliva + + PR debug/42861 + * var-tracking.c (val_store): Add modified argument, obey it. + Adjust callers. + (count_uses): Move down logging of main. + (compute_bb_dataflow): Use val_store for MO_VAL_USEs that + don't need resolution. + (emit_notes_in_bb): Likewise. + +--- gcc/var-tracking.c.jj 2010-01-21 09:10:37.000000000 +0100 ++++ gcc/var-tracking.c 2010-01-25 23:18:07.239731089 +0100 +@@ -1518,10 +1518,12 @@ var_mem_delete (dataflow_set *set, rtx l + delete_variable_part (set, loc, dv_from_decl (decl), offset); + } + +-/* Map a value to a location it was just stored in. */ ++/* Bind a value to a location it was just stored in. If MODIFIED ++ holds, assume the location was modified, detaching it from any ++ values bound to it. */ + + static void +-val_store (dataflow_set *set, rtx val, rtx loc, rtx insn) ++val_store (dataflow_set *set, rtx val, rtx loc, rtx insn, bool modified) + { + cselib_val *v = CSELIB_VAL_PTR (val); + +@@ -1547,7 +1549,8 @@ val_store (dataflow_set *set, rtx val, r + + if (REG_P (loc)) + { +- var_regno_delete (set, REGNO (loc)); ++ if (modified) ++ var_regno_delete (set, REGNO (loc)); + var_reg_decl_set (set, loc, VAR_INIT_STATUS_INITIALIZED, + dv_from_value (val), 0, NULL_RTX, INSERT); + } +@@ -4529,11 +4532,6 @@ count_uses (rtx *ploc, void *cuip) + cselib_val *val; + enum machine_mode mode = GET_MODE (loc); + +- VTI (cui->bb)->n_mos++; +- +- if (dump_file && (dump_flags & TDF_DETAILS)) +- log_op_type (loc, cui->bb, cui->insn, mopt, dump_file); +- + switch (mopt) + { + case MO_VAL_LOC: +@@ -4547,12 +4545,15 @@ count_uses (rtx *ploc, void *cuip) + if (MEM_P (loc) + && !REG_P (XEXP (loc, 0)) && !MEM_P (XEXP (loc, 0))) + { +- val = cselib_lookup (XEXP (loc, 0), Pmode, false); ++ val = cselib_lookup (XEXP (loc, 0), Pmode, 0); + + if (val && !cselib_preserved_value_p (val)) + { + VTI (cui->bb)->n_mos++; + cselib_preserve_value (val); ++ if (dump_file && (dump_flags & TDF_DETAILS)) ++ log_op_type (XEXP (loc, 0), cui->bb, cui->insn, ++ MO_VAL_USE, dump_file); + } + } + +@@ -4575,6 +4576,9 @@ count_uses (rtx *ploc, void *cuip) + { + VTI (cui->bb)->n_mos++; + cselib_preserve_value (oval); ++ if (dump_file && (dump_flags & TDF_DETAILS)) ++ log_op_type (loc, cui->bb, cui->insn, ++ MO_VAL_USE, dump_file); + } + } + +@@ -4589,6 +4593,10 @@ count_uses (rtx *ploc, void *cuip) + default: + break; + } ++ ++ VTI (cui->bb)->n_mos++; ++ if (dump_file && (dump_flags & TDF_DETAILS)) ++ log_op_type (loc, cui->bb, cui->insn, mopt, dump_file); + } + + return 0; +@@ -5318,6 +5326,8 @@ compute_bb_dataflow (basic_block bb) + + if (VAL_NEEDS_RESOLUTION (loc)) + val_resolve (out, val, vloc, insn); ++ else ++ val_store (out, val, uloc, insn, false); + + if (VAL_HOLDS_TRACK_EXPR (loc)) + { +@@ -5409,7 +5419,7 @@ compute_bb_dataflow (basic_block bb) + else if (REG_P (uloc)) + var_regno_delete (out, REGNO (uloc)); + +- val_store (out, val, vloc, insn); ++ val_store (out, val, vloc, insn, true); + } + break; + +@@ -6939,6 +6949,8 @@ emit_notes_in_bb (basic_block bb, datafl + + if (VAL_NEEDS_RESOLUTION (loc)) + val_resolve (set, val, vloc, insn); ++ else ++ val_store (set, val, uloc, insn, false); + + if (VAL_HOLDS_TRACK_EXPR (loc)) + { +@@ -7026,7 +7038,7 @@ emit_notes_in_bb (basic_block bb, datafl + else if (REG_P (uloc)) + var_regno_delete (set, REGNO (uloc)); + +- val_store (set, val, vloc, insn); ++ val_store (set, val, vloc, insn, true); + + emit_notes_for_changes (NEXT_INSN (insn), EMIT_NOTE_BEFORE_INSN, + set->vars); diff --git a/gcc44-rh530847.patch b/gcc44-rh530847.patch new file mode 100644 index 0000000..ce23a2c --- /dev/null +++ b/gcc44-rh530847.patch @@ -0,0 +1,62 @@ +2010-01-24 David S. Miller + + * gcc/config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only + define if not using GAS. + * gcc/config/sparc/sparc.c (sparc_elf_asm_named_section): + Likewise. Delete SECTION_MERGE code, which is only applicable + when using GAS. + +--- gcc/config/sparc/sparc.c (revision 156204) ++++ gcc/config/sparc/sparc.c (revision 156205) +@@ -371,7 +371,7 @@ static int save_or_restore_regs (int, in + static void emit_save_or_restore_regs (int); + static void sparc_asm_function_prologue (FILE *, HOST_WIDE_INT); + static void sparc_asm_function_epilogue (FILE *, HOST_WIDE_INT); +-#ifdef OBJECT_FORMAT_ELF ++#if defined (OBJECT_FORMAT_ELF) && !defined (HAVE_GNU_AS) + static void sparc_elf_asm_named_section (const char *, unsigned int, tree); + #endif + +@@ -7847,19 +7847,11 @@ sparc_profile_hook (int labelno) + } + } + +-#ifdef OBJECT_FORMAT_ELF ++#if defined (OBJECT_FORMAT_ELF) && !defined (HAVE_GNU_AS) + static void + sparc_elf_asm_named_section (const char *name, unsigned int flags, + tree decl) + { +- if (flags & SECTION_MERGE) +- { +- /* entsize cannot be expressed in this section attributes +- encoding style. */ +- default_elf_asm_named_section (name, flags, decl); +- return; +- } +- + fprintf (asm_out_file, "\t.section\t\"%s\"", name); + + if (!(flags & SECTION_DEBUG)) +--- gcc/config/sparc/sysv4.h (revision 156204) ++++ gcc/config/sparc/sysv4.h (revision 156205) +@@ -1,5 +1,6 @@ + /* Target definitions for GNU compiler for SPARC running System V.4 +- Copyright (C) 1991, 1992, 1995, 1996, 1997, 1998, 2000, 2002, 2007, 2009 ++ Copyright (C) 1991, 1992, 1995, 1996, 1997, 1998, 2000, 2002, 2007, 2009, ++ 2010 + Free Software Foundation, Inc. + Contributed by Ron Guilmette (rfg@monkeys.com). + +@@ -126,9 +127,11 @@ do { ASM_OUTPUT_ALIGN ((FILE), Pmode == + #undef DTORS_SECTION_ASM_OP + #define DTORS_SECTION_ASM_OP "\t.section\t\".dtors\",#alloc,#write" + ++#ifndef HAVE_GNU_AS + /* Switch into a generic section. */ + #undef TARGET_ASM_NAMED_SECTION + #define TARGET_ASM_NAMED_SECTION sparc_elf_asm_named_section ++#endif + + #undef ASM_OUTPUT_ALIGNED_BSS + #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \