SOURCES: gcc-branch.diff - new fixes

arekm arekm at pld-linux.org
Mon Apr 27 09:43:41 CEST 2009


Author: arekm                        Date: Mon Apr 27 07:43:41 2009 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- new fixes

---- Files affected:
SOURCES:
   gcc-branch.diff (1.11 -> 1.12) 

---- Diffs:

================================================================
Index: SOURCES/gcc-branch.diff
diff -u SOURCES/gcc-branch.diff:1.11 SOURCES/gcc-branch.diff:1.12
--- SOURCES/gcc-branch.diff:1.11	Fri Apr 24 15:17:55 2009
+++ SOURCES/gcc-branch.diff	Mon Apr 27 09:43:34 2009
@@ -1,7 +1,259 @@
+Index: configure
+===================================================================
+--- configure	(.../tags/gcc_4_4_0_release)	(wersja 146826)
++++ configure	(.../branches/gcc-4_4-branch)	(wersja 146826)
+@@ -272,7 +272,7 @@
+ PACKAGE_BUGREPORT=
+ 
+ ac_unique_file="move-if-change"
+-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS TOPLEVEL_CONFIGURE_ARGUMENTS build build_cpu build_vendor build_os build_noncanonical host_noncanonical target_noncanonical host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN LN_S build_libsubdir build_subdir host_subdir target_subdir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX GNATBIND ac_ct_GNATBIND GNATMAKE ac_ct_GNATMAKE do_compare gmplibs gmpinc ppllibs pplinc clooglibs clooginc stage1_languages SYSROOT_CFLAGS_FOR_TARGET DEBUG_PREFIX_CFLAGS_FOR_TARGET CFLAGS_FOR_TARGET CXXFLAGS_FOR_TARGET RPATH_ENVVAR GCC_SHLIB_SUBDIR tooldir build_
 tooldir CONFIGURE_GDB_TK GDB_TK INSTALL_GDB_TK build_configargs build_configdirs host_configargs configdirs target_configargs AR_FOR_BUILD AS_FOR_BUILD CC_FOR_BUILD CFLAGS_FOR_BUILD CXXFLAGS_FOR_BUILD CXX_FOR_BUILD DLLTOOL_FOR_BUILD GCJ_FOR_BUILD GFORTRAN_FOR_BUILD LDFLAGS_FOR_BUILD LD_FOR_BUILD NM_FOR_BUILD RANLIB_FOR_BUILD WINDMC_FOR_BUILD WINDRES_FOR_BUILD config_shell YACC BISON M4 LEX FLEX MAKEINFO EXPECT RUNTEST AR AS DLLTOOL LD LIPO NM RANLIB STRIP WINDRES WINDMC OBJCOPY OBJDUMP CC_FOR_TARGET CXX_FOR_TARGET GCC_FOR_TARGET GCJ_FOR_TARGET GFORTRAN_FOR_TARGET AR_FOR_TARGET AS_FOR_TARGET DLLTOOL_FOR_TARGET LD_FOR_TARGET LIPO_FOR_TARGET NM_FOR_TARGET OBJDUMP_FOR_TARGET RANLIB_FOR_TARGET STRIP_FOR_TARGET WINDRES_FOR_TARGET WINDMC_FOR_TARGET RAW_CXX_FOR_TARGET FLAGS_FOR_TARGET COMPILER_AS_FOR_TARGET COMPILER_LD_FOR_TARGET COMPILER_NM_FOR_TARGET MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT stage1_cflags stage1_checking stage2_werror_flag datarootdir docdir pdfdir htmldir 
 LIBOBJS LTLIBOBJS'
++ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS TOPLEVEL_CONFIGURE_ARGUMENTS build build_cpu build_vendor build_os build_noncanonical host_noncanonical target_noncanonical host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN LN_S build_libsubdir build_subdir host_subdir target_subdir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX GNATBIND ac_ct_GNATBIND GNATMAKE ac_ct_GNATMAKE do_compare gmplibs gmpinc extra_mpfr_configure_flags ppllibs pplinc clooglibs clooginc stage1_languages SYSROOT_CFLAGS_FOR_TARGET DEBUG_PREFIX_CFLAGS_FOR_TARGET CFLAGS_FOR_TARGET CXXFLAGS_FOR_TARGET RPATH_ENVVAR GCC_
 SHLIB_SUBDIR tooldir build_tooldir CONFIGURE_GDB_TK GDB_TK INSTALL_GDB_TK build_configargs build_configdirs host_configargs configdirs target_configargs AR_FOR_BUILD AS_FOR_BUILD CC_FOR_BUILD CFLAGS_FOR_BUILD CXXFLAGS_FOR_BUILD CXX_FOR_BUILD DLLTOOL_FOR_BUILD GCJ_FOR_BUILD GFORTRAN_FOR_BUILD LDFLAGS_FOR_BUILD LD_FOR_BUILD NM_FOR_BUILD RANLIB_FOR_BUILD WINDMC_FOR_BUILD WINDRES_FOR_BUILD config_shell YACC BISON M4 LEX FLEX MAKEINFO EXPECT RUNTEST AR AS DLLTOOL LD LIPO NM RANLIB STRIP WINDRES WINDMC OBJCOPY OBJDUMP CC_FOR_TARGET CXX_FOR_TARGET GCC_FOR_TARGET GCJ_FOR_TARGET GFORTRAN_FOR_TARGET AR_FOR_TARGET AS_FOR_TARGET DLLTOOL_FOR_TARGET LD_FOR_TARGET LIPO_FOR_TARGET NM_FOR_TARGET OBJDUMP_FOR_TARGET RANLIB_FOR_TARGET STRIP_FOR_TARGET WINDRES_FOR_TARGET WINDMC_FOR_TARGET RAW_CXX_FOR_TARGET FLAGS_FOR_TARGET COMPILER_AS_FOR_TARGET COMPILER_LD_FOR_TARGET COMPILER_NM_FOR_TARGET MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT stage1_cflags stage1_checking stage2_werror_flag dataroo
 tdir docdir pdfdir htmldir LIBOBJS LTLIBOBJS'
+ ac_subst_files='serialization_dependencies host_makefile_frag target_makefile_frag alphaieee_frag ospace_frag'
+ ac_pwd=`pwd`
+ 
+@@ -4596,6 +4596,7 @@
+ if test "x$with_gmp$with_gmp_include$with_gmp_lib" = x && test -d ${srcdir}/gmp; then
+   gmplibs='-L$$r/$(HOST_SUBDIR)/gmp/.libs -L$$r/$(HOST_SUBDIR)/gmp/_libs '"$gmplibs"
+   gmpinc='-I$$r/$(HOST_SUBDIR)/gmp -I$$s/gmp '"$gmpinc"
++  extra_mpfr_configure_flags='--with-gmp-build=$$r/$(HOST_SUBDIR)/gmp'
+   # Do not test the gmp version.  Assume that it is sufficient, since
+   # it is in the source tree, and the library has not been built yet
+   # but it would be included on the link line in the version check below
+@@ -4810,6 +4811,7 @@
+ 
+ 
+ 
++
+ # Allow host libstdc++ to be specified for static linking with PPL.
+ 
+ # Check whether --with-host-libstdcxx or --without-host-libstdcxx was given.
+@@ -13251,6 +13253,7 @@
+ s, at do_compare@,$do_compare,;t t
+ s, at gmplibs@,$gmplibs,;t t
+ s, at gmpinc@,$gmpinc,;t t
++s, at extra_mpfr_configure_flags@,$extra_mpfr_configure_flags,;t t
+ s, at ppllibs@,$ppllibs,;t t
+ s, at pplinc@,$pplinc,;t t
+ s, at clooglibs@,$clooglibs,;t t
+Index: Makefile.in
+===================================================================
+--- Makefile.in	(.../tags/gcc_4_4_0_release)	(wersja 146826)
++++ Makefile.in	(.../branches/gcc-4_4-branch)	(wersja 146826)
+@@ -17068,7 +17068,7 @@
+ 	libsrcdir="$$s/mpfr"; \
+ 	$(SHELL) $${libsrcdir}/configure \
+ 	  $(HOST_CONFIGARGS) --build=${build_alias} --host=none-${host_vendor}-${host_os} \
+-	  --target=none-${host_vendor}-${host_os} $${srcdiroption} --disable-shared --with-gmp-build=$$r/$(HOST_SUBDIR)/gmp \
++	  --target=none-${host_vendor}-${host_os} $${srcdiroption} --disable-shared @extra_mpfr_configure_flags@ \
+ 	  || exit 1
+ @endif mpfr
+ 
+@@ -17101,7 +17101,7 @@
+ 	  $(HOST_CONFIGARGS) --build=${build_alias} --host=none-${host_vendor}-${host_os} \
+ 	  --target=none-${host_vendor}-${host_os} $${srcdiroption} \
+ 	   \
+-	  --disable-intermodule $(STAGE1_CHECKING) 	  --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" --disable-shared --with-gmp-build=$$r/$(HOST_SUBDIR)/gmp
++	  --disable-intermodule $(STAGE1_CHECKING) 	  --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" --disable-shared @extra_mpfr_configure_flags@
+ @endif mpfr-bootstrap
+ 
+ .PHONY: configure-stage2-mpfr maybe-configure-stage2-mpfr
+@@ -17132,7 +17132,7 @@
+ 	  $(HOST_CONFIGARGS) --build=${build_alias} --host=none-${host_vendor}-${host_os} \
+ 	  --target=none-${host_vendor}-${host_os} $${srcdiroption} \
+ 	  --with-build-libsubdir=$(HOST_SUBDIR) \
+-	  @stage2_werror_flag@ --disable-shared --with-gmp-build=$$r/$(HOST_SUBDIR)/gmp
++	  @stage2_werror_flag@ --disable-shared @extra_mpfr_configure_flags@
+ @endif mpfr-bootstrap
+ 
+ .PHONY: configure-stageb2g0-mpfr maybe-configure-stageb2g0-mpfr
+@@ -17163,7 +17163,7 @@
+ 	  $(HOST_CONFIGARGS) --build=${build_alias} --host=none-${host_vendor}-${host_os} \
+ 	  --target=none-${host_vendor}-${host_os} $${srcdiroption} \
+ 	  --with-build-libsubdir=$(HOST_SUBDIR) \
+-	  @stage2_werror_flag@ --disable-shared --with-gmp-build=$$r/$(HOST_SUBDIR)/gmp
++	  @stage2_werror_flag@ --disable-shared @extra_mpfr_configure_flags@
+ @endif mpfr-bootstrap
+ 
+ .PHONY: configure-stage3-mpfr maybe-configure-stage3-mpfr
+@@ -17194,7 +17194,7 @@
+ 	  $(HOST_CONFIGARGS) --build=${build_alias} --host=none-${host_vendor}-${host_os} \
+ 	  --target=none-${host_vendor}-${host_os} $${srcdiroption} \
+ 	  --with-build-libsubdir=$(HOST_SUBDIR) \
+-	  @stage2_werror_flag@ --disable-shared --with-gmp-build=$$r/$(HOST_SUBDIR)/gmp
++	  @stage2_werror_flag@ --disable-shared @extra_mpfr_configure_flags@
+ @endif mpfr-bootstrap
+ 
+ .PHONY: configure-stageb3g2-mpfr maybe-configure-stageb3g2-mpfr
+@@ -17225,7 +17225,7 @@
+ 	  $(HOST_CONFIGARGS) --build=${build_alias} --host=none-${host_vendor}-${host_os} \
+ 	  --target=none-${host_vendor}-${host_os} $${srcdiroption} \
+ 	  --with-build-libsubdir=$(HOST_SUBDIR) \
+-	  @stage2_werror_flag@ --disable-shared --with-gmp-build=$$r/$(HOST_SUBDIR)/gmp
++	  @stage2_werror_flag@ --disable-shared @extra_mpfr_configure_flags@
+ @endif mpfr-bootstrap
+ 
+ .PHONY: configure-stage4-mpfr maybe-configure-stage4-mpfr
+@@ -17256,7 +17256,7 @@
+ 	  $(HOST_CONFIGARGS) --build=${build_alias} --host=none-${host_vendor}-${host_os} \
+ 	  --target=none-${host_vendor}-${host_os} $${srcdiroption} \
+ 	  --with-build-libsubdir=$(HOST_SUBDIR) \
+-	  @stage2_werror_flag@ --disable-shared --with-gmp-build=$$r/$(HOST_SUBDIR)/gmp
++	  @stage2_werror_flag@ --disable-shared @extra_mpfr_configure_flags@
+ @endif mpfr-bootstrap
+ 
+ .PHONY: configure-stageprofile-mpfr maybe-configure-stageprofile-mpfr
+@@ -17287,7 +17287,7 @@
+ 	  $(HOST_CONFIGARGS) --build=${build_alias} --host=none-${host_vendor}-${host_os} \
+ 	  --target=none-${host_vendor}-${host_os} $${srcdiroption} \
+ 	  --with-build-libsubdir=$(HOST_SUBDIR) \
+-	  @stage2_werror_flag@ --disable-shared --with-gmp-build=$$r/$(HOST_SUBDIR)/gmp
++	  @stage2_werror_flag@ --disable-shared @extra_mpfr_configure_flags@
+ @endif mpfr-bootstrap
+ 
+ .PHONY: configure-stagefeedback-mpfr maybe-configure-stagefeedback-mpfr
+@@ -17318,7 +17318,7 @@
+ 	  $(HOST_CONFIGARGS) --build=${build_alias} --host=none-${host_vendor}-${host_os} \
+ 	  --target=none-${host_vendor}-${host_os} $${srcdiroption} \
+ 	  --with-build-libsubdir=$(HOST_SUBDIR) \
+-	  @stage2_werror_flag@ --disable-shared --with-gmp-build=$$r/$(HOST_SUBDIR)/gmp
++	  @stage2_werror_flag@ --disable-shared @extra_mpfr_configure_flags@
+ @endif mpfr-bootstrap
+ 
+ 
+Index: gcc/fwprop.c
+===================================================================
+--- gcc/fwprop.c	(.../tags/gcc_4_4_0_release)	(wersja 146826)
++++ gcc/fwprop.c	(.../branches/gcc-4_4-branch)	(wersja 146826)
+@@ -1,5 +1,5 @@
+ /* RTL-based forward propagation pass for GNU compiler.
+-   Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
++   Copyright (C) 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+    Contributed by Paolo Bonzini and Steven Bosscher.
+ 
+ This file is part of GCC.
+@@ -852,6 +852,80 @@
+     return false;
+ }
+ 
++/* Try to replace USE with SRC (defined in DEF_INSN) in __asm.  */
++
++static bool
++forward_propagate_asm (df_ref use, rtx def_insn, rtx def_set, rtx reg)
++{
++  rtx use_insn = DF_REF_INSN (use), src, use_pat, asm_operands, new_rtx, *loc;
++  int speed_p, i;
++  df_ref *use_vec;
++
++  gcc_assert ((DF_REF_FLAGS (use) & DF_REF_IN_NOTE) == 0);
++
++  src = SET_SRC (def_set);
++  use_pat = PATTERN (use_insn);
++
++  /* In __asm don't replace if src might need more registers than
++     reg, as that could increase register pressure on the __asm.  */
++  use_vec = DF_INSN_USES (def_insn);
++  if (use_vec[0] && use_vec[1])
++    return false;
++
++  speed_p = optimize_bb_for_speed_p (BLOCK_FOR_INSN (use_insn));
++  asm_operands = NULL_RTX;
++  switch (GET_CODE (use_pat))
++    {
++    case ASM_OPERANDS:
++      asm_operands = use_pat;
++      break;
++    case SET:
++      if (MEM_P (SET_DEST (use_pat)))
++	{
++	  loc = &SET_DEST (use_pat);
++	  new_rtx = propagate_rtx (*loc, GET_MODE (*loc), reg, src, speed_p);
++	  if (new_rtx)
++	    validate_unshare_change (use_insn, loc, new_rtx, true);
++	}
++      asm_operands = SET_SRC (use_pat);
++      break;
++    case PARALLEL:
++      for (i = 0; i < XVECLEN (use_pat, 0); i++)
++	if (GET_CODE (XVECEXP (use_pat, 0, i)) == SET)
++	  {
++	    if (MEM_P (SET_DEST (XVECEXP (use_pat, 0, i))))
++	      {
++		loc = &SET_DEST (XVECEXP (use_pat, 0, i));
++		new_rtx = propagate_rtx (*loc, GET_MODE (*loc), reg,
++					 src, speed_p);
++		if (new_rtx)
++		  validate_unshare_change (use_insn, loc, new_rtx, true);
++	      }
++	    asm_operands = SET_SRC (XVECEXP (use_pat, 0, i));
++	  }
++	else if (GET_CODE (XVECEXP (use_pat, 0, i)) == ASM_OPERANDS)
++	  asm_operands = XVECEXP (use_pat, 0, i);
++      break;
++    default:
++      gcc_unreachable ();
++    }
++
++  gcc_assert (asm_operands && GET_CODE (asm_operands) == ASM_OPERANDS);
++  for (i = 0; i < ASM_OPERANDS_INPUT_LENGTH (asm_operands); i++)
++    {
++      loc = &ASM_OPERANDS_INPUT (asm_operands, i);
++      new_rtx = propagate_rtx (*loc, GET_MODE (*loc), reg, src, speed_p);
++      if (new_rtx)
++	validate_unshare_change (use_insn, loc, new_rtx, true);
++    }
++
++  if (num_changes_pending () == 0 || !apply_change_group ())
++    return false;
++
++  num_changes++;
++  return true;
++}
++
+ /* Try to replace USE with SRC (defined in DEF_INSN) and simplify the
+    result.  */
+ 
+@@ -863,12 +937,16 @@
+   rtx src, reg, new_rtx, *loc;
+   bool set_reg_equal;
+   enum machine_mode mode;
++  int asm_use = -1;
+ 
+-  if (!use_set)
++  if (INSN_CODE (use_insn) < 0)
++    asm_use = asm_noperands (PATTERN (use_insn));
++
++  if (!use_set && asm_use < 0)
+     return false;
+ 
+   /* Do not propagate into PC, CC0, etc.  */
+-  if (GET_MODE (SET_DEST (use_set)) == VOIDmode)
++  if (use_set && GET_MODE (SET_DEST (use_set)) == VOIDmode)
+     return false;
+ 
+   /* If def and use are subreg, check if they match.  */
+@@ -900,7 +978,7 @@
+   if (MEM_P (src) && MEM_READONLY_P (src))
+     {
+       rtx x = avoid_constant_pool_reference (src);
+-      if (x != src)
++      if (x != src && use_set)
+ 	{
+           rtx note = find_reg_note (use_insn, REG_EQUAL, NULL_RTX);
+ 	  rtx old_rtx = note ? XEXP (note, 0) : SET_SRC (use_set);
+@@ -911,6 +989,9 @@
+       return false;
+     }
+ 
++  if (asm_use >= 0)
++    return forward_propagate_asm (use, def_insn, def_set, reg);
++
+   /* Else try simplifying.  */
+ 
+   if (DF_REF_TYPE (use) == DF_REF_REG_MEM_STORE)
 Index: gcc/ira-conflicts.c
 ===================================================================
---- gcc/ira-conflicts.c	(.../tags/gcc_4_4_0_release)	(wersja 146715)
-+++ gcc/ira-conflicts.c	(.../branches/gcc-4_4-branch)	(wersja 146715)
+--- gcc/ira-conflicts.c	(.../tags/gcc_4_4_0_release)	(wersja 146826)
++++ gcc/ira-conflicts.c	(.../branches/gcc-4_4-branch)	(wersja 146826)
 @@ -411,9 +411,9 @@
      /* Can not be tied.  It is not in the cover class.  */
      return false;
@@ -16,15 +268,15 @@
        ira_allocate_and_set_costs
 Index: gcc/DATESTAMP
 ===================================================================
---- gcc/DATESTAMP	(.../tags/gcc_4_4_0_release)	(wersja 146715)
-+++ gcc/DATESTAMP	(.../branches/gcc-4_4-branch)	(wersja 146715)
+--- gcc/DATESTAMP	(.../tags/gcc_4_4_0_release)	(wersja 146826)
++++ gcc/DATESTAMP	(.../branches/gcc-4_4-branch)	(wersja 146826)
 @@ -1 +1 @@
 -20090421
-+20090424
++20090427
 Index: gcc/fold-const.c
 ===================================================================
---- gcc/fold-const.c	(.../tags/gcc_4_4_0_release)	(wersja 146715)
-+++ gcc/fold-const.c	(.../branches/gcc-4_4-branch)	(wersja 146715)
+--- gcc/fold-const.c	(.../tags/gcc_4_4_0_release)	(wersja 146826)
++++ gcc/fold-const.c	(.../branches/gcc-4_4-branch)	(wersja 146826)
 @@ -5293,31 +5293,34 @@
  	break;
  
@@ -82,15 +334,29 @@
  	    }
 Index: gcc/DEV-PHASE
 ===================================================================
---- gcc/DEV-PHASE	(.../tags/gcc_4_4_0_release)	(wersja 146715)
-+++ gcc/DEV-PHASE	(.../branches/gcc-4_4-branch)	(wersja 146715)
+--- gcc/DEV-PHASE	(.../tags/gcc_4_4_0_release)	(wersja 146826)
++++ gcc/DEV-PHASE	(.../branches/gcc-4_4-branch)	(wersja 146826)
 @@ -0,0 +1 @@
 +prerelease
 Index: gcc/ChangeLog
 ===================================================================
---- gcc/ChangeLog	(.../tags/gcc_4_4_0_release)	(wersja 146715)
-+++ gcc/ChangeLog	(.../branches/gcc-4_4-branch)	(wersja 146715)
-@@ -1,3 +1,98 @@
+--- gcc/ChangeLog	(.../tags/gcc_4_4_0_release)	(wersja 146826)
++++ gcc/ChangeLog	(.../branches/gcc-4_4-branch)	(wersja 146826)
+@@ -1,3 +1,112 @@
++2009-04-26  Jakub Jelinek  <jakub at redhat.com>
++
++	PR inline-asm/39543
++	* fwprop.c (forward_propagate_asm): New function.
++	(forward_propagate_and_simplify): Propagate also into __asm, if it
++	doesn't increase the number of referenced registers.
++
++	PR c/39889
++	* stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
++
++2009-04-24  Andreas Krebbel  <krebbel1 at de.ibm.com>
++
++	* config/s390/constraints.md ('I', 'J'): Fix condition.
++
 +2009-04-24  Paolo Bonzini  <bonzini at gnu.org>
 +
 +	PR middle-end/39867
