rpms/gcc/devel gcc44-vta-cselib-subreg-of-value-more-pr41276.patch, NONE, 1.1 .cvsignore, 1.288, 1.289 gcc.spec, 1.66, 1.67 sources, 1.292, 1.293 gcc44-vta-cselib-subreg-of-value-pr41276.patch, 1.1, NONE gcc44-vta-loop-ivopts-propagate-on-release.patch, 1.1, NONE gcc44-vta-no-g-with-gtoggle.patch, 1.1, NONE gcc44-vta-phiopt-pr41232.patch, 1.1, NONE gcc44-vta-ssa-update-former-vops-pr41229.patch, 1.1, NONE

Jakub Jelinek jakub at fedoraproject.org
Wed Sep 9 09:06:02 UTC 2009


Author: jakub

Update of /cvs/pkgs/rpms/gcc/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv26169

Modified Files:
	.cvsignore gcc.spec sources 
Added Files:
	gcc44-vta-cselib-subreg-of-value-more-pr41276.patch 
Removed Files:
	gcc44-vta-cselib-subreg-of-value-pr41276.patch 
	gcc44-vta-loop-ivopts-propagate-on-release.patch 
	gcc44-vta-no-g-with-gtoggle.patch 
	gcc44-vta-phiopt-pr41232.patch 
	gcc44-vta-ssa-update-former-vops-pr41229.patch 
Log Message:
4.4.1-11

gcc44-vta-cselib-subreg-of-value-more-pr41276.patch:
 cselib.c       |   50 +++++++++++++++++++++++++++++++-------------------
 var-tracking.c |   43 +++++++++++++++++++++++++++++++++++++------
 2 files changed, 68 insertions(+), 25 deletions(-)

--- NEW FILE gcc44-vta-cselib-subreg-of-value-more-pr41276.patch ---
for  gcc/ChangeLog
from  Alexandre Oliva  <aoliva at 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


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/gcc/devel/.cvsignore,v
retrieving revision 1.288
retrieving revision 1.289
diff -u -p -r1.288 -r1.289
--- .cvsignore	8 Sep 2009 11:05:43 -0000	1.288
+++ .cvsignore	9 Sep 2009 09:06:00 -0000	1.289
@@ -1,2 +1,2 @@
 fastjar-0.97.tar.gz
-gcc-4.4.1-20090908.tar.bz2
+gcc-4.4.1-20090909.tar.bz2


Index: gcc.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gcc/devel/gcc.spec,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -p -r1.66 -r1.67
--- gcc.spec	8 Sep 2009 11:05:43 -0000	1.66
+++ gcc.spec	9 Sep 2009 09:06:01 -0000	1.67
@@ -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 G
 %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 at redhat.com> 4.4.1-11
+- fix ICE in tls_mem_loc_descriptor (#521991)
+
 * Tue Sep  8 2009 Jakub Jelinek <jakub at redhat.com> 4.4.1-10
 - update from gcc-4_4-branch
   - PRs fortran/41258, rtl-optimization/40861


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/gcc/devel/sources,v
retrieving revision 1.292
retrieving revision 1.293
diff -u -p -r1.292 -r1.293
--- sources	8 Sep 2009 11:05:43 -0000	1.292
+++ sources	9 Sep 2009 09:06:01 -0000	1.293
@@ -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


--- gcc44-vta-cselib-subreg-of-value-pr41276.patch DELETED ---


--- gcc44-vta-loop-ivopts-propagate-on-release.patch DELETED ---


--- gcc44-vta-no-g-with-gtoggle.patch DELETED ---


--- gcc44-vta-phiopt-pr41232.patch DELETED ---


--- gcc44-vta-ssa-update-former-vops-pr41229.patch DELETED ---




More information about the fedora-extras-commits mailing list