4.4.1-13
This commit is contained in:
parent
153c32b01a
commit
e29a68e7a9
@ -1,2 +1,2 @@
|
|||||||
fastjar-0.97.tar.gz
|
fastjar-0.97.tar.gz
|
||||||
gcc-4.4.1-20090910.tar.bz2
|
gcc-4.4.1-20090911.tar.bz2
|
||||||
|
27
gcc.spec
27
gcc.spec
@ -1,9 +1,9 @@
|
|||||||
%global DATE 20090910
|
%global DATE 20090911
|
||||||
%global SVNREV 151593
|
%global SVNREV 151630
|
||||||
%global gcc_version 4.4.1
|
%global gcc_version 4.4.1
|
||||||
# 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 12
|
%global gcc_release 13
|
||||||
%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
|
||||||
%global include_gappletviewer 1
|
%global include_gappletviewer 1
|
||||||
@ -160,9 +160,11 @@ Patch16: gcc44-unwind-debug-hook.patch
|
|||||||
Patch17: gcc44-pr38757.patch
|
Patch17: gcc44-pr38757.patch
|
||||||
Patch18: gcc44-libstdc++-docs.patch
|
Patch18: gcc44-libstdc++-docs.patch
|
||||||
Patch19: gcc44-vta-cfgexpand-ptr-mode-pr41248.patch
|
Patch19: gcc44-vta-cfgexpand-ptr-mode-pr41248.patch
|
||||||
Patch20: gcc44-vta-cselib-subreg-of-value-more-pr41276.patch
|
Patch20: gcc44-powerpc-libgcc_s_so.patch
|
||||||
Patch21: gcc44-powerpc-libgcc_s_so.patch
|
Patch21: gcc44-pr41175.patch
|
||||||
Patch22: gcc44-pr41175.patch
|
Patch22: gcc44-pr41175-2.patch
|
||||||
|
Patch23: gcc44-rh518303.patch
|
||||||
|
Patch24: gcc44-rh522577.patch
|
||||||
|
|
||||||
Patch1000: fastjar-0.97-segfault.patch
|
Patch1000: fastjar-0.97-segfault.patch
|
||||||
|
|
||||||
@ -469,9 +471,11 @@ which are required to compile with the GNAT.
|
|||||||
%patch18 -p0 -b .libstdc++-docs~
|
%patch18 -p0 -b .libstdc++-docs~
|
||||||
%endif
|
%endif
|
||||||
%patch19 -p0 -b .vta-cfgexpand-ptr-mode-pr41248~
|
%patch19 -p0 -b .vta-cfgexpand-ptr-mode-pr41248~
|
||||||
%patch20 -p0 -b .gcc44-vta-cselib-subreg-of-value-more-pr41276~
|
%patch20 -p0 -b .powerpc-libgcc_s_so~
|
||||||
%patch21 -p0 -b .powerpc-libgcc_s_so~
|
%patch21 -p0 -b .pr41175~
|
||||||
%patch22 -p0 -b .pr41175~
|
%patch22 -p0 -b .pr41175-2~
|
||||||
|
%patch23 -p0 -b .rh518303~
|
||||||
|
%patch24 -p0 -b .rh522577~
|
||||||
|
|
||||||
# This testcase doesn't compile.
|
# This testcase doesn't compile.
|
||||||
rm libjava/testsuite/libjava.lang/PR35020*
|
rm libjava/testsuite/libjava.lang/PR35020*
|
||||||
@ -1827,6 +1831,11 @@ fi
|
|||||||
%doc rpm.doc/changelogs/libmudflap/ChangeLog*
|
%doc rpm.doc/changelogs/libmudflap/ChangeLog*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Sep 11 2009 Jakub Jelinek <jakub@redhat.com> 4.4.1-13
|
||||||
|
- fix ICE in debuginfo output with BLOCK_NONLOCALIZED_VARS (#518303)
|
||||||
|
- wrap_constant when propagating for subst in debug in the combiner (#522577)
|
||||||
|
- further fix for ppc -m32 -Os out of line gpr/fpr restoring (PR target/41175)
|
||||||
|
|
||||||
* Thu Sep 10 2009 Jakub Jelinek <jakub@redhat.com> 4.4.1-12
|
* Thu Sep 10 2009 Jakub Jelinek <jakub@redhat.com> 4.4.1-12
|
||||||
- update from gcc-4_4-branch
|
- update from gcc-4_4-branch
|
||||||
- PRs bootstrap/41180, target/41315
|
- PRs bootstrap/41180, target/41315
|
||||||
|
@ -13,9 +13,9 @@
|
|||||||
|
|
||||||
--- gcc/config/rs6000/rs6000.c.jj 2009-09-09 20:46:57.000000000 +0200
|
--- gcc/config/rs6000/rs6000.c.jj 2009-09-09 20:46:57.000000000 +0200
|
||||||
+++ gcc/config/rs6000/rs6000.c 2009-09-11 10:29:01.101406443 +0200
|
+++ gcc/config/rs6000/rs6000.c 2009-09-11 10:29:01.101406443 +0200
|
||||||
@@ -18104,8 +18104,12 @@ rs6000_emit_stack_reset (rs6000_stack_t
|
@@ -18083,8 +18083,12 @@ rs6000_emit_stack_reset (rs6000_stack_t
|
||||||
if (frame_reg_rtx != sp_reg_rtx)
|
|
||||||
{
|
{
|
||||||
|
rs6000_emit_stack_tie ();
|
||||||
if (sp_offset != 0)
|
if (sp_offset != 0)
|
||||||
- return emit_insn (gen_addsi3 (sp_reg_rtx, frame_reg_rtx,
|
- return emit_insn (gen_addsi3 (sp_reg_rtx, frame_reg_rtx,
|
||||||
- GEN_INT (sp_offset)));
|
- GEN_INT (sp_offset)));
|
||||||
@ -28,7 +28,7 @@
|
|||||||
else if (!savres)
|
else if (!savres)
|
||||||
return emit_move_insn (sp_reg_rtx, frame_reg_rtx);
|
return emit_move_insn (sp_reg_rtx, frame_reg_rtx);
|
||||||
}
|
}
|
||||||
@@ -19541,9 +19545,13 @@ rs6000_emit_epilogue (int sibcall)
|
@@ -19525,9 +19529,13 @@ rs6000_emit_epilogue (int sibcall)
|
||||||
rs6000_emit_stack_reset (info, sp_reg_rtx, frame_reg_rtx,
|
rs6000_emit_stack_reset (info, sp_reg_rtx, frame_reg_rtx,
|
||||||
sp_offset, can_use_exit);
|
sp_offset, can_use_exit);
|
||||||
else
|
else
|
||||||
@ -45,7 +45,7 @@
|
|||||||
|
|
||||||
par = rs6000_make_savres_rtx (info, frame_reg_rtx,
|
par = rs6000_make_savres_rtx (info, frame_reg_rtx,
|
||||||
info->gp_save_offset, reg_mode,
|
info->gp_save_offset, reg_mode,
|
||||||
@@ -19648,12 +19656,10 @@ rs6000_emit_epilogue (int sibcall)
|
@@ -19632,12 +19640,10 @@ rs6000_emit_epilogue (int sibcall)
|
||||||
info->lr_save_offset + sp_offset);
|
info->lr_save_offset + sp_offset);
|
||||||
|
|
||||||
emit_move_insn (gen_rtx_REG (Pmode, 0), mem);
|
emit_move_insn (gen_rtx_REG (Pmode, 0), mem);
|
||||||
|
30
gcc44-rh518303.patch
Normal file
30
gcc44-rh518303.patch
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
2009-09-09 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* integrate.c (set_block_abstract_flags): Call
|
||||||
|
set_decl_abstract_flags also on BLOCK_NONLOCALIZED_VARs.
|
||||||
|
|
||||||
|
--- gcc/integrate.c.jj 2009-03-04 12:12:03.000000000 +0100
|
||||||
|
+++ gcc/integrate.c 2009-09-09 18:07:07.000000000 +0200
|
||||||
|
@@ -167,6 +167,7 @@ set_block_abstract_flags (tree stmt, int
|
||||||
|
{
|
||||||
|
tree local_decl;
|
||||||
|
tree subblock;
|
||||||
|
+ unsigned int i;
|
||||||
|
|
||||||
|
BLOCK_ABSTRACT (stmt) = setting;
|
||||||
|
|
||||||
|
@@ -175,6 +176,14 @@ set_block_abstract_flags (tree stmt, int
|
||||||
|
local_decl = TREE_CHAIN (local_decl))
|
||||||
|
set_decl_abstract_flags (local_decl, setting);
|
||||||
|
|
||||||
|
+ for (i = 0; i < BLOCK_NUM_NONLOCALIZED_VARS (stmt); i++)
|
||||||
|
+ {
|
||||||
|
+ local_decl = BLOCK_NONLOCALIZED_VAR (stmt, i);
|
||||||
|
+ if ((TREE_CODE (local_decl) == VAR_DECL && !TREE_STATIC (local_decl))
|
||||||
|
+ || TREE_CODE (local_decl) == PARM_DECL)
|
||||||
|
+ set_decl_abstract_flags (local_decl, setting);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
for (subblock = BLOCK_SUBBLOCKS (stmt);
|
||||||
|
subblock != NULL_TREE;
|
||||||
|
subblock = BLOCK_CHAIN (subblock))
|
15
gcc44-rh522577.patch
Normal file
15
gcc44-rh522577.patch
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
2009-09-11 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* combine.c (propagate_for_debug_subst): Call wrap_constant on top.
|
||||||
|
|
||||||
|
--- gcc/combine.c.jj 2009-09-08 12:32:31.000000000 +0200
|
||||||
|
+++ gcc/combine.c 2009-09-11 11:01:32.000000000 +0200
|
||||||
|
@@ -2311,7 +2311,7 @@ propagate_for_debug_subst (rtx *loc, voi
|
||||||
|
to = simplify_gen_subreg (GET_MODE (x), to,
|
||||||
|
GET_MODE (from), SUBREG_BYTE (x));
|
||||||
|
}
|
||||||
|
- *loc = to;
|
||||||
|
+ *loc = wrap_constant (GET_MODE (x), to);
|
||||||
|
pair->changed = true;
|
||||||
|
return -1;
|
||||||
|
}
|
@ -1,188 +0,0 @@
|
|||||||
for gcc/ChangeLog
|
|
||||||
from Alexandre Oliva <aoliva@redhat.com>
|
|
||||||
|
|
||||||
PR debug/41276
|
|
||||||
PR debug/41307
|
|
||||||
* cselib.c (cselib_expand_value_rtx_cb): Document callback
|
|
||||||
interface.
|
|
||||||
(cselib_expand_value_rtx_1): Use callback for SUBREGs. Adjust
|
|
||||||
for VALUEs, to implement the documented interface.
|
|
||||||
* var-tracking.c (vt_expand_loc_callback): Handle SUBREGs.
|
|
||||||
Adjust for VALUEs and anything else, to implement the
|
|
||||||
documented interface.
|
|
||||||
|
|
||||||
Index: gcc/cselib.c
|
|
||||||
===================================================================
|
|
||||||
--- gcc/cselib.c.orig 2009-09-08 19:34:10.000000000 -0300
|
|
||||||
+++ gcc/cselib.c 2009-09-09 05:20:52.000000000 -0300
|
|
||||||
@@ -1053,7 +1053,10 @@ cselib_expand_value_rtx (rtx orig, bitma
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Same as cselib_expand_value_rtx, but using a callback to try to
|
|
||||||
- resolve VALUEs that expand to nothing. */
|
|
||||||
+ resolve some expressions. The CB function should return ORIG if it
|
|
||||||
+ can't or does not want to deal with a certain RTX. Any other
|
|
||||||
+ return value, including NULL, will be used as the expansion for
|
|
||||||
+ VALUE, without any further changes. */
|
|
||||||
|
|
||||||
rtx
|
|
||||||
cselib_expand_value_rtx_cb (rtx orig, bitmap regs_active, int max_depth,
|
|
||||||
@@ -1068,6 +1071,9 @@ cselib_expand_value_rtx_cb (rtx orig, bi
|
|
||||||
return cselib_expand_value_rtx_1 (orig, &evd, max_depth);
|
|
||||||
}
|
|
||||||
|
|
||||||
+/* Internal implementation of cselib_expand_value_rtx and
|
|
||||||
+ cselib_expand_value_rtx_cb. */
|
|
||||||
+
|
|
||||||
static rtx
|
|
||||||
cselib_expand_value_rtx_1 (rtx orig, struct expand_value_data *evd,
|
|
||||||
int max_depth)
|
|
||||||
@@ -1158,26 +1164,36 @@ cselib_expand_value_rtx_1 (rtx orig, str
|
|
||||||
|
|
||||||
case SUBREG:
|
|
||||||
{
|
|
||||||
- rtx subreg = cselib_expand_value_rtx_1 (SUBREG_REG (orig), evd,
|
|
||||||
- max_depth - 1);
|
|
||||||
+ rtx subreg;
|
|
||||||
+
|
|
||||||
+ if (evd->callback)
|
|
||||||
+ {
|
|
||||||
+ subreg = evd->callback (orig, evd->regs_active, max_depth,
|
|
||||||
+ evd->callback_arg);
|
|
||||||
+ if (subreg != orig)
|
|
||||||
+ return subreg;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ subreg = cselib_expand_value_rtx_1 (SUBREG_REG (orig), evd,
|
|
||||||
+ max_depth - 1);
|
|
||||||
if (!subreg)
|
|
||||||
return NULL;
|
|
||||||
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))))
|
|
||||||
- return shallow_copy_rtx (orig);
|
|
||||||
+ if (scopy == NULL
|
|
||||||
+ || (GET_CODE (scopy) == SUBREG
|
|
||||||
+ && !REG_P (SUBREG_REG (scopy))
|
|
||||||
+ && !MEM_P (SUBREG_REG (scopy))))
|
|
||||||
+ return NULL;
|
|
||||||
+
|
|
||||||
return scopy;
|
|
||||||
}
|
|
||||||
|
|
||||||
case VALUE:
|
|
||||||
{
|
|
||||||
rtx result;
|
|
||||||
+
|
|
||||||
if (dump_file && (dump_flags & TDF_DETAILS))
|
|
||||||
{
|
|
||||||
fputs ("\nexpanding ", dump_file);
|
|
||||||
@@ -1185,20 +1201,16 @@ cselib_expand_value_rtx_1 (rtx orig, str
|
|
||||||
fputs (" into...", dump_file);
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (!evd->callback)
|
|
||||||
- result = NULL;
|
|
||||||
- else
|
|
||||||
+ if (evd->callback)
|
|
||||||
{
|
|
||||||
result = evd->callback (orig, evd->regs_active, max_depth,
|
|
||||||
evd->callback_arg);
|
|
||||||
- if (result == orig)
|
|
||||||
- result = NULL;
|
|
||||||
- else if (result)
|
|
||||||
- result = cselib_expand_value_rtx_1 (result, evd, max_depth);
|
|
||||||
+
|
|
||||||
+ if (result != orig)
|
|
||||||
+ return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (!result)
|
|
||||||
- result = expand_loc (CSELIB_VAL_PTR (orig)->locs, evd, max_depth);
|
|
||||||
+ result = expand_loc (CSELIB_VAL_PTR (orig)->locs, evd, max_depth);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
Index: gcc/var-tracking.c
|
|
||||||
===================================================================
|
|
||||||
--- gcc/var-tracking.c.orig 2009-09-08 19:33:55.000000000 -0300
|
|
||||||
+++ gcc/var-tracking.c 2009-09-08 20:08:08.000000000 -0300
|
|
||||||
@@ -6243,7 +6243,8 @@ check_wrap_constant (enum machine_mode m
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Callback for cselib_expand_value, that looks for expressions
|
|
||||||
- holding the value in the var-tracking hash tables. */
|
|
||||||
+ holding the value in the var-tracking hash tables. Return X for
|
|
||||||
+ standard processing, anything else is to be used as-is. */
|
|
||||||
|
|
||||||
static rtx
|
|
||||||
vt_expand_loc_callback (rtx x, bitmap regs, int max_depth, void *data)
|
|
||||||
@@ -6254,19 +6255,46 @@ vt_expand_loc_callback (rtx x, bitmap re
|
|
||||||
location_chain loc;
|
|
||||||
rtx result;
|
|
||||||
|
|
||||||
- gcc_assert (GET_CODE (x) == VALUE);
|
|
||||||
+ if (GET_CODE (x) == SUBREG)
|
|
||||||
+ {
|
|
||||||
+ rtx subreg = SUBREG_REG (x);
|
|
||||||
+
|
|
||||||
+ if (GET_CODE (SUBREG_REG (x)) != VALUE)
|
|
||||||
+ return x;
|
|
||||||
+
|
|
||||||
+ subreg = cselib_expand_value_rtx_cb (SUBREG_REG (x), regs,
|
|
||||||
+ max_depth - 1,
|
|
||||||
+ vt_expand_loc_callback, data);
|
|
||||||
+
|
|
||||||
+ if (!subreg)
|
|
||||||
+ return NULL;
|
|
||||||
+
|
|
||||||
+ result = simplify_gen_subreg (GET_MODE (x), subreg,
|
|
||||||
+ GET_MODE (SUBREG_REG (x)),
|
|
||||||
+ SUBREG_BYTE (x));
|
|
||||||
+
|
|
||||||
+ /* Invalid SUBREGs are ok in debug info. ??? We could try
|
|
||||||
+ alternate expansions for the VALUE as well. */
|
|
||||||
+ if (!result && (REG_P (subreg) || MEM_P (subreg)))
|
|
||||||
+ result = gen_rtx_raw_SUBREG (GET_MODE (x), subreg, SUBREG_BYTE (x));
|
|
||||||
+
|
|
||||||
+ return result;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (GET_CODE (x) != VALUE)
|
|
||||||
+ return x;
|
|
||||||
|
|
||||||
if (VALUE_RECURSED_INTO (x))
|
|
||||||
- return NULL;
|
|
||||||
+ return x;
|
|
||||||
|
|
||||||
dv = dv_from_value (x);
|
|
||||||
var = (variable) htab_find_with_hash (vars, dv, dv_htab_hash (dv));
|
|
||||||
|
|
||||||
if (!var)
|
|
||||||
- return NULL;
|
|
||||||
+ return x;
|
|
||||||
|
|
||||||
if (var->n_var_parts == 0)
|
|
||||||
- return NULL;
|
|
||||||
+ return x;
|
|
||||||
|
|
||||||
gcc_assert (var->n_var_parts == 1);
|
|
||||||
|
|
||||||
@@ -6283,7 +6311,10 @@ vt_expand_loc_callback (rtx x, bitmap re
|
|
||||||
}
|
|
||||||
|
|
||||||
VALUE_RECURSED_INTO (x) = false;
|
|
||||||
- return result;
|
|
||||||
+ if (result)
|
|
||||||
+ return result;
|
|
||||||
+ else
|
|
||||||
+ return x;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Expand VALUEs in LOC, using VARS as well as cselib's equivalence
|
|
Loading…
Reference in New Issue
Block a user