public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/gcc] rhel-f41-base: 4.4.1-11
@ 2026-06-29 12:24 Jakub Jelinek
0 siblings, 0 replies; 2+ messages in thread
From: Jakub Jelinek @ 2026-06-29 12:24 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/gcc
Branch : rhel-f41-base
Commit : a291f05d00921321feb8d371bf1e18d1a3abe0f3
Author : Jakub Jelinek <jakub@fedoraproject.org>
Date : 2009-09-09T09:20:44+00:00
Stats : +12/-358 in 9 file(s)
URL : https://src.fedoraproject.org/rpms/gcc/c/a291f05d00921321feb8d371bf1e18d1a3abe0f3?branch=rhel-f41-base
Log:
4.4.1-11
---
diff --git a/.cvsignore b/.cvsignore
index c692878..403ba69 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1,2 +1,2 @@
fastjar-0.97.tar.gz
-gcc-4.4.1-20090908.tar.bz2
+gcc-4.4.1-20090909.tar.bz2
diff --git a/gcc.spec b/gcc.spec
index c39e7e9..d6e2726 100644
--- a/gcc.spec
+++ b/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
diff --git a/gcc44-vta-cselib-subreg-of-value-more-pr41276.patch b/gcc44-vta-cselib-subreg-of-value-more-pr41276.patch
index 0dded73..a61935c 100644
--- a/gcc44-vta-cselib-subreg-of-value-more-pr41276.patch
+++ b/gcc44-vta-cselib-subreg-of-value-more-pr41276.patch
@@ -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
diff --git a/gcc44-vta-cselib-subreg-of-value-pr41276.patch b/gcc44-vta-cselib-subreg-of-value-pr41276.patch
deleted file mode 100644
index 6de60eb..0000000
--- a/gcc44-vta-cselib-subreg-of-value-pr41276.patch
+++ /dev/null
@@ -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;
- }
diff --git a/gcc44-vta-loop-ivopts-propagate-on-release.patch b/gcc44-vta-loop-ivopts-propagate-on-release.patch
deleted file mode 100644
index 2376d64..0000000
--- a/gcc44-vta-loop-ivopts-propagate-on-release.patch
+++ /dev/null
@@ -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
diff --git a/gcc44-vta-no-g-with-gtoggle.patch b/gcc44-vta-no-g-with-gtoggle.patch
deleted file mode 100644
index 457fd06..0000000
--- a/gcc44-vta-no-g-with-gtoggle.patch
+++ /dev/null
@@ -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;
- }
diff --git a/gcc44-vta-phiopt-pr41232.patch b/gcc44-vta-phiopt-pr41232.patch
deleted file mode 100644
index ace14cf..0000000
--- a/gcc44-vta-phiopt-pr41232.patch
+++ /dev/null
@@ -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);
- }
-
diff --git a/gcc44-vta-ssa-update-former-vops-pr41229.patch b/gcc44-vta-ssa-update-former-vops-pr41229.patch
deleted file mode 100644
index 3f1278f..0000000
--- a/gcc44-vta-ssa-update-former-vops-pr41229.patch
+++ /dev/null
@@ -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);
diff --git a/sources b/sources
index e1346bc..cc9a561 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
2659f09c2e43ef8b7d4406321753f1b2 fastjar-0.97.tar.gz
-12f92325baf664989136ea6c7585273f gcc-4.4.1-20090908.tar.bz2
+de6d4c15a234466f656b6fcb84d8c3ec gcc-4.4.1-20090909.tar.bz2
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [rpms/gcc] rhel-f41-base: 4.4.1-11
@ 2026-06-29 12:24 Jakub Jelinek
0 siblings, 0 replies; 2+ messages in thread
From: Jakub Jelinek @ 2026-06-29 12:24 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/gcc
Branch : rhel-f41-base
Commit : 38ba9bfb9002e64094c9f3a0c20fb74d7f0d87a3
Author : Jakub Jelinek <jakub@fedoraproject.org>
Date : 2009-09-09T09:06:01+00:00
Stats : +188/-0 in 1 file(s)
URL : https://src.fedoraproject.org/rpms/gcc/c/38ba9bfb9002e64094c9f3a0c20fb74d7f0d87a3?branch=rhel-f41-base
Log:
4.4.1-11
---
diff --git a/gcc44-vta-cselib-subreg-of-value-more-pr41276.patch b/gcc44-vta-cselib-subreg-of-value-more-pr41276.patch
new file mode 100644
index 0000000..0dded73
--- /dev/null
+++ b/gcc44-vta-cselib-subreg-of-value-more-pr41276.patch
@@ -0,0 +1,188 @@
+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
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-06-29 12:24 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-29 12:24 [rpms/gcc] rhel-f41-base: 4.4.1-11 Jakub Jelinek
-- strict thread matches above, loose matches on Subject: below --
2026-06-29 12:24 Jakub Jelinek
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox