packages: gcc/gcc-ada-link.patch, gcc/gcc-branch.diff, gcc/gcc-plugin-decl-...
arekm
arekm at pld-linux.org
Sun Mar 27 15:07:20 CEST 2011
Author: arekm Date: Sun Mar 27 13:07:20 2011 GMT
Module: packages Tag: HEAD
---- Log message:
- up to 4.6.0; 4.5 on GCC_4_5 branch
---- Files affected:
packages/gcc:
gcc-ada-link.patch (1.11 -> 1.12) , gcc-branch.diff (1.43 -> 1.44) , gcc-plugin-decl-hook.patch (1.1 -> 1.2) , gcc.spec (1.649 -> 1.650) , gcc-nolocalefiles.patch (1.5 -> NONE) (REMOVED)
---- Diffs:
================================================================
Index: packages/gcc/gcc-ada-link.patch
diff -u packages/gcc/gcc-ada-link.patch:1.11 packages/gcc/gcc-ada-link.patch:1.12
--- packages/gcc/gcc-ada-link.patch:1.11 Fri Apr 16 10:17:42 2010
+++ packages/gcc/gcc-ada-link.patch Sun Mar 27 15:07:14 2011
@@ -55,12 +55,15 @@
cd $(RTSDIR); $(LN_S) libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
libgnat$(soext)
cd $(RTSDIR); $(LN_S) libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
-@@ -2546,7 +2547,7 @@
+--- 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)" \
gnatlib
$(RM) $(RTSDIR)/libgna*$(soext)
-- cd $(RTSDIR); ../../xgcc -B../../ -shared $(TARGET_LIBGCC2_CFLAGS) \
-+ cd $(RTSDIR); ../../xgcc -B../../ -shared -shared-libgcc $(TARGET_LIBGCC2_CFLAGS) \
+- cd $(RTSDIR); ../../xgcc -B../../ -shared $(GNATLIBCFLAGS) \
++ cd $(RTSDIR); ../../xgcc -B../../ -shared -shared-libgcc $(GNATLIBCFLAGS) \
+ $(TARGET_LIBGCC2_CFLAGS) \
-o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
$(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \
- $(SO_OPTS)libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) $(MISCLIB)
+
================================================================
Index: packages/gcc/gcc-branch.diff
diff -u packages/gcc/gcc-branch.diff:1.43 packages/gcc/gcc-branch.diff:1.44
--- packages/gcc/gcc-branch.diff:1.43 Sat Feb 12 19:47:57 2011
+++ packages/gcc/gcc-branch.diff Sun Mar 27 15:07:14 2011
@@ -1,12113 +1,788 @@
-Index: configure
+Index: libquadmath/ChangeLog
===================================================================
---- configure (.../tags/gcc_4_5_2_release) (wersja 170084)
-+++ configure (.../branches/gcc-4_5-branch) (wersja 170084)
-@@ -5780,8 +5780,6 @@
-
-
- # Check for PPL
--ppl_major_version=0
--ppl_minor_version=10
- ppllibs=" -lppl_c -lppl -lgmpxx"
- pplinc=
-
-@@ -5838,8 +5836,8 @@
- if test "x$with_ppl" != "xno" -a "${ENABLE_PPL_CHECK}" = "yes"; then
- saved_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $pplinc $gmpinc"
-- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for version $ppl_major_version.$ppl_minor_version of PPL" >&5
--$as_echo_n "checking for version $ppl_major_version.$ppl_minor_version of PPL... " >&6; }
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for version 0.10 (or later revision) of PPL" >&5
-+$as_echo_n "checking for version 0.10 (or later revision) of PPL... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h. */
- #include "ppl_c.h"
-@@ -5847,7 +5845,7 @@
- main ()
- {
-
-- #if PPL_VERSION_MAJOR != $ppl_major_version || PPL_VERSION_MINOR != $ppl_minor_version
-+ #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 10
- choke me
- #endif
-
-Index: libgomp/configure.tgt
-===================================================================
---- libgomp/configure.tgt (.../tags/gcc_4_5_2_release) (wersja 170084)
-+++ libgomp/configure.tgt (.../branches/gcc-4_5-branch) (wersja 170084)
-@@ -125,6 +125,10 @@
- config_path="bsd posix"
- ;;
-
-+ mips-sgi-irix6*)
-+ # Need to link with -lpthread so libgomp.so is self-contained.
-+ XLDFLAGS="${XLDFLAGS} -lpthread"
-+ ;;
- *)
- ;;
-
-Index: libgomp/ChangeLog
-===================================================================
---- libgomp/ChangeLog (.../tags/gcc_4_5_2_release) (wersja 170084)
-+++ libgomp/ChangeLog (.../branches/gcc-4_5-branch) (wersja 170084)
-@@ -1,3 +1,18 @@
-+2011-01-16 Jakub Jelinek <jakub at redhat.com>
+--- libquadmath/ChangeLog (.../tags/gcc_4_6_0_release) (wersja 171573)
++++ libquadmath/ChangeLog (.../branches/gcc-4_6-branch) (wersja 171573)
+@@ -1,3 +1,11 @@
++2011-03-26 Jakub Jelinek <jakub at redhat.com>
+
+ Backport from mainline
-+ 2010-12-14 Jakub Jelinek <jakub at redhat.com>
-+
-+ PR fortran/46874
-+ * libgomp.fortran/allocatable6.f90: New test.
++ 2011-03-25 Jakub Jelinek <jakub at redhat.com>
+
-+2010-12-17 Rainer Orth <ro at CeBiTec.Uni-Bielefeld.DE>
++ * printf/printf_fp.c (__quadmath_printf_fp): Use memcpy instead of
++ mempcpy.
+
-+ Backport from mainline:
-+ 2010-12-01 Rainer Orth <ro at CeBiTec.Uni-Bielefeld.DE>
-+
-+ * configure.tgt (mips-sgi-irix6*): Add -lpthread to XLDFLAGS.
-+
- 2010-12-16 Release Manager
-
- * GCC 4.5.2 released.
-Index: libgomp/testsuite/libgomp.fortran/allocatable6.f90
-===================================================================
---- libgomp/testsuite/libgomp.fortran/allocatable6.f90 (.../tags/gcc_4_5_2_release) (wersja 0)
-+++ libgomp/testsuite/libgomp.fortran/allocatable6.f90 (.../branches/gcc-4_5-branch) (wersja 170084)
-@@ -0,0 +1,45 @@
-+! PR fortran/46874
-+! { dg-do run }
-+
-+ interface
-+ subroutine sub (a, b, c, d, n)
-+ integer :: n
-+ integer, allocatable :: a(:), b(:), c(:), d(:)
-+ end subroutine
-+ end interface
-+
-+ integer, allocatable :: a(:), b(:), c(:), d(:)
-+ integer :: i, j
-+ allocate (a(50), b(50), c(50), d(50))
-+ do i = 1, 50
-+ a(i) = 2 + modulo (i, 7)
-+ b(i) = 179 - modulo (i, 11)
-+ end do
-+ c = 0
-+ d = 2147483647
-+ call sub (a, b, c, d, 50)
-+ do i = 1, 50
-+ j = 0
-+ if (i .eq. 3) then
-+ j = 8
-+ else if (i .gt. 1 .and. i .lt. 9) then
-+ j = 7
-+ end if
-+ if (c(i) .ne. j) call abort
-+ j = 179 - modulo (i, 11)
-+ if (i .gt. 1 .and. i .lt. 9) j = i
-+ if (d(i) .ne. j) call abort
-+ end do
-+ deallocate (a, b, c, d)
-+end
-+
-+subroutine sub (a, b, c, d, n)
-+ integer :: n
-+ integer, allocatable :: a(:), b(:), c(:), d(:)
-+!$omp parallel do shared(a, b) reduction(+:c) reduction(min:d)
-+ do i = 1, n
-+ c(a(i)) = c(a(i)) + 1
-+ d(i) = min(d(i), b(i))
-+ d(a(i)) = min(d(a(i)), a(i))
-+ end do
-+end
-Index: gcc/tree-vrp.c
-===================================================================
---- gcc/tree-vrp.c (.../tags/gcc_4_5_2_release) (wersja 170084)
-+++ gcc/tree-vrp.c (.../branches/gcc-4_5-branch) (wersja 170084)
-@@ -7290,6 +7290,7 @@
- size_t i;
- prop_value_t *single_val_range;
- bool do_value_subst_p;
-+ unsigned num = num_ssa_names;
+ 2011-03-25 Release Manager
- if (dump_file)
- {
-@@ -7301,10 +7302,10 @@
- /* We may have ended with ranges that have exactly one value. Those
- values can be substituted as any other const propagated
- value using substitute_and_fold. */
-- single_val_range = XCNEWVEC (prop_value_t, num_ssa_names);
-+ single_val_range = XCNEWVEC (prop_value_t, num);
-
- do_value_subst_p = false;
-- for (i = 0; i < num_ssa_names; i++)
-+ for (i = 0; i < num; i++)
- if (vr_value[i]
- && vr_value[i]->type == VR_RANGE
- && vr_value[i]->min == vr_value[i]->max
-@@ -7332,7 +7333,7 @@
- identify_jump_threads ();
-
- /* Free allocated memory. */
-- for (i = 0; i < num_ssa_names; i++)
-+ for (i = 0; i < num; i++)
- if (vr_value[i])
- {
- BITMAP_FREE (vr_value[i]->equiv);
-Index: gcc/doc/extend.texi
-===================================================================
---- gcc/doc/extend.texi (.../tags/gcc_4_5_2_release) (wersja 170084)
-+++ gcc/doc/extend.texi (.../branches/gcc-4_5-branch) (wersja 170084)
-@@ -11873,6 +11873,12 @@
- vector float vec_div (vector float, vector float);
- vector double vec_div (vector double, vector double);
- vector double vec_floor (vector double);
-+vector double vec_ld (int, const vector double *);
-+vector double vec_ld (int, const double *);
-+vector double vec_ldl (int, const vector double *);
-+vector double vec_ldl (int, const double *);
-+vector unsigned char vec_lvsl (int, const volatile double *);
-+vector unsigned char vec_lvsr (int, const volatile double *);
- vector double vec_madd (vector double, vector double, vector double);
- vector double vec_max (vector double, vector double);
- vector double vec_min (vector double, vector double);
-@@ -11899,6 +11905,8 @@
- vector double vec_sub (vector double, vector double);
- vector float vec_sqrt (vector float);
- vector double vec_sqrt (vector double);
-+void vec_st (vector double, int, vector double *);
-+void vec_st (vector double, int, double *);
- vector double vec_trunc (vector double);
- vector double vec_xor (vector double, vector double);
- vector double vec_xor (vector double, vector bool long);
-@@ -11927,8 +11935,66 @@
- int vec_any_nle (vector double, vector double);
- int vec_any_nlt (vector double, vector double);
- int vec_any_numeric (vector double);
-+
-+vector double vec_vsx_ld (int, const vector double *);
-+vector double vec_vsx_ld (int, const double *);
-+vector float vec_vsx_ld (int, const vector float *);
-+vector float vec_vsx_ld (int, const float *);
-+vector bool int vec_vsx_ld (int, const vector bool int *);
-+vector signed int vec_vsx_ld (int, const vector signed int *);
-+vector signed int vec_vsx_ld (int, const int *);
-+vector signed int vec_vsx_ld (int, const long *);
-+vector unsigned int vec_vsx_ld (int, const vector unsigned int *);
-+vector unsigned int vec_vsx_ld (int, const unsigned int *);
-+vector unsigned int vec_vsx_ld (int, const unsigned long *);
-+vector bool short vec_vsx_ld (int, const vector bool short *);
-+vector pixel vec_vsx_ld (int, const vector pixel *);
-+vector signed short vec_vsx_ld (int, const vector signed short *);
-+vector signed short vec_vsx_ld (int, const short *);
-+vector unsigned short vec_vsx_ld (int, const vector unsigned short *);
-+vector unsigned short vec_vsx_ld (int, const unsigned short *);
-+vector bool char vec_vsx_ld (int, const vector bool char *);
-+vector signed char vec_vsx_ld (int, const vector signed char *);
-+vector signed char vec_vsx_ld (int, const signed char *);
-+vector unsigned char vec_vsx_ld (int, const vector unsigned char *);
-+vector unsigned char vec_vsx_ld (int, const unsigned char *);
-+
-+void vec_vsx_st (vector double, int, vector double *);
-+void vec_vsx_st (vector double, int, double *);
-+void vec_vsx_st (vector float, int, vector float *);
-+void vec_vsx_st (vector float, int, float *);
-+void vec_vsx_st (vector signed int, int, vector signed int *);
-+void vec_vsx_st (vector signed int, int, int *);
-+void vec_vsx_st (vector unsigned int, int, vector unsigned int *);
-+void vec_vsx_st (vector unsigned int, int, unsigned int *);
-+void vec_vsx_st (vector bool int, int, vector bool int *);
-+void vec_vsx_st (vector bool int, int, unsigned int *);
-+void vec_vsx_st (vector bool int, int, int *);
-+void vec_vsx_st (vector signed short, int, vector signed short *);
-+void vec_vsx_st (vector signed short, int, short *);
-+void vec_vsx_st (vector unsigned short, int, vector unsigned short *);
-+void vec_vsx_st (vector unsigned short, int, unsigned short *);
-+void vec_vsx_st (vector bool short, int, vector bool short *);
-+void vec_vsx_st (vector bool short, int, unsigned short *);
-+void vec_vsx_st (vector pixel, int, vector pixel *);
-+void vec_vsx_st (vector pixel, int, unsigned short *);
-+void vec_vsx_st (vector pixel, int, short *);
-+void vec_vsx_st (vector bool short, int, short *);
-+void vec_vsx_st (vector signed char, int, vector signed char *);
-+void vec_vsx_st (vector signed char, int, signed char *);
-+void vec_vsx_st (vector unsigned char, int, vector unsigned char *);
-+void vec_vsx_st (vector unsigned char, int, unsigned char *);
-+void vec_vsx_st (vector bool char, int, vector bool char *);
-+void vec_vsx_st (vector bool char, int, unsigned char *);
-+void vec_vsx_st (vector bool char, int, signed char *);
- @end smallexample
-
-+Note that the @samp{vec_ld} and @samp{vec_st} builtins will always
-+generate the Altivec @samp{LVX} and @samp{STVX} instructions even
-+if the VSX instruction set is available. The @samp{vec_vsx_ld} and
-+ at samp{vec_vsx_st} builtins will always generate the VSX @samp{LXVD2X},
-+ at samp{LXVW4X}, @samp{STXVD2X}, and @samp{STXVW4X} instructions.
-+
- GCC provides a few other builtins on Powerpc to access certain instructions:
- @smallexample
- float __builtin_recipdivf (float, float);
-@@ -12799,7 +12865,7 @@
- be a @var{constant-expression}, as defined in 5.19.2 of the ANSI/ISO C++
- standard.
-
--See @uref{http://people.redhat.com/drepper/tls.pdf,
-+See @uref{http://www.akkadia.org/drepper/tls.pdf,
- ELF Handling For Thread-Local Storage} for a detailed explanation of
- the four thread-local storage addressing models, and how the run-time
- is expected to function.
-Index: gcc/doc/install.texi
-===================================================================
---- gcc/doc/install.texi (.../tags/gcc_4_5_2_release) (wersja 170084)
-+++ gcc/doc/install.texi (.../branches/gcc-4_5-branch) (wersja 170084)
-@@ -44,9 +44,9 @@
- @settitle Installing GCC: GNU Free Documentation License
- @end ifset
-
-- at c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-- at c 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-- at c 2010 Free Software Foundation, Inc.
-+ at c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997,
-+ at c 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
-+ at c 2009, 2010, 2011 Free Software Foundation, Inc.
- @c *** Converted to texinfo by Dean Wakerley, dean at wakerley.com
-
- @c IMPORTANT: whenever you modify this file, run `install.texi2html' to
-@@ -72,8 +72,8 @@
- @c Part 2 Summary Description and Copyright
- @copying
- Copyright @copyright{} 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997,
--1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
--2008 Free Software Foundation, Inc.
-+1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
-+2009, 2010, 2011 Free Software Foundation, Inc.
- @sp 1
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.2 or
-@@ -2784,10 +2784,6 @@
- @end itemize
-
- @item
--Motorola 68HC11/68HC12--- at uref{http://www.gnu-m68hc11.org,,GNU
--Development Tools for the Motorola 68HC11/68HC12}.
--
-- at item
- @uref{http://www.sco.com/skunkware/devtools/index.html#gcc,,SCO
- OpenServer/Unixware}.
-
-@@ -3311,23 +3307,8 @@
- @heading @anchor{hppa-hp-hpux10}hppa*-hp-hpux10
-
- For hpux10.20, we @emph{highly} recommend you pick up the latest sed patch
-- at code{PHCO_19798} from HP at . HP has two sites which provide patches free of
--charge:
-+ at code{PHCO_19798} from HP at .
-
-- at itemize @bullet
-- at item
-- at html
--<a href="http://us.itrc.hp.com/service/home/home.do">US, Canada, Asia-Pacific, and
--Latin-America</a>
-- at end html
-- at ifnothtml
-- at uref{http://us.itrc.hp.com/service/home/home.do,,} US, Canada, Asia-Pacific,
--and Latin-America.
-- at end ifnothtml
-- at item
-- at uref{http://europe.itrc.hp.com/service/home/home.do,,} Europe.
-- at end itemize
--
- The C++ ABI has changed incompatibly in GCC 4.0. COMDAT subspaces are
- used for one-only code and data. This resolves many of the previous
- problems in using C++ on this target. However, the ABI is not compatible
-Index: gcc/tree-ssa-loop-im.c
-===================================================================
---- gcc/tree-ssa-loop-im.c (.../tags/gcc_4_5_2_release) (wersja 170084)
-+++ gcc/tree-ssa-loop-im.c (.../branches/gcc-4_5-branch) (wersja 170084)
-@@ -2139,7 +2139,7 @@
- edge ex;
-
- for (i = 0; VEC_iterate (edge, exits, i, ex); i++)
-- if (ex->flags & EDGE_ABNORMAL)
-+ if (ex->flags & (EDGE_ABNORMAL | EDGE_EH))
- return false;
-
- return true;
-Index: gcc/tree-loop-distribution.c
+ * GCC 4.6.0 released.
+Index: libquadmath/printf/printf_fp.c
===================================================================
---- gcc/tree-loop-distribution.c (.../tags/gcc_4_5_2_release) (wersja 170084)
-+++ gcc/tree-loop-distribution.c (.../branches/gcc-4_5-branch) (wersja 170084)
-@@ -251,7 +251,7 @@
-
- /* Generate a call to memset. Return true when the operation succeeded. */
-
--static bool
-+static void
- generate_memset_zero (gimple stmt, tree op0, tree nb_iter,
- gimple_stmt_iterator bsi)
- {
-@@ -265,45 +265,27 @@
-
- DR_STMT (dr) = stmt;
- DR_REF (dr) = op0;
-- if (!dr_analyze_innermost (dr))
-- goto end;
-+ res = dr_analyze_innermost (dr);
-+ gcc_assert (res && stride_of_unit_type_p (DR_STEP (dr), TREE_TYPE (op0)));
-
-- /* Test for a positive stride, iterating over every element. */
-- if (integer_zerop (size_binop (MINUS_EXPR,
-- fold_convert (sizetype, DR_STEP (dr)),
-- TYPE_SIZE_UNIT (TREE_TYPE (op0)))))
-- {
-- addr_base = fold_convert_loc (loc, sizetype,
-- size_binop_loc (loc, PLUS_EXPR,
-- DR_OFFSET (dr),
-- DR_INIT (dr)));
-- addr_base = fold_build2_loc (loc, POINTER_PLUS_EXPR,
-- TREE_TYPE (DR_BASE_ADDRESS (dr)),
-- DR_BASE_ADDRESS (dr), addr_base);
-+ nb_bytes = build_size_arg_loc (loc, nb_iter, op0, &stmt_list);
-+ addr_base = size_binop_loc (loc, PLUS_EXPR, DR_OFFSET (dr), DR_INIT (dr));
-+ addr_base = fold_convert_loc (loc, sizetype, addr_base);
-
-- nb_bytes = build_size_arg_loc (loc, nb_iter, op0, &stmt_list);
-- }
--
- /* Test for a negative stride, iterating over every element. */
-- else if (integer_zerop (size_binop (PLUS_EXPR,
-- TYPE_SIZE_UNIT (TREE_TYPE (op0)),
-- fold_convert (sizetype, DR_STEP (dr)))))
-+ if (integer_zerop (size_binop (PLUS_EXPR,
-+ TYPE_SIZE_UNIT (TREE_TYPE (op0)),
-+ fold_convert (sizetype, DR_STEP (dr)))))
- {
-- nb_bytes = build_size_arg_loc (loc, nb_iter, op0, &stmt_list);
--
-- addr_base = size_binop_loc (loc, PLUS_EXPR, DR_OFFSET (dr), DR_INIT (dr));
-- addr_base = fold_convert_loc (loc, sizetype, addr_base);
- addr_base = size_binop_loc (loc, MINUS_EXPR, addr_base,
- fold_convert_loc (loc, sizetype, nb_bytes));
- addr_base = size_binop_loc (loc, PLUS_EXPR, addr_base,
- TYPE_SIZE_UNIT (TREE_TYPE (op0)));
-- addr_base = fold_build2_loc (loc, POINTER_PLUS_EXPR,
-- TREE_TYPE (DR_BASE_ADDRESS (dr)),
-- DR_BASE_ADDRESS (dr), addr_base);
- }
-- else
-- goto end;
-
-+ addr_base = fold_build2_loc (loc, POINTER_PLUS_EXPR,
-+ TREE_TYPE (DR_BASE_ADDRESS (dr)),
-+ DR_BASE_ADDRESS (dr), addr_base);
- mem = force_gimple_operand (addr_base, &stmts, true, NULL);
- gimple_seq_add_seq (&stmt_list, stmts);
-
-@@ -311,14 +293,11 @@
- fn_call = gimple_build_call (fn, 3, mem, integer_zero_node, nb_bytes);
- gimple_seq_add_stmt (&stmt_list, fn_call);
- gsi_insert_seq_after (&bsi, stmt_list, GSI_CONTINUE_LINKING);
-- res = true;
-
- if (dump_file && (dump_flags & TDF_DETAILS))
- fprintf (dump_file, "generated memset zero\n");
-
-- end:
- free_data_ref (dr);
-- return res;
- }
-
- /* Tries to generate a builtin function for the instructions of LOOP
-@@ -332,7 +311,6 @@
- unsigned i, x = 0;
- basic_block *bbs;
- gimple write = NULL;
-- tree op0, op1;
- gimple_stmt_iterator bsi;
- tree nb_iter = number_of_exit_cond_executions (loop);
-
-@@ -368,26 +346,17 @@
+--- libquadmath/printf/printf_fp.c (.../tags/gcc_4_6_0_release) (wersja 171573)
++++ libquadmath/printf/printf_fp.c (.../branches/gcc-4_6-branch) (wersja 171573)
+@@ -1197,7 +1197,7 @@
+ if (*copywc == decimalwc)
+ memcpy (cp, decimal, decimal_len), cp += decimal_len;
+ else if (*copywc == thousands_sepwc)
+- mempcpy (cp, thousands_sep, thousands_sep_len), cp += thousands_sep_len;
++ memcpy (cp, thousands_sep, thousands_sep_len), cp += thousands_sep_len;
+ else
+ *cp++ = (char) *copywc;
}
- }
-
-- if (!write)
-+ if (!stmt_with_adjacent_zero_store_dr_p (write))
- goto end;
-
-- op0 = gimple_assign_lhs (write);
-- op1 = gimple_assign_rhs1 (write);
--
-- if (!(TREE_CODE (op0) == ARRAY_REF
-- || TREE_CODE (op0) == INDIRECT_REF))
-- goto end;
--
- /* The new statements will be placed before LOOP. */
- bsi = gsi_last_bb (loop_preheader_edge (loop)->src);
-+ generate_memset_zero (write, gimple_assign_lhs (write), nb_iter, bsi);
-+ res = true;
-
-- if (gimple_assign_rhs_code (write) == INTEGER_CST
-- && (integer_zerop (op1) || real_zerop (op1)))
-- res = generate_memset_zero (write, op0, nb_iter, bsi);
--
- /* If this is the last partition for which we generate code, we have
- to destroy the loop. */
-- if (res && !copy_p)
-+ if (!copy_p)
- {
- unsigned nbbs = loop->num_nodes;
- edge exit = single_exit (loop);
-@@ -531,24 +500,6 @@
- static void rdg_flag_vertex_and_dependent (struct graph *, int, bitmap, bitmap,
- bitmap, bool *);
-
--/* Flag all the uses of U. */
--
--static void
--rdg_flag_all_uses (struct graph *rdg, int u, bitmap partition, bitmap loops,
-- bitmap processed, bool *part_has_writes)
--{
-- struct graph_edge *e;
--
-- for (e = rdg->vertices[u].succ; e; e = e->succ_next)
-- if (!bitmap_bit_p (processed, e->dest))
-- {
-- rdg_flag_vertex_and_dependent (rdg, e->dest, partition, loops,
-- processed, part_has_writes);
-- rdg_flag_all_uses (rdg, e->dest, partition, loops, processed,
-- part_has_writes);
-- }
--}
--
- /* Flag the uses of U stopping following the information from
- upstream_mem_writes. */
-
-@@ -720,68 +671,13 @@
- }
- }
-
--/* Flag all the nodes of RDG containing memory accesses that could
-- potentially belong to arrays already accessed in the current
-- PARTITION. */
--
--static void
--rdg_flag_similar_memory_accesses (struct graph *rdg, bitmap partition,
-- bitmap loops, bitmap processed,
-- VEC (int, heap) **other_stores)
--{
-- bool foo;
-- unsigned i, n;
-- int j, k, kk;
-- bitmap_iterator ii;
-- struct graph_edge *e;
--
-- EXECUTE_IF_SET_IN_BITMAP (partition, 0, i, ii)
-- if (RDG_MEM_WRITE_STMT (rdg, i)
-- || RDG_MEM_READS_STMT (rdg, i))
-- {
-- for (j = 0; j < rdg->n_vertices; j++)
-- if (!bitmap_bit_p (processed, j)
-- && (RDG_MEM_WRITE_STMT (rdg, j)
-- || RDG_MEM_READS_STMT (rdg, j))
-- && rdg_has_similar_memory_accesses (rdg, i, j))
-- {
-- /* Flag first the node J itself, and all the nodes that
-- are needed to compute J. */
-- rdg_flag_vertex_and_dependent (rdg, j, partition, loops,
-- processed, &foo);
--
-- /* When J is a read, we want to coalesce in the same
-- PARTITION all the nodes that are using J: this is
-- needed for better cache locality. */
-- rdg_flag_all_uses (rdg, j, partition, loops, processed, &foo);
--
-- /* Remove from OTHER_STORES the vertex that we flagged. */
-- if (RDG_MEM_WRITE_STMT (rdg, j))
-- for (k = 0; VEC_iterate (int, *other_stores, k, kk); k++)
-- if (kk == j)
-- {
-- VEC_unordered_remove (int, *other_stores, k);
-- break;
-- }
-- }
--
-- /* If the node I has two uses, then keep these together in the
-- same PARTITION. */
-- for (n = 0, e = rdg->vertices[i].succ; e; e = e->succ_next, n++);
--
-- if (n > 1)
-- rdg_flag_all_uses (rdg, i, partition, loops, processed, &foo);
-- }
--}
--
- /* Returns a bitmap in which all the statements needed for computing
- the strongly connected component C of the RDG are flagged, also
- including the loop exit conditions. */
-
<<Diff was trimmed, longer than 597 lines>>
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/gcc/gcc-ada-link.patch?r1=1.11&r2=1.12&f=u
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/gcc/gcc-branch.diff?r1=1.43&r2=1.44&f=u
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/gcc/gcc-plugin-decl-hook.patch?r1=1.1&r2=1.2&f=u
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/gcc/gcc.spec?r1=1.649&r2=1.650&f=u
More information about the pld-cvs-commit
mailing list