packages: gcc/gcc-ada-link.patch, gcc/gcc-branch.diff, gcc/gcc-nodebug.patc...

arekm arekm at pld-linux.org
Thu Mar 22 15:58:49 CET 2012


Author: arekm                        Date: Thu Mar 22 14:58:49 2012 GMT
Module: packages                      Tag: HEAD
---- Log message:
- fetch 4.7.0 release (4.6 on GCC_4_6); update some patches; comment out other patches that have no use in th

---- Files affected:
packages/gcc:
   gcc-ada-link.patch (1.13 -> 1.14) , gcc-branch.diff (1.60 -> 1.61) , gcc-nodebug.patch (1.12 -> 1.13) , gcc.spec (1.683 -> 1.684) , gcc-plugin-decl-hook.patch (1.2 -> NONE)  (REMOVED)

---- Diffs:

================================================================
Index: packages/gcc/gcc-ada-link.patch
diff -u packages/gcc/gcc-ada-link.patch:1.13 packages/gcc/gcc-ada-link.patch:1.14
--- packages/gcc/gcc-ada-link.patch:1.13	Fri May 27 22:30:07 2011
+++ packages/gcc/gcc-ada-link.patch	Thu Mar 22 15:58:43 2012
@@ -57,13 +57,21 @@
  	cd $(RTSDIR); $(LN_S) libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
 --- a/gcc/ada/gcc-interface/Makefile.in~	2011-03-27 13:01:06.697666231 +0200
 +++ b/gcc/ada/gcc-interface/Makefile.in	2011-03-27 13:08:55.725801177 +0200
-@@ -2500,7 +2500,7 @@
- 	     THREAD_KIND="$(THREAD_KIND)" \
+@@ -2612,14 +2612,14 @@
               gnatlib
  	$(RM) $(RTSDIR)/libgna*$(soext)
--	cd $(RTSDIR); ../../xgcc -B../../ -shared $(GNATLIBCFLAGS) \
-+	cd $(RTSDIR); ../../xgcc -B../../ -shared -shared-libgcc $(GNATLIBCFLAGS) \
- 		$(TARGET_LIBGCC2_CFLAGS) \
+ 	cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \
+-                | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared $(GNATLIBCFLAGS) \
++                | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared -shared-libgcc $(GNATLIBCFLAGS) \
+ 		$(PICFLAG_FOR_TARGET) \
  		-o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
  		$(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \
+ 		$(SO_OPTS)libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
+ 		$(MISCLIB) -lm
+ 	cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \
+-                | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared $(GNATLIBCFLAGS) \
++                | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared -shared-libgcc $(GNATLIBCFLAGS) \
+ 		$(PICFLAG_FOR_TARGET) \
+ 		-o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
+ 		$(GNATRTL_TASKING_OBJS) \
 

================================================================
Index: packages/gcc/gcc-branch.diff
diff -u packages/gcc/gcc-branch.diff:1.60 packages/gcc/gcc-branch.diff:1.61
--- packages/gcc/gcc-branch.diff:1.60	Thu Mar 15 19:24:28 2012
+++ packages/gcc/gcc-branch.diff	Thu Mar 22 15:58:43 2012
@@ -1,1272 +1,297 @@
-Index: gcc/targhooks.c
+Index: libstdc++-v3/include/std/array
 ===================================================================
---- gcc/targhooks.c	(.../tags/gcc_4_6_3_release)	(wersja 185440)
-+++ gcc/targhooks.c	(.../branches/gcc-4_6-branch)	(wersja 185440)
-@@ -529,6 +529,7 @@
-       case scalar_to_vec:
-       case cond_branch_not_taken:
-       case vec_perm:
-+      case vec_promote_demote:
-         return 1;
+--- libstdc++-v3/include/std/array	(.../tags/gcc_4_7_0_release)	(wersja 185695)
++++ libstdc++-v3/include/std/array	(.../branches/gcc-4_7-branch)	(wersja 185695)
+@@ -1,6 +1,7 @@
+ // <array> -*- C++ -*-
+ 
+-// Copyright (C) 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
++// Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012
++// Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -174,8 +175,9 @@
+       const_reference
+       at(size_type __n) const
+       {
+-	return __n < _Nm ?
+-	       _M_instance[__n] : __throw_out_of_range(__N("array::at"));
++	if (__n >= _Nm)
++	  std::__throw_out_of_range(__N("array::at"));
++	return _M_instance[__n];
+       }
+ #endif
  
-       case unaligned_load:
-Index: gcc/DATESTAMP
-===================================================================
---- gcc/DATESTAMP	(.../tags/gcc_4_6_3_release)	(wersja 185440)
-+++ gcc/DATESTAMP	(.../branches/gcc-4_6-branch)	(wersja 185440)
-@@ -1 +1 @@
--20120301
-+20120315
-Index: gcc/target.h
+Index: libstdc++-v3/ChangeLog
 ===================================================================
---- gcc/target.h	(.../tags/gcc_4_6_3_release)	(wersja 185440)
-+++ gcc/target.h	(.../branches/gcc-4_6-branch)	(wersja 185440)
-@@ -128,7 +128,8 @@
-   scalar_to_vec,
-   cond_branch_not_taken,
-   cond_branch_taken,
--  vec_perm
-+  vec_perm,
-+  vec_promote_demote
- };
+--- libstdc++-v3/ChangeLog	(.../tags/gcc_4_7_0_release)	(wersja 185695)
++++ libstdc++-v3/ChangeLog	(.../branches/gcc-4_7-branch)	(wersja 185695)
+@@ -1,3 +1,8 @@
++2012-03-22  Paolo Carlini  <paolo.carlini at oracle.com>
++
++	* include/std/array (array<>::at(size_type) const): Fix version
++	for undefined __EXCEPTIONS.
++
+ 2012-03-22  Release Manager
  
- /* Sets of optimization levels at which an option may be enabled by
+ 	* GCC 4.7.0 released.
 Index: gcc/DEV-PHASE
 ===================================================================
---- gcc/DEV-PHASE	(.../tags/gcc_4_6_3_release)	(wersja 185440)
-+++ gcc/DEV-PHASE	(.../branches/gcc-4_6-branch)	(wersja 185440)
+--- gcc/DEV-PHASE	(.../tags/gcc_4_7_0_release)	(wersja 185695)
++++ gcc/DEV-PHASE	(.../branches/gcc-4_7-branch)	(wersja 185695)
 @@ -0,0 +1 @@
 +prerelease
 Index: gcc/ChangeLog
 ===================================================================
---- gcc/ChangeLog	(.../tags/gcc_4_6_3_release)	(wersja 185440)
-+++ gcc/ChangeLog	(.../branches/gcc-4_6-branch)	(wersja 185440)
-@@ -1,3 +1,101 @@
-+2012-03-15  Chung-Lin Tang  <cltang at codesourcery.com>
-+
-+	Backport from mainline
-+	2012-03-10  Chung-Lin Tang  <cltang at codesourcery.com>
-+
-+	PR rtl-optimization/52528
-+	* combine.c (can_combine_p): Add setting of subst_low_luid
-+	before call to expand_field_assignment().
-+
-+2012-03-12  John David Anglin  <dave.anglin at nrc-cnrc.gc.ca>
-+
-+	Backport from mainline
-+	2011-09-03  John David Anglin  <dave.anglin at nrc-cnrc.gc.ca>
-+
-+	PR Bug middle-end/50232
-+	* config/pa/pa.md (return): Define "return" insn pattern.
-+	(epilogue): Use it when no epilogue is needed.
-+	* config/pa/pa.c (pa_can_use_return_insn): New function.
-+	* config/pa/pa-protos.h (pa_can_use_return_insn): Declare.
-+
-+	Backport for mainline
-+	2012-01-28  John David Anglin  <dave.anglin at nrc-cnrc.gc.ca>
-+
-+	PR target/51871
-+	* config/pa/pa.c (pa_return_addr_rtx): Add support for PA2.0 export
-+	stubs.
-+
-+2012-03-06  Michael Meissner  <meissner at linux.vnet.ibm.com>
-+
-+	Backport from mainline
-+	PR target/50310
-+	* config/rs6000/vector.md (vector_uneq<mode>): Add support for
-+	UNEQ, LTGT, ORDERED, and UNORDERED IEEE vector comparisons.
-+	(vector_ltgt<mode>): Likewise.
-+	(vector_ordered<mode>): Likewise.
-+	(vector_unordered<mode>): Likewise.
-+	* config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner):
-+	Likewise.
-+
-+2012-03-04  John David Anglin  <dave.anglin at nrc-cnrc.gc.ca>
-+
-+	Backport from mainline
-+	2012-03-01  John David Anglin  <dave.anglin at nrc-cnrc.gc.ca>
-+
-+	PR target/52408
-+	* config/pa/pa.md (zvdep_imm32): Change type of variable x from int to
-+	unsigned HOST_WIDE_INT.
-+	(zvdep_imm64): Likewise.
-+	(vdepi_ior): Change type of variable x from int to HOST_WIDE_INT.
-+	(vdepi_and): Likewise.
-+	Likewise for unamed 64-bit patterns.
-+	* config/pa/predicates.md (lhs_lshift_cint_operand): Update comment.
-+
-+2012-03-03  Eric Botcazou  <ebotcazou at adacore.com>
-+
-+	PR target/52425
-+	Backport from mainline
-+	2011-05-22  Eric Botcazou  <ebotcazou at adacore.com>
-+
-+	* config/sparc/sparc.c (sparc_delegitimize_address): Handle
-+	UNSPEC_MOVE_PIC pattern.
-+
-+2012-03-02  Peter Bergner  <bergner at vnet.ibm.com>
-+
-+	Backport from mainline
-+	2012-03-02  Peter Bergner  <bergner at vnet.ibm.com>
-+
-+	* config/rs6000/vsx.md (vsx_set_<mode>): Reorder operands.
-+
-+2012-03-02  Bill Schmidt <wschmidt at linux.vnet.ibm.com>
-+	    Ira Rosen <irar at il.ibm.com>
-+
-+	PR tree-optimization/50031
-+	PR tree-optimization/50969
-+	* targhooks.c (default_builtin_vectorization_cost): Handle
-+	vec_promote_demote.
-+	* target.h (enum vect_cost_for_stmt): Add vec_promote_demote.
-+	* tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Handle
-+	all types of reduction and pattern statements.
-+	(vect_estimate_min_profitable_iters): Likewise.
-+	* tree-vect-stmts.c (vect_model_promotion_demotion_cost): New function.
-+	(vect_model_store_cost): Use vec_perm rather than vector_stmt for
-+	statement cost.
-+	(vect_model_load_cost): Likewise.
-+	(vect_get_load_cost): Likewise; add dump logic for explicit realigns.
-+	(vectorizable_type_demotion): Call vect_model_promotion_demotion_cost.
-+	(vectorizable_type_promotion): Likewise.
-+	* config/spu/spu.c (spu_builtin_vectorization_cost): Handle
-+	vec_promote_demote.
-+	* config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
-+	* config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Update
-+	vec_perm for VSX and handle vec_promote_demote.
+--- gcc/ChangeLog	(.../tags/gcc_4_7_0_release)	(wersja 185695)
++++ gcc/ChangeLog	(.../branches/gcc-4_7-branch)	(wersja 185695)
+@@ -1,3 +1,28 @@
++2012-03-22  Georg-Johann Lay  <avr at gjlay.de>
 +
-+2012-03-01  Jakub Jelinek  <jakub at redhat.com>
-+
-+	* BASE-VER: Set to 4.6.4.
-+	* DEV-PHASE: Set to prerelease.
++	Backport from mainline r185259.
 +
- 2012-03-01  Release Manager
- 
- 	* GCC 4.6.3 released.
-Index: gcc/testsuite/gcc.target/powerpc/pr52457.c
-===================================================================
---- gcc/testsuite/gcc.target/powerpc/pr52457.c	(.../tags/gcc_4_6_3_release)	(wersja 0)
-+++ gcc/testsuite/gcc.target/powerpc/pr52457.c	(.../branches/gcc-4_6-branch)	(wersja 185440)
-@@ -0,0 +1,34 @@
-+/* { dg-do run { target { powerpc*-*-linux* } } } */
-+/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
-+/* { dg-skip-if "" { powerpc*-*-*spe* } { "*" } { "" } } */
-+/* { dg-require-effective-target vsx_hw } */
-+/* { dg-options "-O1 -mcpu=power7" } */
-+
-+extern void abort (void);
-+
-+typedef long long T;
-+typedef T vl_t __attribute__((vector_size(2 * sizeof (T))));
-+
-+vl_t
-+buggy_func (T x)
-+{
-+  vl_t w;
-+  T *p = (T *)&w;
-+  p[0] = p[1] = x;
-+  return w;
-+}
-+
-+int
-+main(void)
-+{
-+  vl_t rval;
-+  T *pl;
++	PR other/52545
++	* output.h (SECTION_EXCLUDE, SECTION_MACH_DEP): Don't use
++	SECTION_MACH_DEP reserved bits for SECTION_EXCLUDE.
 +
-+  pl = (T *) &rval;
-+  rval = buggy_func (2);
++2012-03-22  Jakub Jelinek  <jakub at redhat.com>
 +
-+  if (pl[0] != 2 || pl[1] != 2)
-+    abort ();
-+
-+  return 0;
-+}
-Index: gcc/testsuite/gfortran.dg/intrinsic_8.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/intrinsic_8.f90	(.../tags/gcc_4_6_3_release)	(wersja 0)
-+++ gcc/testsuite/gfortran.dg/intrinsic_8.f90	(.../branches/gcc-4_6-branch)	(wersja 185440)
-@@ -0,0 +1,23 @@
-+! { dg-do compile }
-+!
-+! PR fortran/52452
-+!
-+! Contributed by Roger Ferrer Ibanez
-+!
-+PROGRAM test_etime
-+    IMPLICIT NONE
-+    INTRINSIC :: etime
-+    REAL(4) :: tarray(1:2)
-+    REAL(4) :: result
-+
-+    CALL etime(tarray, result)
-+END PROGRAM test_etime
-+
-+subroutine test_etime2
-+    IMPLICIT NONE
-+    INTRINSIC :: etime
-+    REAL(4) :: tarray(1:2)
-+    REAL(4) :: result
-+
-+    result = etime(tarray)
-+END subroutine test_etime2
-Index: gcc/testsuite/gfortran.dg/proc_ptr_34.f90
-===================================================================
---- gcc/testsuite/gfortran.dg/proc_ptr_34.f90	(.../tags/gcc_4_6_3_release)	(wersja 0)
-+++ gcc/testsuite/gfortran.dg/proc_ptr_34.f90	(.../branches/gcc-4_6-branch)	(wersja 185440)
-@@ -0,0 +1,79 @@
-+! { dg-do compile }
-+!
-+! PR fortran/52469
-+!
-+! This was failing as the DECL of the proc pointer "func"
-+! was used for the interface of the proc-pointer component "my_f_ptr"
-+! rather than the decl of the proc-pointer target
-+!
-+! Contributed by palott at gmail.com
-+!
-+
-+module ExampleFuncs
-+  implicit none
-+
-+  ! NOTE: "func" is a procedure pointer!
-+  pointer :: func
-+  interface
-+     function func (z)
-+        real :: func
-+        real, intent (in) :: z
-+     end function func
-+  end interface
-+
-+  type Contains_f_ptr
-+     procedure (func), pointer, nopass :: my_f_ptr
-+  end type Contains_f_ptr
-+contains
-+
-+function f1 (x)
-+  real :: f1
-+  real, intent (in) :: x
-+
-+  f1 = 2.0 * x
-+
-+  return
-+end function f1
-+
-+function f2 (x)
-+   real :: f2
-+   real, intent (in) :: x
-+
-+   f2 = 3.0 * x**2
-+
-+   return
-+end function f2
-+
-+function fancy (func, x)
-+   real :: fancy
-+   real, intent (in) :: x
-+
-+   interface AFunc
-+      function func (y)
-+         real :: func
-+         real, intent (in) ::y
-+      end function func
-+   end interface AFunc
-+
-+   fancy = func (x) + 3.3 * x
-+end function fancy
-+
-+end module  ExampleFuncs
-+
-+
-+program test_proc_ptr
-+  use ExampleFuncs
-+  implicit none
-+
-+  type (Contains_f_ptr), dimension (2) :: NewType
++	Backported from mainline
++	2012-03-13  Jakub Jelinek  <jakub at redhat.com>
 + 
-+  !NewType(1) % my_f_ptr => f1
-+  NewType(2) % my_f_ptr => f2
-+
-+  !write (*, *) NewType(1) % my_f_ptr (3.0), NewType(2) % my_f_ptr (3.0)
-+  write (6, *)  NewType(2) % my_f_ptr (3.0) ! < Shall print '27.0'
-+
-+  stop
-+end program test_proc_ptr
-+
-+! { dg-final { cleanup-modules "examplefuncs" } }
-Index: gcc/testsuite/ChangeLog
-===================================================================
---- gcc/testsuite/ChangeLog	(.../tags/gcc_4_6_3_release)	(wersja 185440)
-+++ gcc/testsuite/ChangeLog	(.../branches/gcc-4_6-branch)	(wersja 185440)
-@@ -1,3 +1,23 @@
-+2012-03-10  Tobias Burnus  <burnus at net-b.de>
++	PR c/52577
++	* c-parser.c (c_parser_postfix_expression)
++	<case RID_BUILTIN_SHUFFLE>: Call mark_exp_read on argument values.
 +
-+	PR fortran/52469
-+	* gfortran.dg/proc_ptr_34.f90: New.
++	* config/i386/smmintrin.h: Avoid /* within a comment.
++	* config/i386/nmmintrin.h: Likewise.
 +
-+2012-03-06  Tobias Burnus  <burnus at net-b.de>
++2012-03-22  Richard Guenther  <rguenther at suse.de>
 +
-+	Backport from mainline
-+	2012-03-02  Tobias Burnus  <burnus at net-b.de>
-+
-+	PR fortran/52452
-+	* gfortran.dg/intrinsic_8.f90: New.
-+
-+2012-03-02  Peter Bergner  <bergner at vnet.ibm.com>
-+
-+	Backport from mainline
-+	2012-03-02  Peter Bergner  <bergner at vnet.ibm.com>
-+
-+	* gcc.target/powerpc/pr52457.c: New test.
++	* BASE-VER: Set to 4.7.1.
++	* DEV-PHASE: Set to prerelease.
 +
- 2012-03-01  Release Manager
+ 2012-03-22  Release Manager
  
- 	* GCC 4.6.3 released.
-Index: gcc/fortran/ChangeLog
+ 	* GCC 4.7.0 released.
+Index: gcc/testsuite/gcc.dg/Wunused-var-3.c
 ===================================================================
---- gcc/fortran/ChangeLog	(.../tags/gcc_4_6_3_release)	(wersja 185440)
-+++ gcc/fortran/ChangeLog	(.../branches/gcc-4_6-branch)	(wersja 185440)
-@@ -1,3 +1,18 @@
-+2012-03-10  Tobias Burnus  <burnus at net-b.de>
-+
-+	PR fortran/52469
-+	* trans-types.c (gfc_get_function_type): Handle backend_decl
-+	of a procedure pointer.
-+
-+2012-03-06  Tobias Burnus  <burnus at net-b.de>
-+
-+	Backport from mainline
-+	2012-03-02  Tobias Burnus  <burnus at net-b.de>
+--- gcc/testsuite/gcc.dg/Wunused-var-3.c	(.../tags/gcc_4_7_0_release)	(wersja 0)
++++ gcc/testsuite/gcc.dg/Wunused-var-3.c	(.../branches/gcc-4_7-branch)	(wersja 185695)
+@@ -0,0 +1,34 @@
++/* PR c/52577 */
++/* { dg-do compile } */
++/* { dg-options "-Wunused" } */
 +
-+	PR fortran/52452
-+	* resolve.c (resolve_intrinsic): Don't search for a
-+	function if we know that it is a subroutine.
++typedef int V __attribute__((vector_size (sizeof (int) * 4)));
 +
- 2012-03-01  Release Manager
- 
- 	* GCC 4.6.3 released.
-Index: gcc/fortran/trans-types.c
-===================================================================
---- gcc/fortran/trans-types.c	(.../tags/gcc_4_6_3_release)	(wersja 185440)
-+++ gcc/fortran/trans-types.c	(.../branches/gcc-4_6-branch)	(wersja 185440)
-@@ -2519,7 +2519,11 @@
- 	      || sym->attr.flavor == FL_PROGRAM);
- 
-   if (sym->backend_decl)
--    return TREE_TYPE (sym->backend_decl);
-+    {
-+      if (sym->attr.proc_pointer)
-+	return TREE_TYPE (TREE_TYPE (sym->backend_decl));
-+      return TREE_TYPE (sym->backend_decl);
-+    }
- 
-   alternate_return = 0;
-   typelist = NULL_TREE;
-Index: gcc/fortran/resolve.c
-===================================================================
---- gcc/fortran/resolve.c	(.../tags/gcc_4_6_3_release)	(wersja 185440)
-+++ gcc/fortran/resolve.c	(.../branches/gcc-4_6-branch)	(wersja 185440)
-@@ -1452,7 +1452,7 @@
- 
-   if (sym->intmod_sym_id)
-     isym = gfc_intrinsic_function_by_id ((gfc_isym_id) sym->intmod_sym_id);
--  else
-+  else if (!sym->attr.subroutine)
-     isym = gfc_find_function (sym->name);
- 
-   if (isym)
-Index: gcc/BASE-VER
-===================================================================
---- gcc/BASE-VER	(.../tags/gcc_4_6_3_release)	(wersja 185440)
-+++ gcc/BASE-VER	(.../branches/gcc-4_6-branch)	(wersja 185440)
-@@ -1 +1 @@
--4.6.3
-+4.6.4
-Index: gcc/tree-vect-loop.c
-===================================================================
---- gcc/tree-vect-loop.c	(.../tags/gcc_4_6_3_release)	(wersja 185440)
-+++ gcc/tree-vect-loop.c	(.../branches/gcc-4_6-branch)	(wersja 185440)
-@@ -2104,7 +2104,8 @@
-           if (stmt_info
-               && !STMT_VINFO_RELEVANT_P (stmt_info)
-               && (!STMT_VINFO_LIVE_P (stmt_info)
--                  || STMT_VINFO_DEF_TYPE (stmt_info) != vect_reduction_def))
-+                  || !VECTORIZABLE_CYCLE_DEF (STMT_VINFO_DEF_TYPE (stmt_info)))
-+	      && !STMT_VINFO_IN_PATTERN_P (stmt_info))
-             continue;
- 
-           if (STMT_VINFO_DATA_REF (vinfo_for_stmt (stmt)))
-@@ -2251,11 +2252,19 @@
- 	{
- 	  gimple stmt = gsi_stmt (si);
- 	  stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
-+
-+	  if (STMT_VINFO_IN_PATTERN_P (stmt_info))
-+	    {
-+	      stmt = STMT_VINFO_RELATED_STMT (stmt_info);
-+	      stmt_info = vinfo_for_stmt (stmt);
-+	    }
-+
- 	  /* Skip stmts that are not vectorized inside the loop.  */
- 	  if (!STMT_VINFO_RELEVANT_P (stmt_info)
- 	      && (!STMT_VINFO_LIVE_P (stmt_info)
--		  || STMT_VINFO_DEF_TYPE (stmt_info) != vect_reduction_def))
-+		  || !VECTORIZABLE_CYCLE_DEF (STMT_VINFO_DEF_TYPE (stmt_info))))
- 	    continue;
-+
- 	  vec_inside_cost += STMT_VINFO_INSIDE_OF_LOOP_COST (stmt_info) * factor;
- 	  /* FIXME: for stmts in the inner-loop in outer-loop vectorization,
- 	     some of the "outside" costs are generated inside the outer-loop.  */
-Index: gcc/tree-vect-stmts.c
-===================================================================
---- gcc/tree-vect-stmts.c	(.../tags/gcc_4_6_3_release)	(wersja 185440)
-+++ gcc/tree-vect-stmts.c	(.../branches/gcc-4_6-branch)	(wersja 185440)
-@@ -623,6 +623,46 @@
- }
- 
- 
-+/* Model cost for type demotion and promotion operations.  PWR is normally
-+   zero for single-step promotions and demotions.  It will be one if 
-+   two-step promotion/demotion is required, and so on.  Each additional
-+   step doubles the number of instructions required.  */
-+
-+static void
-+vect_model_promotion_demotion_cost (stmt_vec_info stmt_info,
-+				    enum vect_def_type *dt, int pwr)
++void
++f1 (V *p)
 +{
-+  int i, tmp;
-+  int inside_cost = 0, outside_cost = 0, single_stmt_cost;
-+
-+  /* The SLP costs were already calculated during SLP tree build.  */
-+  if (PURE_SLP_STMT (stmt_info))
-+    return;
-+
-+  single_stmt_cost = vect_get_stmt_cost (vec_promote_demote);
-+  for (i = 0; i < pwr + 1; i++)
-+    {
-+      tmp = (STMT_VINFO_TYPE (stmt_info) == type_promotion_vec_info_type) ?
-+	(i + 1) : i;
-+      inside_cost += vect_pow2 (tmp) * single_stmt_cost;
-+    }
-+
-+  /* FORNOW: Assuming maximum 2 args per stmts.  */
-+  for (i = 0; i < 2; i++)
-+    {
-+      if (dt[i] == vect_constant_def || dt[i] == vect_external_def)
-+        outside_cost += vect_get_stmt_cost (vector_stmt);
-+    }
-+
-+  if (vect_print_dump_info (REPORT_COST))
-+    fprintf (vect_dump, "vect_model_promotion_demotion_cost: inside_cost = %d, "
-+             "outside_cost = %d .", inside_cost, outside_cost);
-+
-+  /* Set the costs in STMT_INFO.  */
-+  stmt_vinfo_set_inside_of_loop_cost (stmt_info, NULL, inside_cost);
-+  stmt_vinfo_set_outside_of_loop_cost (stmt_info, NULL, outside_cost);
++  V mask = { 1, 2, 3, 0 };
++  *p = __builtin_shuffle (*p, mask);
 +}
 +
- /* Function vect_cost_strided_group_size
- 
-    For strided load or store, return the group_size only if it is the first
-@@ -691,7 +731,7 @@
-     {
-       /* Uses a high and low interleave operation for each needed permute.  */
-       inside_cost = ncopies * exact_log2(group_size) * group_size
--        * vect_get_stmt_cost (vector_stmt);
-+        * vect_get_stmt_cost (vec_perm);
- 
-       if (vect_print_dump_info (REPORT_COST))
-         fprintf (vect_dump, "vect_model_store_cost: strided group_size = %d .",
-@@ -795,7 +835,7 @@
-     {
-       /* Uses an even and odd extract operations for each needed permute.  */
-       inside_cost = ncopies * exact_log2(group_size) * group_size
--	* vect_get_stmt_cost (vector_stmt);
-+	* vect_get_stmt_cost (vec_perm);
- 
-       if (vect_print_dump_info (REPORT_COST))
-         fprintf (vect_dump, "vect_model_load_cost: strided group_size = %d .",
-@@ -855,7 +895,7 @@
-     case dr_explicit_realign:
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    http://cvs.pld-linux.org/packages/gcc/gcc-ada-link.patch?r1=1.13&r2=1.14
    http://cvs.pld-linux.org/packages/gcc/gcc-branch.diff?r1=1.60&r2=1.61
    http://cvs.pld-linux.org/packages/gcc/gcc-nodebug.patch?r1=1.12&r2=1.13
    http://cvs.pld-linux.org/packages/gcc/gcc.spec?r1=1.683&r2=1.684



More information about the pld-cvs-commit mailing list