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