@@ -192,7 +458,7 @@
 Index: gcc/testsuite/gcc.c-torture/compile/pr39824.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/compile/pr39824.c	(.../tags/gcc_4_4_0_release)	(wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr39824.c	(.../branches/gcc-4_4-branch)	(wersja 146715)
++++ gcc/testsuite/gcc.c-torture/compile/pr39824.c	(.../branches/gcc-4_4-branch)	(wersja 146826)
 @@ -0,0 +1,26 @@
 +static const double internalEndianMagic = 7.949928895127363e-275;
 +static const unsigned char ieee_754_mantissa_mask[] = { 0x00, 0x0F, 0xFF, 0xFF,
@@ -223,7 +489,7 @@
 Index: gcc/testsuite/gcc.c-torture/compile/pr39845.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/compile/pr39845.c	(.../tags/gcc_4_4_0_release)	(wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr39845.c	(.../branches/gcc-4_4-branch)	(wersja 146715)
++++ gcc/testsuite/gcc.c-torture/compile/pr39845.c	(.../branches/gcc-4_4-branch)	(wersja 146826)
 @@ -0,0 +1,43 @@
 +typedef union tree_node *tree;
 +enum tree_code { EXCESS_PRECISION_EXPR };
@@ -268,10 +534,170 @@
 +  return convert_arguments (function);
 +}
 +
+Index: gcc/testsuite/gcc.target/i386/pr39543-1.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr39543-1.c	(.../tags/gcc_4_4_0_release)	(wersja 0)
++++ gcc/testsuite/gcc.target/i386/pr39543-1.c	(.../branches/gcc-4_4-branch)	(wersja 146826)
+@@ -0,0 +1,52 @@
++/* PR inline-asm/39543 */
++/* { dg-do compile } */
++/* { dg-options "-O3 -fomit-frame-pointer" } */
++
++float __attribute__ ((aligned (16))) s0[128];
++const float s1 = 0.707;
++float s2[8] __attribute__ ((aligned (16)));
++float s3[8] __attribute__ ((aligned (16)));
++float s4[16] __attribute__ ((aligned (16)));
++float s5[16] __attribute__ ((aligned (16)));
++
++void
++foo (int k, float *x, float *y, const float *d, const float *z)
++{
++  float *a, *b, *c, *e;
++
++  a = x + 2 * k;
++  b = a + 2 * k;
++  c = b + 2 * k;
++  e = y + 2 * k;
++  __asm__ volatile (""
++		    : "=m" (x[0]), "=m" (b[0]), "=m" (a[0]), "=m" (c[0])
++		    : "m" (y[0]), "m" (y[k * 2]), "m" (x[0]), "m" (a[0])
++		    : "memory");
++  for (;;)
++    {
++      __asm__ volatile (""
++			:
++			: "m" (y[2]), "m" (d[2]), "m" (e[2]), "m" (z[2])
++			: "memory");
++      if (!--k)
++	break;
++    }
++  __asm__ volatile (""
++		    : "=m" (x[2]), "=m" (x[10]), "=m" (x[6]), "=m" (x[14])
++		    : "m" (y[2]), "m" (y[6]), "m" (x[2]), "m" (x[6]),
++		      "m" (y[18]), "m" (s1)
++		    : "memory");
++}
++
++void
++bar (float *a)
++{
++  foo (4, a, a + 16, s2, s3);
++  foo (8, a, a + 32, s4, s5);
++}
++
++void
++baz (void)
++{
++  bar (s0);
++}
+Index: gcc/testsuite/gcc.target/i386/pr39543-3.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr39543-3.c	(.../tags/gcc_4_4_0_release)	(wersja 0)
++++ gcc/testsuite/gcc.target/i386/pr39543-3.c	(.../branches/gcc-4_4-branch)	(wersja 146826)
+@@ -0,0 +1,42 @@
++/* PR inline-asm/39543 */
++/* { dg-do compile } */
++/* { dg-options "-O2" } */
++
++int s[128];
++
++void
++f1 (void)
++{
++  int i;
++  asm volatile ("# %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13 %14 %15 %16 %17"
++		: "=r" (i)
++		: "m" (s[0]), "m" (s[2]), "m" (s[4]), "m" (s[6]), "m" (s[8]),
++		  "m" (s[10]), "m" (s[12]), "m" (s[14]), "m" (s[16]), "m" (s[18]),
++		  "m" (s[20]), "m" (s[22]), "m" (s[24]), "m" (s[26]), "m" (s[28]),
++		  "m" (s[30]), "m" (s[32]));
++  asm volatile ("# %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13 %14 %15 %16 %17"
++		: "=r" (i)
++		: "m" (s[0]), "m" (s[2]), "m" (s[4]), "m" (s[6]), "m" (s[8]),
++		  "m" (s[10]), "m" (s[12]), "m" (s[14]), "m" (s[16]), "m" (s[18]),
++		  "m" (s[20]), "m" (s[22]), "m" (s[24]), "m" (s[26]), "m" (s[28]),
++		  "m" (s[30]), "m" (s[32]));
++}
++
++void
++f2 (int *q)
++{
++  int i;
++  int *p = q + 32;
++  asm volatile ("# %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13 %14 %15 %16 %17"
++		: "=r" (i)
++		: "m" (p[0]), "m" (p[2]), "m" (p[4]), "m" (p[6]), "m" (p[8]),
++		  "m" (p[10]), "m" (p[12]), "m" (p[14]), "m" (p[16]), "m" (p[18]),
++		  "m" (p[20]), "m" (p[22]), "m" (p[24]), "m" (p[26]), "m" (p[28]),
++		  "m" (p[30]), "m" (p[32]));
++  asm volatile ("# %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13 %14 %15 %16 %17"
++		: "=r" (i)
++		: "m" (p[0]), "m" (p[2]), "m" (p[4]), "m" (p[6]), "m" (p[8]),
++		  "m" (p[10]), "m" (p[12]), "m" (p[14]), "m" (p[16]), "m" (p[18]),
++		  "m" (p[20]), "m" (p[22]), "m" (p[24]), "m" (p[26]), "m" (p[28]),
++		  "m" (p[30]), "m" (p[32]));
++}
+Index: gcc/testsuite/gcc.target/i386/pr39543-2.c
+===================================================================
+--- gcc/testsuite/gcc.target/i386/pr39543-2.c	(.../tags/gcc_4_4_0_release)	(wersja 0)
++++ gcc/testsuite/gcc.target/i386/pr39543-2.c	(.../branches/gcc-4_4-branch)	(wersja 146826)
+@@ -0,0 +1,51 @@
++/* PR inline-asm/39543 */
++/* { dg-do compile } */
++/* { dg-options "-O3" } */
++
++float __attribute__ ((aligned (16))) s0[128];
++const float s1 = 0.707;
++float s2[8] __attribute__ ((aligned (16)));
++float s3[8] __attribute__ ((aligned (16)));
++float s4[16] __attribute__ ((aligned (16)));
++float s5[16] __attribute__ ((aligned (16)));
++
++void
++foo (int k, float *x, float *y, const float *d, const float *z)
++{
++  float *a, *b, *c, *e;
++
++  a = x + 2 * k;
++  b = a + 2 * k;
++  c = b + 2 * k;
++  e = y + 2 * k;
++  __asm__ volatile (""
++		    : "=m" (x[0]), "=m" (b[0]), "=m" (a[0]), "=m" (c[0])
++		    : "m" (y[0]), "m" (y[k * 2]), "m" (x[0]), "m" (a[0])
++		    : "memory");
++  for (;;)
++    {
++      __asm__ volatile (""
++			:
++			: "m" (y[2]), "m" (d[2]), "m" (e[2]), "m" (z[2])
++			: "memory");
++      if (!--k)
++	break;
++    }
++  __asm__ volatile (""
++		    : "=m" (x[2]), "=m" (x[10]), "=m" (x[6]), "=m" (x[14])
++		    : "m" (y[2]), "m" (y[6]), "m" (x[2]), "m" (x[6]), "m" (s1)
++		    : "memory");
++}
++
++void
++bar (float *a)
++{
++  foo (4, a, a + 16, s2, s3);
++  foo (8, a, a + 32, s4, s5);
++}
++
++void
++baz (void)
++{
++  bar (s0);
++}
 Index: gcc/testsuite/gnat.dg/enum2_pkg.ads
 ===================================================================
 --- gcc/testsuite/gnat.dg/enum2_pkg.ads	(.../tags/gcc_4_4_0_release)	(wersja 0)
-+++ gcc/testsuite/gnat.dg/enum2_pkg.ads	(.../branches/gcc-4_4-branch)	(wersja 146715)
++++ gcc/testsuite/gnat.dg/enum2_pkg.ads	(.../branches/gcc-4_4-branch)	(wersja 146826)
 @@ -0,0 +1,8 @@
 +with Ada.Finalization; use Ada.Finalization;
 +
@@ -284,7 +710,7 @@
 Index: gcc/testsuite/gnat.dg/enum2.adb
 ===================================================================
 --- gcc/testsuite/gnat.dg/enum2.adb	(.../tags/gcc_4_4_0_release)	(wersja 0)
-+++ gcc/testsuite/gnat.dg/enum2.adb	(.../branches/gcc-4_4-branch)	(wersja 146715)
++++ gcc/testsuite/gnat.dg/enum2.adb	(.../branches/gcc-4_4-branch)	(wersja 146826)
 @@ -0,0 +1,11 @@
 +-- { dg-do run }
 +-- { dg-options "-gnat05 -O2" }
@@ -300,7 +726,7 @@
 Index: gcc/testsuite/gcc.dg/torture/pr39855.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/torture/pr39855.c	(.../tags/gcc_4_4_0_release)	(wersja 0)
-+++ gcc/testsuite/gcc.dg/torture/pr39855.c	(.../branches/gcc-4_4-branch)	(wersja 146715)
++++ gcc/testsuite/gcc.dg/torture/pr39855.c	(.../branches/gcc-4_4-branch)	(wersja 146826)
 @@ -0,0 +1,24 @@
 +/* PR c/39855 */
 +/* { dg-do run { target { int32plus } } } */
@@ -329,7 +755,7 @@
 Index: gcc/testsuite/gcc.dg/torture/pr39829.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/torture/pr39829.c	(.../tags/gcc_4_4_0_release)	(wersja 0)
-+++ gcc/testsuite/gcc.dg/torture/pr39829.c	(.../branches/gcc-4_4-branch)	(wersja 146715)
++++ gcc/testsuite/gcc.dg/torture/pr39829.c	(.../branches/gcc-4_4-branch)	(wersja 146826)
 @@ -0,0 +1,27 @@
 +/* { dg-do compile } */
 +/* { dg-options "-w" } */
@@ -361,7 +787,7 @@
 Index: gcc/testsuite/gcc.dg/pr39867.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/pr39867.c	(.../tags/gcc_4_4_0_release)	(wersja 0)
-+++ gcc/testsuite/gcc.dg/pr39867.c	(.../branches/gcc-4_4-branch)	(wersja 146715)
++++ gcc/testsuite/gcc.dg/pr39867.c	(.../branches/gcc-4_4-branch)	(wersja 146826)
 @@ -0,0 +1,12 @@
 +/* { dg-do link } */
 +/* { dg-options "-O2" } */
@@ -375,11 +801,35 @@
 +  return 0;
 +}
 +
+Index: gcc/testsuite/gcc.dg/Wunused-value-3.c
+===================================================================
+--- gcc/testsuite/gcc.dg/Wunused-value-3.c	(.../tags/gcc_4_4_0_release)	(wersja 0)
++++ gcc/testsuite/gcc.dg/Wunused-value-3.c	(.../branches/gcc-4_4-branch)	(wersja 146826)
+@@ -0,0 +1,9 @@
++/* PR c/39889 */
++/* { dg-do compile } */
++/* { dg-options "-Wunused-value" } */
++
++int x;
++int foo (void)
++{
++  return (1 ? x = 0 : (void) 0), 0; /* { dg-bogus "value computed is not used" } */
++}
 Index: gcc/testsuite/ChangeLog
 ===================================================================
---- gcc/testsuite/ChangeLog	(.../tags/gcc_4_4_0_release)	(wersja 146715)
-+++ gcc/testsuite/ChangeLog	(.../branches/gcc-4_4-branch)	(wersja 146715)
-@@ -1,3 +1,110 @@
+--- gcc/testsuite/ChangeLog	(.../tags/gcc_4_4_0_release)	(wersja 146826)
++++ gcc/testsuite/ChangeLog	(.../branches/gcc-4_4-branch)	(wersja 146826)
+@@ -1,3 +1,120 @@
++2009-04-26  Jakub Jelinek  <jakub at redhat.com>
++
++	PR inline-asm/39543
++	* gcc.target/i386/pr39543-1.c: New test.
++	* gcc.target/i386/pr39543-2.c: New test.
++	* gcc.target/i386/pr39543-3.c: New test.
++
++	PR c/39889
++	* gcc.dg/Wunused-value-3.c: New test.
++
 +2009-04-24  Paolo Bonzini  <bonzini at gnu.org>
 +
 +	PR middle-end/39867
@@ -493,7 +943,7 @@
 Index: gcc/testsuite/gfortran.fortran-torture/execute/getarg_1.x
 ===================================================================
 --- gcc/testsuite/gfortran.fortran-torture/execute/getarg_1.x	(.../tags/gcc_4_4_0_release)	(wersja 0)
-+++ gcc/testsuite/gfortran.fortran-torture/execute/getarg_1.x	(.../branches/gcc-4_4-branch)	(wersja 146715)
++++ gcc/testsuite/gfortran.fortran-torture/execute/getarg_1.x	(.../branches/gcc-4_4-branch)	(wersja 146826)
 @@ -0,0 +1,5 @@
 +if [istarget "spu-*-*"] {
 +    # We need -mstdmain to enable argument processing on SPU.
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/gcc-branch.diff?r1=1.11&r2=1.12&f=u



More information about the pld-cvs-commit mailing list