4.4.1-11
This commit is contained in:
parent
38ba9bfb90
commit
a291f05d00
@ -1,2 +1,2 @@
|
||||
fastjar-0.97.tar.gz
|
||||
gcc-4.4.1-20090908.tar.bz2
|
||||
gcc-4.4.1-20090909.tar.bz2
|
||||
|
23
gcc.spec
23
gcc.spec
@ -1,9 +1,9 @@
|
||||
%global DATE 20090908
|
||||
%global SVNREV 151505
|
||||
%global DATE 20090909
|
||||
%global SVNREV 151553
|
||||
%global gcc_version 4.4.1
|
||||
# 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 10
|
||||
%global gcc_release 11
|
||||
%global _unpackaged_files_terminate_build 0
|
||||
%global multilib_64_archs sparc64 ppc64 s390x x86_64
|
||||
%global include_gappletviewer 1
|
||||
@ -160,11 +160,7 @@ Patch16: gcc44-unwind-debug-hook.patch
|
||||
Patch17: gcc44-pr38757.patch
|
||||
Patch18: gcc44-libstdc++-docs.patch
|
||||
Patch19: gcc44-vta-cfgexpand-ptr-mode-pr41248.patch
|
||||
Patch20: gcc44-vta-cselib-subreg-of-value-pr41276.patch
|
||||
Patch21: gcc44-vta-loop-ivopts-propagate-on-release.patch
|
||||
Patch22: gcc44-vta-no-g-with-gtoggle.patch
|
||||
Patch23: gcc44-vta-phiopt-pr41232.patch
|
||||
Patch24: gcc44-vta-ssa-update-former-vops-pr41229.patch
|
||||
Patch20: gcc44-vta-cselib-subreg-of-value-more-pr41276.patch
|
||||
|
||||
Patch1000: fastjar-0.97-segfault.patch
|
||||
|
||||
@ -471,11 +467,7 @@ which are required to compile with the GNAT.
|
||||
%patch18 -p0 -b .libstdc++-docs~
|
||||
%endif
|
||||
%patch19 -p0 -b .vta-cfgexpand-ptr-mode-pr41248~
|
||||
%patch20 -p0 -b .vta-cselib-subreg-of-value-pr41276~
|
||||
%patch21 -p0 -b .vta-loop-ivopts-propagate-on-release~
|
||||
%patch22 -p0 -b .vta-no-g-with-gtoggle~
|
||||
%patch23 -p0 -b .vta-phiopt-pr41232~
|
||||
%patch24 -p0 -b .vta-ssa-update-former-vops-pr41229~
|
||||
%patch20 -p0 -b .gcc44-vta-cselib-subreg-of-value-more-pr41276~
|
||||
|
||||
# This testcase doesn't compile.
|
||||
rm libjava/testsuite/libjava.lang/PR35020*
|
||||
@ -1168,7 +1160,7 @@ echo ====================TESTING=========================
|
||||
( LC_ALL=C ../contrib/test_summary || : ) 2>&1 | sed -n '/^cat.*EOF/,/^EOF/{/^cat.*EOF/d;/^EOF/d;/^LAST_UPDATED:/d;p;}'
|
||||
echo ====================TESTING END=====================
|
||||
mkdir testlogs-%{_target_platform}-%{version}-%{release}
|
||||
for i in `find . -name \*.log | grep -F testsuite/ | grep -v 'config.log\|acats\|ada'`; do
|
||||
for i in `find . -name \*.log | grep -F testsuite/ | grep -v 'config.log\|acats.*/tests/'`; do
|
||||
ln $i testlogs-%{_target_platform}-%{version}-%{release}/ || :
|
||||
done
|
||||
tar cf - testlogs-%{_target_platform}-%{version}-%{release} | bzip2 -9c \
|
||||
@ -1815,6 +1807,9 @@ fi
|
||||
%doc rpm.doc/changelogs/libmudflap/ChangeLog*
|
||||
|
||||
%changelog
|
||||
* Wed Sep 9 2009 Jakub Jelinek <jakub@redhat.com> 4.4.1-11
|
||||
- fix ICE in tls_mem_loc_descriptor (#521991)
|
||||
|
||||
* Tue Sep 8 2009 Jakub Jelinek <jakub@redhat.com> 4.4.1-10
|
||||
- update from gcc-4_4-branch
|
||||
- PRs fortran/41258, rtl-optimization/40861
|
||||
|
@ -86,7 +86,7 @@ Index: gcc/cselib.c
|
||||
@@ -1185,20 +1201,16 @@ cselib_expand_value_rtx_1 (rtx orig, str
|
||||
fputs (" into...", dump_file);
|
||||
}
|
||||
|
||||
|
||||
- if (!evd->callback)
|
||||
- result = NULL;
|
||||
- else
|
||||
|
@ -1,30 +0,0 @@
|
||||
for gcc/ChangeLog
|
||||
from Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
PR debug/41276
|
||||
* cselib.c (cselib_expand_value_rtx_1): Don't return copy of
|
||||
invalid subreg.
|
||||
|
||||
Index: gcc/cselib.c
|
||||
===================================================================
|
||||
--- gcc/cselib.c.orig 2009-08-14 08:00:12.000000000 -0300
|
||||
+++ gcc/cselib.c 2009-09-07 19:17:35.000000000 -0300
|
||||
@@ -1165,12 +1165,12 @@ cselib_expand_value_rtx_1 (rtx orig, str
|
||||
scopy = simplify_gen_subreg (GET_MODE (orig), subreg,
|
||||
GET_MODE (SUBREG_REG (orig)),
|
||||
SUBREG_BYTE (orig));
|
||||
- if (scopy == NULL
|
||||
- || (GET_CODE (scopy) == SUBREG
|
||||
- && !REG_P (SUBREG_REG (scopy))
|
||||
- && !MEM_P (SUBREG_REG (scopy))
|
||||
- && (REG_P (SUBREG_REG (orig))
|
||||
- || MEM_P (SUBREG_REG (orig)))))
|
||||
+ if ((scopy == NULL
|
||||
+ || (GET_CODE (scopy) == SUBREG
|
||||
+ && !REG_P (SUBREG_REG (scopy))
|
||||
+ && !MEM_P (SUBREG_REG (scopy))))
|
||||
+ && (REG_P (SUBREG_REG (orig))
|
||||
+ || MEM_P (SUBREG_REG (orig))))
|
||||
return shallow_copy_rtx (orig);
|
||||
return scopy;
|
||||
}
|
@ -1,207 +0,0 @@
|
||||
for gcc/ChangeLog
|
||||
from Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
* tree-ssa-loop-ivopts.c (get_phi_with_result): Remove.
|
||||
(remove_statement): Likewise.
|
||||
(rewrite_use_nonlinear_expr): Adjust.
|
||||
(remove_unused_ivs): Collect SSA NAMEs to remove and call...
|
||||
* tree-ssa.c (release_defs_bitset): ... this. New.
|
||||
* tree-flow.h (release_defs_bitset): Declare.
|
||||
|
||||
Index: gcc/tree-ssa-loop-ivopts.c
|
||||
===================================================================
|
||||
--- gcc/tree-ssa-loop-ivopts.c.orig 2009-09-07 19:00:52.000000000 -0300
|
||||
+++ gcc/tree-ssa-loop-ivopts.c 2009-09-07 19:15:39.000000000 -0300
|
||||
@@ -5038,42 +5038,6 @@ create_new_ivs (struct ivopts_data *data
|
||||
}
|
||||
}
|
||||
|
||||
-/* Returns the phi-node in BB with result RESULT. */
|
||||
-
|
||||
-static gimple
|
||||
-get_phi_with_result (basic_block bb, tree result)
|
||||
-{
|
||||
- gimple_stmt_iterator i = gsi_start_phis (bb);
|
||||
-
|
||||
- for (; !gsi_end_p (i); gsi_next (&i))
|
||||
- if (gimple_phi_result (gsi_stmt (i)) == result)
|
||||
- return gsi_stmt (i);
|
||||
-
|
||||
- gcc_unreachable ();
|
||||
- return NULL;
|
||||
-}
|
||||
-
|
||||
-
|
||||
-/* Removes statement STMT (real or a phi node). If INCLUDING_DEFINED_NAME
|
||||
- is true, remove also the ssa name defined by the statement. */
|
||||
-
|
||||
-static void
|
||||
-remove_statement (gimple stmt, bool including_defined_name)
|
||||
-{
|
||||
- if (gimple_code (stmt) == GIMPLE_PHI)
|
||||
- {
|
||||
- gimple bb_phi = get_phi_with_result (gimple_bb (stmt),
|
||||
- gimple_phi_result (stmt));
|
||||
- gimple_stmt_iterator bsi = gsi_for_stmt (bb_phi);
|
||||
- remove_phi_node (&bsi, including_defined_name);
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- gimple_stmt_iterator bsi = gsi_for_stmt (stmt);
|
||||
- gsi_remove (&bsi, true);
|
||||
- release_defs (stmt);
|
||||
- }
|
||||
-}
|
||||
|
||||
/* Rewrites USE (definition of iv used in a nonlinear expression)
|
||||
using candidate CAND. */
|
||||
@@ -5176,7 +5140,9 @@ rewrite_use_nonlinear_expr (struct ivopt
|
||||
{
|
||||
ass = gimple_build_assign (tgt, op);
|
||||
gsi_insert_before (&bsi, ass, GSI_SAME_STMT);
|
||||
- remove_statement (use->stmt, false);
|
||||
+
|
||||
+ bsi = gsi_for_stmt (use->stmt);
|
||||
+ remove_phi_node (&bsi, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -5414,7 +5380,11 @@ remove_unused_ivs (struct ivopts_data *d
|
||||
{
|
||||
unsigned j;
|
||||
bitmap_iterator bi;
|
||||
+ bitmap toremove = BITMAP_ALLOC (NULL);
|
||||
|
||||
+ /* Figure out an order in which to release SSA DEFs so that we don't
|
||||
+ release something that we'd have to propagate into a debug stmt
|
||||
+ afterwards. */
|
||||
EXECUTE_IF_SET_IN_BITMAP (data->relevant, 0, j, bi)
|
||||
{
|
||||
struct version_info *info;
|
||||
@@ -5425,25 +5395,12 @@ remove_unused_ivs (struct ivopts_data *d
|
||||
&& !info->inv_id
|
||||
&& !info->iv->have_use_for
|
||||
&& !info->preserve_biv)
|
||||
- {
|
||||
- if (MAY_HAVE_DEBUG_STMTS)
|
||||
- {
|
||||
- gimple stmt;
|
||||
- imm_use_iterator iter;
|
||||
-
|
||||
- FOR_EACH_IMM_USE_STMT (stmt, iter, info->iv->ssa_name)
|
||||
- {
|
||||
- if (!gimple_debug_bind_p (stmt))
|
||||
- continue;
|
||||
-
|
||||
- /* ??? We can probably do better than this. */
|
||||
- gimple_debug_bind_reset_value (stmt);
|
||||
- update_stmt (stmt);
|
||||
- }
|
||||
- }
|
||||
- remove_statement (SSA_NAME_DEF_STMT (info->iv->ssa_name), true);
|
||||
- }
|
||||
+ bitmap_set_bit (toremove, SSA_NAME_VERSION (info->iv->ssa_name));
|
||||
}
|
||||
+
|
||||
+ release_defs_bitset (toremove);
|
||||
+
|
||||
+ BITMAP_FREE (toremove);
|
||||
}
|
||||
|
||||
/* Frees data allocated by the optimization of a single loop. */
|
||||
Index: gcc/tree-flow.h
|
||||
===================================================================
|
||||
--- gcc/tree-flow.h.orig 2009-07-12 08:19:36.000000000 -0300
|
||||
+++ gcc/tree-flow.h 2009-09-07 19:15:39.000000000 -0300
|
||||
@@ -586,9 +586,10 @@ typedef struct
|
||||
(VAR) = next_referenced_var (&(ITER)))
|
||||
|
||||
void propagate_defs_into_debug_stmts (gimple, basic_block,
|
||||
- const gimple_stmt_iterator *);
|
||||
+ const gimple_stmt_iterator *);
|
||||
void propagate_var_def_into_debug_stmts (tree, basic_block,
|
||||
- const gimple_stmt_iterator *);
|
||||
+ const gimple_stmt_iterator *);
|
||||
+void release_defs_bitset (bitmap toremove);
|
||||
|
||||
typedef struct
|
||||
{
|
||||
Index: gcc/tree-ssa.c
|
||||
===================================================================
|
||||
--- gcc/tree-ssa.c.orig 2009-09-01 16:16:04.000000000 -0300
|
||||
+++ gcc/tree-ssa.c 2009-09-07 19:15:39.000000000 -0300
|
||||
@@ -440,6 +440,74 @@ propagate_defs_into_debug_stmts (gimple
|
||||
}
|
||||
}
|
||||
|
||||
+/* Delete SSA DEFs for SSA versions in the TOREMOVE bitmap, removing
|
||||
+ dominated stmts before their dominators, so that release_ssa_defs
|
||||
+ stands a chance of propagating DEFs into debug bind stmts. */
|
||||
+
|
||||
+void
|
||||
+release_defs_bitset (bitmap toremove)
|
||||
+{
|
||||
+ unsigned j;
|
||||
+ bitmap_iterator bi;
|
||||
+
|
||||
+ /* Performing a topological sort is probably overkill, this will
|
||||
+ most likely run in slightly superlinear time, rather than the
|
||||
+ pathological quadratic worst case. */
|
||||
+ while (!bitmap_empty_p (toremove))
|
||||
+ EXECUTE_IF_SET_IN_BITMAP (toremove, 0, j, bi)
|
||||
+ {
|
||||
+ bool remove_now = true;
|
||||
+ tree var = ssa_name (j);
|
||||
+ gimple stmt;
|
||||
+ imm_use_iterator uit;
|
||||
+
|
||||
+ FOR_EACH_IMM_USE_STMT (stmt, uit, var)
|
||||
+ {
|
||||
+ ssa_op_iter dit;
|
||||
+ def_operand_p def_p;
|
||||
+
|
||||
+ /* We can't propagate PHI nodes into debug stmts. */
|
||||
+ if (gimple_code (stmt) == GIMPLE_PHI
|
||||
+ || is_gimple_debug (stmt))
|
||||
+ continue;
|
||||
+
|
||||
+ /* If we find another definition to remove that uses
|
||||
+ the one we're looking at, defer the removal of this
|
||||
+ one, so that it can be propagated into debug stmts
|
||||
+ after the other is. */
|
||||
+ FOR_EACH_SSA_DEF_OPERAND (def_p, stmt, dit, SSA_OP_DEF)
|
||||
+ {
|
||||
+ tree odef = DEF_FROM_PTR (def_p);
|
||||
+
|
||||
+ if (bitmap_bit_p (toremove, SSA_NAME_VERSION (odef)))
|
||||
+ {
|
||||
+ remove_now = false;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (!remove_now)
|
||||
+ BREAK_FROM_IMM_USE_STMT (uit);
|
||||
+ }
|
||||
+
|
||||
+ if (remove_now)
|
||||
+ {
|
||||
+ gimple def = SSA_NAME_DEF_STMT (var);
|
||||
+ gimple_stmt_iterator gsi = gsi_for_stmt (def);
|
||||
+
|
||||
+ if (gimple_code (def) == GIMPLE_PHI)
|
||||
+ remove_phi_node (&gsi, true);
|
||||
+ else
|
||||
+ {
|
||||
+ gsi_remove (&gsi, true);
|
||||
+ release_defs (def);
|
||||
+ }
|
||||
+
|
||||
+ bitmap_clear_bit (toremove, j);
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
/* Return true if SSA_NAME is malformed and mark it visited.
|
||||
|
||||
IS_VIRTUAL is true if this SSA_NAME was found inside a virtual
|
@ -1,18 +0,0 @@
|
||||
Index: gcc/toplev.c
|
||||
===================================================================
|
||||
--- gcc/toplev.c.orig 2009-09-07 19:11:47.000000000 -0300
|
||||
+++ gcc/toplev.c 2009-09-07 19:17:31.000000000 -0300
|
||||
@@ -1796,7 +1796,12 @@ process_options (void)
|
||||
if (flag_gtoggle)
|
||||
{
|
||||
if (debug_info_level == DINFO_LEVEL_NONE)
|
||||
- debug_info_level = DINFO_LEVEL_NORMAL;
|
||||
+ {
|
||||
+ debug_info_level = DINFO_LEVEL_NORMAL;
|
||||
+
|
||||
+ if (write_symbols == NO_DEBUG)
|
||||
+ write_symbols = PREFERRED_DEBUGGING_TYPE;
|
||||
+ }
|
||||
else
|
||||
debug_info_level = DINFO_LEVEL_NONE;
|
||||
}
|
@ -1,45 +0,0 @@
|
||||
for gcc/ChangeLog
|
||||
from Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
PR debug/41232
|
||||
* tree-ssa-phiopt.c (minmax_replacement): Skip debug stmts
|
||||
in the middle block.
|
||||
|
||||
for gcc/testsuite/ChangeLog
|
||||
from Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
PR debug/41232
|
||||
* gcc.dg/pr41232.c: New.
|
||||
|
||||
Index: gcc/testsuite/gcc.dg/pr41232.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gcc/testsuite/gcc.dg/pr41232.c 2009-09-07 19:15:35.000000000 -0300
|
||||
@@ -0,0 +1,14 @@
|
||||
+/* { dg-do compile } */
|
||||
+/* { dg-options "-O1 -g" } */
|
||||
+extern int atoi (const char *);
|
||||
+extern int sprintf (char *, const char *, ...);
|
||||
+void malloc_init() {
|
||||
+ char *cptr;
|
||||
+ char buf[1];
|
||||
+ int tmbd = atoi(cptr);
|
||||
+ if (tmbd > 0)
|
||||
+ tmbd = (tmbd <= 124) ? tmbd : 124;
|
||||
+ else
|
||||
+ tmbd = 0;
|
||||
+ sprintf(buf, "%d\n", tmbd);
|
||||
+}
|
||||
Index: gcc/tree-ssa-phiopt.c
|
||||
===================================================================
|
||||
--- gcc/tree-ssa-phiopt.c.orig 2009-09-07 19:00:29.000000000 -0300
|
||||
+++ gcc/tree-ssa-phiopt.c 2009-09-07 19:15:35.000000000 -0300
|
||||
@@ -848,7 +848,7 @@ minmax_replacement (basic_block cond_bb,
|
||||
|
||||
/* Move the statement from the middle block. */
|
||||
gsi = gsi_last_bb (cond_bb);
|
||||
- gsi_from = gsi_last_bb (middle_bb);
|
||||
+ gsi_from = gsi_last_nondebug_bb (middle_bb);
|
||||
gsi_move_before (&gsi_from, &gsi);
|
||||
}
|
||||
|
@ -1,41 +0,0 @@
|
||||
for gcc/ChangeLog
|
||||
from Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
PR debug/41229
|
||||
* tree-ssa.c (execute_update_addresses_taken): Update debug insns.
|
||||
|
||||
for gcc/testsuite/ChangeLog
|
||||
from Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
PR debug/41229
|
||||
* gfortran.dg/pr41229.f90: New.
|
||||
|
||||
Index: gcc/testsuite/gfortran.dg/pr41229.f90
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gcc/testsuite/gfortran.dg/pr41229.f90 2009-09-07 19:16:17.000000000 -0300
|
||||
@@ -0,0 +1,10 @@
|
||||
+! { dg-do compile }
|
||||
+! { dg-options "-O2 -g" }
|
||||
+SUBROUTINE cp_fm_triangular_multiply()
|
||||
+ INTEGER, PARAMETER :: dp=KIND(0.0D0)
|
||||
+ REAL(dp), ALLOCATABLE, DIMENSION(:) :: tau, work
|
||||
+ REAL(KIND=dp), DIMENSION(:, :), POINTER :: a
|
||||
+ ndim = SIZE(a,2)
|
||||
+ ALLOCATE(tau(ndim),STAT=istat)
|
||||
+ ALLOCATE(work(2*ndim),STAT=istat)
|
||||
+END SUBROUTINE
|
||||
Index: gcc/tree-ssa.c
|
||||
===================================================================
|
||||
--- gcc/tree-ssa.c.orig 2009-09-07 19:15:39.000000000 -0300
|
||||
+++ gcc/tree-ssa.c 2009-09-07 19:17:19.000000000 -0300
|
||||
@@ -2067,7 +2067,8 @@ execute_update_addresses_taken (void)
|
||||
if ((gimple_loaded_syms (stmt)
|
||||
&& bitmap_intersect_p (gimple_loaded_syms (stmt), vars_updated))
|
||||
|| (gimple_stored_syms (stmt)
|
||||
- && bitmap_intersect_p (gimple_stored_syms (stmt), vars_updated)))
|
||||
+ && bitmap_intersect_p (gimple_stored_syms (stmt), vars_updated))
|
||||
+ || is_gimple_debug (stmt))
|
||||
update_stmt (stmt);
|
||||
}
|
||||
BITMAP_FREE (not_reg_needs);
|
Loading…
Reference in New Issue
Block a user