packages: gcc/gcc-branch.diff, gcc/gcc.spec - rel 10; branch diff updated
arekm
arekm at pld-linux.org
Sun Jul 4 21:21:31 CEST 2010
Author: arekm Date: Sun Jul 4 19:21:31 2010 GMT
Module: packages Tag: HEAD
---- Log message:
- rel 10; branch diff updated
---- Files affected:
packages/gcc:
gcc-branch.diff (1.33 -> 1.34) , gcc.spec (1.621 -> 1.622)
---- Diffs:
================================================================
Index: packages/gcc/gcc-branch.diff
diff -u packages/gcc/gcc-branch.diff:1.33 packages/gcc/gcc-branch.diff:1.34
--- packages/gcc/gcc-branch.diff:1.33 Tue Jun 15 20:24:02 2010
+++ packages/gcc/gcc-branch.diff Sun Jul 4 21:21:19 2010
@@ -1,7 +1,7 @@
Index: configure
===================================================================
---- configure (.../tags/gcc_4_5_0_release) (revision 160798)
-+++ configure (.../branches/gcc-4_5-branch) (revision 160798)
+--- configure (.../tags/gcc_4_5_0_release) (wersja 161805)
++++ configure (.../branches/gcc-4_5-branch) (wersja 161805)
@@ -5996,95 +5996,7 @@
@@ -254,7 +254,7 @@
# If we couldn't enable LTO and the user forced it, emit an error.
if test x"$enable_lto" = x"no" \
&& test x"$default_enable_lto" != x"yes" ; then
-@@ -6613,8 +6655,29 @@
+@@ -6613,8 +6655,30 @@
fi
@@ -270,6 +270,7 @@
+ # -flto it won't be needed until after installation anyway.
+ case $target in
+ *-cygwin*|*-mingw*) ;;
++ x86_64-apple-darwin*) ;;
+ *) if test x"$enable_lto" = x"yes"; then
+ as_fn_error "LTO support is not enabled for this target." "$LINENO" 5
+ fi
@@ -284,7 +285,7 @@
# By default, C is the only stage 1 language.
stage1_languages=,c,
-@@ -7610,7 +7673,7 @@
+@@ -7610,7 +7674,7 @@
mv conftest.o conftest.o.g0 &&
${CC} -c -g conftest.c &&
mv conftest.o conftest.o.g &&
@@ -295,8 +296,8 @@
BUILD_CONFIG=
Index: Makefile.in
===================================================================
---- Makefile.in (.../tags/gcc_4_5_0_release) (revision 160798)
-+++ Makefile.in (.../branches/gcc-4_5-branch) (revision 160798)
+--- Makefile.in (.../tags/gcc_4_5_0_release) (wersja 161805)
++++ Makefile.in (.../branches/gcc-4_5-branch) (wersja 161805)
@@ -57763,6 +57763,14 @@
configure-stage4-gcc: maybe-all-stage4-gold
configure-stageprofile-gcc: maybe-all-stageprofile-gold
@@ -329,8 +330,8 @@
all-stage1-gcc: maybe-all-build-texinfo
Index: libgcc/config.host
===================================================================
---- libgcc/config.host (.../tags/gcc_4_5_0_release) (revision 160798)
-+++ libgcc/config.host (.../branches/gcc-4_5-branch) (revision 160798)
+--- libgcc/config.host (.../tags/gcc_4_5_0_release) (wersja 161805)
++++ libgcc/config.host (.../branches/gcc-4_5-branch) (wersja 161805)
@@ -600,6 +600,7 @@
i[34567]86-*-darwin* | x86_64-*-darwin* | \
i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu | \
@@ -341,8 +342,8 @@
if test "${host_address}" = 32; then
Index: libgcc/config/i386/32/sfp-machine.h
===================================================================
---- libgcc/config/i386/32/sfp-machine.h (.../tags/gcc_4_5_0_release) (revision 160798)
-+++ libgcc/config/i386/32/sfp-machine.h (.../branches/gcc-4_5-branch) (revision 160798)
+--- libgcc/config/i386/32/sfp-machine.h (.../tags/gcc_4_5_0_release) (wersja 161805)
++++ libgcc/config/i386/32/sfp-machine.h (.../branches/gcc-4_5-branch) (wersja 161805)
@@ -142,8 +142,8 @@
if (_fex & FP_EX_DIVZERO) \
{ \
@@ -356,8 +357,8 @@
} \
Index: libgcc/ChangeLog
===================================================================
---- libgcc/ChangeLog (.../tags/gcc_4_5_0_release) (revision 160798)
-+++ libgcc/ChangeLog (.../branches/gcc-4_5-branch) (revision 160798)
+--- libgcc/ChangeLog (.../tags/gcc_4_5_0_release) (wersja 161805)
++++ libgcc/ChangeLog (.../branches/gcc-4_5-branch) (wersja 161805)
@@ -1,3 +1,15 @@
+2010-05-19 Rainer Orth <ro at CeBiTec.Uni-Bielefeld.DE>
+
@@ -376,8 +377,8 @@
* GCC 4.5.0 released.
Index: libgomp/configure
===================================================================
---- libgomp/configure (.../tags/gcc_4_5_0_release) (revision 160798)
-+++ libgomp/configure (.../branches/gcc-4_5-branch) (revision 160798)
+--- libgomp/configure (.../tags/gcc_4_5_0_release) (wersja 161805)
++++ libgomp/configure (.../branches/gcc-4_5-branch) (wersja 161805)
@@ -15379,7 +15379,7 @@
/* end confdefs.h. */
#include <pthread.h>
@@ -403,8 +404,8 @@
return (a_in_other_thread == a_in_main_thread);
Index: libgomp/sections.c
===================================================================
---- libgomp/sections.c (.../tags/gcc_4_5_0_release) (revision 160798)
-+++ libgomp/sections.c (.../branches/gcc-4_5-branch) (revision 160798)
+--- libgomp/sections.c (.../tags/gcc_4_5_0_release) (wersja 161805)
++++ libgomp/sections.c (.../branches/gcc-4_5-branch) (wersja 161805)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
+/* Copyright (C) 2005, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
@@ -440,8 +441,8 @@
/* This routine is called when first encountering a sections construct
Index: libgomp/ChangeLog
===================================================================
---- libgomp/ChangeLog (.../tags/gcc_4_5_0_release) (revision 160798)
-+++ libgomp/ChangeLog (.../branches/gcc-4_5-branch) (revision 160798)
+--- libgomp/ChangeLog (.../tags/gcc_4_5_0_release) (wersja 161805)
++++ libgomp/ChangeLog (.../branches/gcc-4_5-branch) (wersja 161805)
@@ -1,3 +1,29 @@
+2010-06-10 Iain Sandoe <iains at gcc.gnu.org>
+
@@ -474,8 +475,8 @@
* GCC 4.5.0 released.
Index: libgomp/testsuite/libgomp.c++/pr43893.C
===================================================================
---- libgomp/testsuite/libgomp.c++/pr43893.C (.../tags/gcc_4_5_0_release) (revision 0)
-+++ libgomp/testsuite/libgomp.c++/pr43893.C (.../branches/gcc-4_5-branch) (revision 160798)
+--- libgomp/testsuite/libgomp.c++/pr43893.C (.../tags/gcc_4_5_0_release) (wersja 0)
++++ libgomp/testsuite/libgomp.c++/pr43893.C (.../branches/gcc-4_5-branch) (wersja 161805)
@@ -0,0 +1,125 @@
+// PR c/43893
+// { dg-do run }
@@ -604,8 +605,8 @@
+}
Index: libgomp/testsuite/libgomp.fortran/vla8.f90
===================================================================
---- libgomp/testsuite/libgomp.fortran/vla8.f90 (.../tags/gcc_4_5_0_release) (revision 0)
-+++ libgomp/testsuite/libgomp.fortran/vla8.f90 (.../branches/gcc-4_5-branch) (revision 160798)
+--- libgomp/testsuite/libgomp.fortran/vla8.f90 (.../tags/gcc_4_5_0_release) (wersja 0)
++++ libgomp/testsuite/libgomp.fortran/vla8.f90 (.../branches/gcc-4_5-branch) (wersja 161805)
@@ -0,0 +1,254 @@
+! { dg-do run }
+
@@ -863,8 +864,8 @@
+end
Index: libgomp/testsuite/libgomp.c/pr43893.c
===================================================================
---- libgomp/testsuite/libgomp.c/pr43893.c (.../tags/gcc_4_5_0_release) (revision 0)
-+++ libgomp/testsuite/libgomp.c/pr43893.c (.../branches/gcc-4_5-branch) (revision 160798)
+--- libgomp/testsuite/libgomp.c/pr43893.c (.../tags/gcc_4_5_0_release) (wersja 0)
++++ libgomp/testsuite/libgomp.c/pr43893.c (.../branches/gcc-4_5-branch) (wersja 161805)
@@ -0,0 +1,61 @@
+/* PR c/43893 */
+/* { dg-do run } */
@@ -929,8 +930,8 @@
+}
Index: libgomp/config/linux/proc.c
===================================================================
---- libgomp/config/linux/proc.c (.../tags/gcc_4_5_0_release) (revision 160798)
-+++ libgomp/config/linux/proc.c (.../branches/gcc-4_5-branch) (revision 160798)
+--- libgomp/config/linux/proc.c (.../tags/gcc_4_5_0_release) (wersja 161805)
++++ libgomp/config/linux/proc.c (.../branches/gcc-4_5-branch) (wersja 161805)
@@ -1,4 +1,5 @@
-/* Copyright (C) 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+/* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010
@@ -971,8 +972,8 @@
#ifdef _SC_NPROCESSORS_ONLN
Index: libgomp/config/linux/affinity.c
===================================================================
---- libgomp/config/linux/affinity.c (.../tags/gcc_4_5_0_release) (revision 160798)
-+++ libgomp/config/linux/affinity.c (.../branches/gcc-4_5-branch) (revision 160798)
+--- libgomp/config/linux/affinity.c (.../tags/gcc_4_5_0_release) (wersja 161805)
++++ libgomp/config/linux/affinity.c (.../branches/gcc-4_5-branch) (wersja 161805)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+/* Copyright (C) 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
@@ -1021,8 +1022,8 @@
pthread_setaffinity_np (pthread_self (), sizeof (cpuset), &cpuset);
Index: gcc/tree-vrp.c
===================================================================
---- gcc/tree-vrp.c (.../tags/gcc_4_5_0_release) (revision 160798)
-+++ gcc/tree-vrp.c (.../branches/gcc-4_5-branch) (revision 160798)
+--- gcc/tree-vrp.c (.../tags/gcc_4_5_0_release) (wersja 161805)
++++ gcc/tree-vrp.c (.../branches/gcc-4_5-branch) (wersja 161805)
@@ -764,7 +764,28 @@
&& integer_zerop (vr->max);
}
@@ -1241,8 +1242,8 @@
check_all_array_refs ();
Index: gcc/sched-ebb.c
===================================================================
---- gcc/sched-ebb.c (.../tags/gcc_4_5_0_release) (revision 160798)
-+++ gcc/sched-ebb.c (.../branches/gcc-4_5-branch) (revision 160798)
+--- gcc/sched-ebb.c (.../tags/gcc_4_5_0_release) (wersja 161805)
++++ gcc/sched-ebb.c (.../branches/gcc-4_5-branch) (wersja 161805)
@@ -463,7 +463,7 @@
schedule_ebb (rtx head, rtx tail)
{
@@ -1254,8 +1255,8 @@
last_bb = BLOCK_FOR_INSN (tail);
Index: gcc/doc/sourcebuild.texi
===================================================================
---- gcc/doc/sourcebuild.texi (.../tags/gcc_4_5_0_release) (revision 160798)
-+++ gcc/doc/sourcebuild.texi (.../branches/gcc-4_5-branch) (revision 160798)
+--- gcc/doc/sourcebuild.texi (.../tags/gcc_4_5_0_release) (wersja 161805)
++++ gcc/doc/sourcebuild.texi (.../branches/gcc-4_5-branch) (wersja 161805)
@@ -1094,9 +1094,12 @@
/* @{ dg-skip-if "" @{ *-*-* @} @{ "-O2 -g" "-O3 -g" @} @{ "-fpic" @} @} */
@end smallexample
@@ -1312,8 +1313,8 @@
Index: gcc/doc/standards.texi
===================================================================
---- gcc/doc/standards.texi (.../tags/gcc_4_5_0_release) (revision 160798)
-+++ gcc/doc/standards.texi (.../branches/gcc-4_5-branch) (revision 160798)
+--- gcc/doc/standards.texi (.../tags/gcc_4_5_0_release) (wersja 161805)
++++ gcc/doc/standards.texi (.../branches/gcc-4_5-branch) (wersja 161805)
@@ -183,7 +183,7 @@
available on the ISO C++ committee's web site at
@uref{http://www.open-std.org/jtc1/sc22/wg21/}. For information
@@ -1323,10 +1324,33 @@
standard in GCC, use the option @option{-std=c++0x}; to obtain all the
diagnostics required by the standard, you should also specify
@option{-pedantic} (or @option{-pedantic-errors} if you want them to be
+Index: gcc/doc/tm.texi
+===================================================================
+--- gcc/doc/tm.texi (.../tags/gcc_4_5_0_release) (wersja 161805)
++++ gcc/doc/tm.texi (.../branches/gcc-4_5-branch) (wersja 161805)
+@@ -7149,6 +7149,18 @@
+ this function.
+ @end deftypefun
+
++ at deftypefn {Target Hook} void TARGET_ASM_LTO_START (void)
++Output to @code{asm_out_file} any text which the assembler expects
++to find at the start of an LTO section. The default is to output
++nothing.
++ at end deftypefn
++
++ at deftypefn {Target Hook} void TARGET_ASM_LTO_END (void)
++Output to @code{asm_out_file} any text which the assembler expects
++to find at the end of an LTO section. The default is to output
++nothing.
++ at end deftypefn
++
+ @deftypefn {Target Hook} void TARGET_ASM_CODE_END (void)
+ Output to @code{asm_out_file} any text which is needed before emitting
+ unwind info and debug info at the end of a file. Some targets emit
Index: gcc/doc/install.texi
===================================================================
---- gcc/doc/install.texi (.../tags/gcc_4_5_0_release) (revision 160798)
-+++ gcc/doc/install.texi (.../branches/gcc-4_5-branch) (revision 160798)
+--- gcc/doc/install.texi (.../tags/gcc_4_5_0_release) (wersja 161805)
++++ gcc/doc/install.texi (.../branches/gcc-4_5-branch) (wersja 161805)
@@ -361,7 +361,7 @@
downloaded from @uref{http://www.mr511.de/software/libelf-0.8.12.tar.gz},
though it is commonly available in several systems. The versions in
@@ -1347,10 +1371,29 @@
@item --enable-initfini-array
Force the use of sections @code{.init_array} and @code{.fini_array}
(instead of @code{.init} and @code{.fini}) for constructors and
+Index: gcc/dwarf2asm.c
+===================================================================
+--- gcc/dwarf2asm.c (.../tags/gcc_4_5_0_release) (wersja 161805)
++++ gcc/dwarf2asm.c (.../branches/gcc-4_5-branch) (wersja 161805)
+@@ -1,5 +1,5 @@
+ /* Dwarf2 assembler output helper routines.
+- Copyright (C) 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009
++ Copyright (C) 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010
+ Free Software Foundation, Inc.
+
+ This file is part of GCC.
+@@ -877,6 +877,7 @@
+ DECL_ARTIFICIAL (decl) = 1;
+ DECL_IGNORED_P (decl) = 1;
+ DECL_INITIAL (decl) = decl;
++ TREE_READONLY (decl) = 1;
+
+ if (TREE_PUBLIC (id))
+ {
Index: gcc/lto-symtab.c
===================================================================
---- gcc/lto-symtab.c (.../tags/gcc_4_5_0_release) (revision 160798)
-+++ gcc/lto-symtab.c (.../branches/gcc-4_5-branch) (revision 160798)
+--- gcc/lto-symtab.c (.../tags/gcc_4_5_0_release) (wersja 161805)
++++ gcc/lto-symtab.c (.../branches/gcc-4_5-branch) (wersja 161805)
@@ -94,9 +94,10 @@
const struct lto_symtab_entry_def *base =
(const struct lto_symtab_entry_def *) p;
@@ -1381,8 +1424,8 @@
e = (lto_symtab_entry_t) *slot;
Index: gcc/opts-common.c
===================================================================
---- gcc/opts-common.c (.../tags/gcc_4_5_0_release) (revision 160798)
-+++ gcc/opts-common.c (.../branches/gcc-4_5-branch) (revision 160798)
+--- gcc/opts-common.c (.../tags/gcc_4_5_0_release) (wersja 161805)
++++ gcc/opts-common.c (.../branches/gcc-4_5-branch) (wersja 161805)
@@ -132,6 +132,10 @@
{
int argc = *argcp;
@@ -1404,17 +1447,310 @@
}
else
{
+Index: gcc/tree-loop-distribution.c
+===================================================================
+--- gcc/tree-loop-distribution.c (.../tags/gcc_4_5_0_release) (wersja 161805)
++++ gcc/tree-loop-distribution.c (.../branches/gcc-4_5-branch) (wersja 161805)
+@@ -202,18 +202,28 @@
+
+ for (bsi = gsi_start_phis (bb); !gsi_end_p (bsi);)
+ if (!bitmap_bit_p (partition, x++))
+- remove_phi_node (&bsi, true);
++ {
++ gimple phi = gsi_stmt (bsi);
++ if (!is_gimple_reg (gimple_phi_result (phi)))
++ mark_virtual_phi_result_for_renaming (phi);
++ remove_phi_node (&bsi, true);
++ }
+ else
+ gsi_next (&bsi);
+
+ for (bsi = gsi_start_bb (bb); !gsi_end_p (bsi);)
+- if (gimple_code (gsi_stmt (bsi)) != GIMPLE_LABEL
+- && !bitmap_bit_p (partition, x++))
+- gsi_remove (&bsi, false);
+- else
+- gsi_next (&bsi);
+-
+- mark_virtual_ops_in_bb (bb);
++ {
++ gimple stmt = gsi_stmt (bsi);
++ if (gimple_code (gsi_stmt (bsi)) != GIMPLE_LABEL
++ && !bitmap_bit_p (partition, x++))
++ {
++ unlink_stmt_vdef (stmt);
++ gsi_remove (&bsi, true);
++ release_defs (stmt);
++ }
++ else
++ gsi_next (&bsi);
++ }
+ }
+
+ free (bbs);
+@@ -250,7 +260,6 @@
+ gimple_seq stmt_list = NULL, stmts;
+ gimple fn_call;
+ tree mem, fn;
+- gimple_stmt_iterator i;
+ struct data_reference *dr = XCNEW (struct data_reference);
+ location_t loc = gimple_location (stmt);
+
+@@ -301,13 +310,6 @@
+ fn = build_fold_addr_expr (implicit_built_in_decls [BUILT_IN_MEMSET]);
+ fn_call = gimple_build_call (fn, 3, mem, integer_zero_node, nb_bytes);
+ gimple_seq_add_stmt (&stmt_list, fn_call);
+-
+- for (i = gsi_start (stmt_list); !gsi_end_p (i); gsi_next (&i))
+- {
+- gimple s = gsi_stmt (i);
+- update_stmt_if_modified (s);
+- }
+-
+ gsi_insert_seq_after (&bsi, stmt_list, GSI_CONTINUE_LINKING);
+ res = true;
+
+Index: gcc/tree-ssa-loop-unswitch.c
+===================================================================
+--- gcc/tree-ssa-loop-unswitch.c (.../tags/gcc_4_5_0_release) (wersja 161805)
++++ gcc/tree-ssa-loop-unswitch.c (.../branches/gcc-4_5-branch) (wersja 161805)
+@@ -1,5 +1,5 @@
+ /* Loop unswitching.
+- Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
++ Copyright (C) 2004, 2005, 2007, 2008, 2010 Free Software Foundation, Inc.
+
+ This file is part of GCC.
+
+@@ -112,6 +112,12 @@
+ if (!stmt || gimple_code (stmt) != GIMPLE_COND)
+ return NULL_TREE;
+
++ /* To keep the things simple, we do not directly remove the conditions,
++ but just replace tests with 0 != 0 resp. 1 != 0. Prevent the infinite
++ loop where we would unswitch again on such a condition. */
++ if (gimple_cond_true_p (stmt) || gimple_cond_false_p (stmt))
++ return NULL_TREE;
++
+ /* Condition must be invariant. */
+ FOR_EACH_SSA_TREE_OPERAND (use, stmt, iter, SSA_OP_USE)
+ {
+@@ -125,12 +131,6 @@
+ cond = build2 (gimple_cond_code (stmt), boolean_type_node,
+ gimple_cond_lhs (stmt), gimple_cond_rhs (stmt));
+
+- /* To keep the things simple, we do not directly remove the conditions,
+- but just replace tests with 0/1. Prevent the infinite loop where we
+- would unswitch again on such a condition. */
+- if (integer_zerop (cond) || integer_nonzerop (cond))
+- return NULL_TREE;
+-
+ return cond;
+ }
+
+@@ -176,19 +176,11 @@
+ {
+ basic_block *bbs;
+ struct loop *nloop;
+- unsigned i;
++ unsigned i, found;
+ tree cond = NULL_TREE;
+ gimple stmt;
+ bool changed = false;
+
+- /* Do not unswitch too much. */
+- if (num > PARAM_VALUE (PARAM_MAX_UNSWITCH_LEVEL))
+- {
+- if (dump_file && (dump_flags & TDF_DETAILS))
+- fprintf (dump_file, ";; Not unswitching anymore, hit max level\n");
+- return false;
+- }
+-
+ /* Only unswitch innermost loops. */
+ if (loop->inner)
+ {
+@@ -216,6 +208,7 @@
+
+ i = 0;
+ bbs = get_loop_body (loop);
++ found = loop->num_nodes;
+
+ while (1)
+ {
+@@ -226,8 +219,17 @@
+
+ if (i == loop->num_nodes)
+ {
+- free (bbs);
+- return changed;
++ if (dump_file
++ && num > PARAM_VALUE (PARAM_MAX_UNSWITCH_LEVEL)
++ && (dump_flags & TDF_DETAILS))
++ fprintf (dump_file, ";; Not unswitching anymore, hit max level\n");
++
++ if (found == loop->num_nodes)
++ {
++ free (bbs);
++ return changed;
++ }
++ break;
+ }
+
+ cond = simplify_using_entry_checks (loop, cond);
+@@ -244,19 +246,107 @@
+ gimple_cond_set_condition_from_tree (stmt, boolean_false_node);
+ changed = true;
+ }
++ /* Do not unswitch too much. */
++ else if (num > PARAM_VALUE (PARAM_MAX_UNSWITCH_LEVEL))
++ {
++ i++;
++ continue;
++ }
++ /* In nested tree_unswitch_single_loop first optimize all conditions
++ using entry checks, then discover still reachable blocks in the
++ loop and find the condition only among those still reachable bbs. */
++ else if (num != 0)
++ {
++ if (found == loop->num_nodes)
++ found = i;
++ i++;
++ continue;
++ }
+ else
+- break;
++ {
++ found = i;
++ break;
++ }
+
+ update_stmt (stmt);
+ i++;
+ }
+
++ if (num != 0)
++ {
++ basic_block *tos, *worklist;
++
++ /* When called recursively, first do a quick discovery
++ of reachable bbs after the above changes and only
++ consider conditions in still reachable bbs. */
++ tos = worklist = XNEWVEC (basic_block, loop->num_nodes);
++
++ for (i = 0; i < loop->num_nodes; i++)
++ bbs[i]->flags &= ~BB_REACHABLE;
++
++ /* Start with marking header. */
++ *tos++ = bbs[0];
++ bbs[0]->flags |= BB_REACHABLE;
++
++ /* Iterate: find everything reachable from what we've already seen
++ within the same innermost loop. Don't look through false edges
++ if condition is always true or true edges if condition is
++ always false. */
++ while (tos != worklist)
++ {
++ basic_block b = *--tos;
++ edge e;
++ edge_iterator ei;
++ int flags = 0;
++
++ if (EDGE_COUNT (b->succs) == 2)
++ {
++ gimple stmt = last_stmt (b);
++ if (stmt
++ && gimple_code (stmt) == GIMPLE_COND)
++ {
++ if (gimple_cond_true_p (stmt))
++ flags = EDGE_FALSE_VALUE;
++ else if (gimple_cond_false_p (stmt))
++ flags = EDGE_TRUE_VALUE;
++ }
++ }
++
++ FOR_EACH_EDGE (e, ei, b->succs)
++ {
++ basic_block dest = e->dest;
++
++ if (dest->loop_father == loop
++ && !(dest->flags & BB_REACHABLE)
++ && !(e->flags & flags))
++ {
++ *tos++ = dest;
++ dest->flags |= BB_REACHABLE;
++ }
++ }
++ }
++
++ free (worklist);
++
++ /* Find a bb to unswitch on. */
++ for (; found < loop->num_nodes; found++)
++ if ((bbs[found]->flags & BB_REACHABLE)
++ && (cond = tree_may_unswitch_on (bbs[found], loop)))
++ break;
++
++ if (found == loop->num_nodes)
++ {
++ free (bbs);
++ return changed;
++ }
++ }
++
+ if (dump_file && (dump_flags & TDF_DETAILS))
+ fprintf (dump_file, ";; Unswitching loop\n");
+
+ initialize_original_copy_tables ();
+ /* Unswitch the loop on this condition. */
+- nloop = tree_unswitch_loop (loop, bbs[i], cond);
++ nloop = tree_unswitch_loop (loop, bbs[found], cond);
+ if (!nloop)
+ {
+ free_original_copy_tables ();
+Index: gcc/cgraph.c
+===================================================================
+--- gcc/cgraph.c (.../tags/gcc_4_5_0_release) (wersja 161805)
++++ gcc/cgraph.c (.../branches/gcc-4_5-branch) (wersja 161805)
+@@ -1934,7 +1934,7 @@
+
+ static GTY(()) unsigned int clone_fn_id_num;
+
+-static tree
++tree
+ clone_function_name (tree decl)
+ {
+ tree name = DECL_ASSEMBLER_NAME (decl);
+@@ -1994,6 +1994,8 @@
+ ??? We cannot use COMDAT linkage because there is no
+ ABI support for this. */
+ DECL_EXTERNAL (new_node->decl) = 0;
++ if (DECL_ONE_ONLY (old_decl))
++ DECL_SECTION_NAME (new_node->decl) = NULL;
+ DECL_COMDAT_GROUP (new_node->decl) = 0;
+ TREE_PUBLIC (new_node->decl) = 0;
+ DECL_COMDAT (new_node->decl) = 0;
+Index: gcc/cgraph.h
+===================================================================
+--- gcc/cgraph.h (.../tags/gcc_4_5_0_release) (wersja 161805)
++++ gcc/cgraph.h (.../branches/gcc-4_5-branch) (wersja 161805)
+@@ -483,6 +483,7 @@
+ void cgraph_set_readonly_flag (struct cgraph_node *, bool);
+ void cgraph_set_pure_flag (struct cgraph_node *, bool);
+ void cgraph_set_looping_const_or_pure_flag (struct cgraph_node *, bool);
++tree clone_function_name (tree);
+
+ /* In cgraphunit.c */
+ void cgraph_finalize_function (tree, bool);
Index: gcc/DATESTAMP
===================================================================
---- gcc/DATESTAMP (.../tags/gcc_4_5_0_release) (revision 160798)
-+++ gcc/DATESTAMP (.../branches/gcc-4_5-branch) (revision 160798)
<<Diff was trimmed, longer than 597 lines>>
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/gcc/gcc-branch.diff?r1=1.33&r2=1.34&f=u
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/gcc/gcc.spec?r1=1.621&r2=1.622&f=u
More information about the pld-cvs-commit
mailing list