packages: gcc/gcc-branch.diff, gcc/gcc.spec - up to 4.5.2
arekm
arekm at pld-linux.org
Sat Dec 18 22:02:00 CET 2010
Author: arekm Date: Sat Dec 18 21:02:00 2010 GMT
Module: packages Tag: HEAD
---- Log message:
- up to 4.5.2
---- Files affected:
packages/gcc:
gcc-branch.diff (1.39 -> 1.40) , gcc.spec (1.643 -> 1.644)
---- Diffs:
================================================================
Index: packages/gcc/gcc-branch.diff
diff -u packages/gcc/gcc-branch.diff:1.39 packages/gcc/gcc-branch.diff:1.40
--- packages/gcc/gcc-branch.diff:1.39 Tue Nov 16 09:53:09 2010
+++ packages/gcc/gcc-branch.diff Sat Dec 18 22:01:45 2010
@@ -1,61729 +1,399 @@
-Index: configure
+Index: libgomp/configure.tgt
===================================================================
---- configure (.../tags/gcc_4_5_1_release) (wersja 166792)
-+++ configure (.../branches/gcc-4_5-branch) (wersja 166792)
-@@ -3097,7 +3097,7 @@
- # Check for target supported by gold.
- case "${target}" in
- i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-*)
-- configdirs="`echo " ${configdirs} " | sed -e 's/ ld / gold /'`"
-+ configdirs=`echo " ${configdirs} " | sed -e 's/ ld / gold /'`
- ;;
- esac
- fi
-@@ -5457,7 +5457,7 @@
- if test "x$with_gmp$with_gmp_include$with_gmp_lib" = x && test -d ${srcdir}/gmp; then
- gmplibs='-L$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir $gmplibs"
- gmpinc='-I$$r/$(HOST_SUBDIR)/gmp -I$$s/gmp '"$gmpinc"
-- extra_mpfr_configure_flags='--with-gmp-build=$$r/$(HOST_SUBDIR)/gmp'
-+ extra_mpfr_configure_flags='--with-gmp-include=$$r/$(HOST_SUBDIR)/gmp --with-gmp-lib=$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir"
- extra_mpc_gmp_configure_flags='--with-gmp-include=$$r/$(HOST_SUBDIR)/gmp --with-gmp-lib=$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir"
- # 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
-Index: libgcc/config.host
-===================================================================
---- libgcc/config.host (.../tags/gcc_4_5_1_release) (wersja 166792)
-+++ libgcc/config.host (.../branches/gcc-4_5-branch) (wersja 166792)
-@@ -345,6 +345,8 @@
- tmake_file="ia64/t-ia64"
- ;;
- ia64*-*-freebsd*)
-+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
-+ tmake_file="ia64/t-ia64"
- ;;
- ia64*-*-linux*)
- extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
-Index: libgcc/ChangeLog
-===================================================================
---- libgcc/ChangeLog (.../tags/gcc_4_5_1_release) (wersja 166792)
-+++ libgcc/ChangeLog (.../branches/gcc-4_5-branch) (wersja 166792)
-@@ -1,3 +1,9 @@
-+2010-09-12 Gerald Pfeifer <gerald at pfeifer.com>
-+ Andrew Pinski <pinskia at gmail.com>
-+
-+ PR target/40959
-+ * config.host (ia64*-*-freebsd*): Set extra_parts. Set tmake_file.
-+
- 2010-07-31 Release Manager
-
- * GCC 4.5.1 released.
-Index: gcc/doc/sourcebuild.texi
-===================================================================
---- gcc/doc/sourcebuild.texi (.../tags/gcc_4_5_1_release) (wersja 166792)
-+++ gcc/doc/sourcebuild.texi (.../branches/gcc-4_5-branch) (wersja 166792)
-@@ -1679,6 +1679,11 @@
- @item pthread_h
- Target has @code{pthread.h}.
-
-+ at item run_expensive_tests
-+Expensive testcases (usually those that consume excessive amounts of CPU
-+time) should be run on this target. This can be enabled by setting the
-+ at env{GCC_TEST_RUN_EXPENSIVE} environment variable to a non-empty string.
-+
- @item simulator
- Test system runs executables on a simulator (i.e. slowly) rather than
- hardware (i.e. fast).
-Index: gcc/doc/extend.texi
-===================================================================
---- gcc/doc/extend.texi (.../tags/gcc_4_5_1_release) (wersja 166792)
-+++ gcc/doc/extend.texi (.../branches/gcc-4_5-branch) (wersja 166792)
-@@ -1345,9 +1345,7 @@
- @cindex VLAs
-
- Variable-length automatic arrays are allowed in ISO C99, and as an
--extension GCC accepts them in C90 mode and in C++. (However, GCC's
--implementation of variable-length arrays does not yet conform in detail
--to the ISO C99 standard.) These arrays are
-+extension GCC accepts them in C90 mode and in C++. These arrays are
- declared like any other automatic arrays, but with a length that is not
- a constant expression. The storage is allocated at the point of
- declaration and deallocated when the brace-level is exited. For
-Index: gcc/doc/invoke.texi
-===================================================================
---- gcc/doc/invoke.texi (.../tags/gcc_4_5_1_release) (wersja 166792)
-+++ gcc/doc/invoke.texi (.../branches/gcc-4_5-branch) (wersja 166792)
-@@ -5776,7 +5776,8 @@
- Optimize yet more. @option{-O3} turns on all optimizations specified
- by @option{-O2} and also turns on the @option{-finline-functions},
- @option{-funswitch-loops}, @option{-fpredictive-commoning},
-- at option{-fgcse-after-reload} and @option{-ftree-vectorize} options.
-+ at option{-fgcse-after-reload}, @option{-ftree-vectorize} and
-+ at option{-fipa-cp-clone} options.
-
- @item -O0
- @opindex O0
-Index: gcc/ira-conflicts.c
-===================================================================
---- gcc/ira-conflicts.c (.../tags/gcc_4_5_1_release) (wersja 166792)
-+++ gcc/ira-conflicts.c (.../branches/gcc-4_5-branch) (wersja 166792)
-@@ -825,6 +825,21 @@
- IOR_HARD_REG_SET (ALLOCNO_CONFLICT_HARD_REGS (a),
- temp_hard_reg_set);
- }
-+
-+ if (ALLOCNO_CALLS_CROSSED_NUM (a) != 0)
-+ {
-+ int regno;
-+
-+ /* Allocnos bigger than the saved part of call saved
-+ regs must conflict with them. */
-+ for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++)
-+ if (!TEST_HARD_REG_BIT (call_used_reg_set, regno)
-+ && HARD_REGNO_CALL_PART_CLOBBERED (regno, a->mode))
-+ {
-+ SET_HARD_REG_BIT (ALLOCNO_CONFLICT_HARD_REGS (a), regno);
-+ SET_HARD_REG_BIT (ALLOCNO_TOTAL_CONFLICT_HARD_REGS (a), regno);
-+ }
-+ }
- }
- if (optimize && ira_conflicts_p
- && internal_flag_ira_verbose > 2 && ira_dump_file != NULL)
-Index: gcc/tree-complex.c
-===================================================================
---- gcc/tree-complex.c (.../tags/gcc_4_5_1_release) (wersja 166792)
-+++ gcc/tree-complex.c (.../branches/gcc-4_5-branch) (wersja 166792)
-@@ -665,12 +665,16 @@
- update_complex_assignment (gimple_stmt_iterator *gsi, tree r, tree i)
- {
- gimple_stmt_iterator orig_si = *gsi;
-+ gimple stmt;
-
- if (gimple_in_ssa_p (cfun))
- update_complex_components (gsi, gsi_stmt (*gsi), r, i);
-
- gimple_assign_set_rhs_with_ops (&orig_si, COMPLEX_EXPR, r, i);
-- update_stmt (gsi_stmt (orig_si));
-+ stmt = gsi_stmt (orig_si);
-+ update_stmt (stmt);
-+ if (maybe_clean_eh_stmt (stmt))
-+ gimple_purge_dead_eh_edges (gimple_bb (stmt));
- }
-
-
-Index: gcc/tree-loop-distribution.c
-===================================================================
---- gcc/tree-loop-distribution.c (.../tags/gcc_4_5_1_release) (wersja 166792)
-+++ gcc/tree-loop-distribution.c (.../branches/gcc-4_5-branch) (wersja 166792)
-@@ -321,38 +321,6 @@
- return res;
- }
-
--/* Propagate phis in BB b to their uses and remove them. */
--
--static void
--prop_phis (basic_block b)
--{
-- gimple_stmt_iterator psi;
-- gimple_seq phis = phi_nodes (b);
--
-- for (psi = gsi_start (phis); !gsi_end_p (psi); )
-- {
-- gimple phi = gsi_stmt (psi);
-- tree def = gimple_phi_result (phi), use = gimple_phi_arg_def (phi, 0);
--
-- gcc_assert (gimple_phi_num_args (phi) == 1);
--
-- if (!is_gimple_reg (def))
-- {
-- imm_use_iterator iter;
-- use_operand_p use_p;
-- gimple stmt;
--
-- FOR_EACH_IMM_USE_STMT (stmt, iter, def)
-- FOR_EACH_IMM_USE_ON_STMT (use_p, iter)
-- SET_USE (use_p, use);
-- }
-- else
-- replace_uses_by (def, use);
--
-- remove_phi_node (&psi, true);
-- }
--}
--
- /* Tries to generate a builtin function for the instructions of LOOP
- pointed to by the bits set in PARTITION. Returns true when the
- operation succeeded. */
-@@ -422,11 +390,13 @@
- if (res && !copy_p)
- {
- unsigned nbbs = loop->num_nodes;
-- basic_block src = loop_preheader_edge (loop)->src;
-- basic_block dest = single_exit (loop)->dest;
-- prop_phis (dest);
-- make_edge (src, dest, EDGE_FALLTHRU);
-+ edge exit = single_exit (loop);
-+ basic_block src = loop_preheader_edge (loop)->src, dest = exit->dest;
-+ redirect_edge_pred (exit, src);
-+ exit->flags &= ~(EDGE_TRUE_VALUE|EDGE_FALSE_VALUE);
-+ exit->flags |= EDGE_FALLTHRU;
- cancel_loop_tree (loop);
-+ rescan_loop_exit (exit, false, true);
-
- for (i = 0; i < nbbs; i++)
- delete_basic_block (bbs[i]);
-@@ -1192,8 +1162,13 @@
-
- FOR_EACH_LOOP (li, loop, 0)
- {
-- VEC (gimple, heap) *work_list = VEC_alloc (gimple, heap, 3);
-+ VEC (gimple, heap) *work_list = NULL;
-
-+ /* If the loop doesn't have a single exit we will fail anyway,
-+ so do that early. */
-+ if (!single_exit (loop))
-+ continue;
-+
- /* With the following working list, we're asking distribute_loop
- to separate the stores of the loop: when dependences allow,
- it will end on having one store per loop. */
-Index: gcc/cfgloopmanip.c
-===================================================================
---- gcc/cfgloopmanip.c (.../tags/gcc_4_5_1_release) (wersja 166792)
-+++ gcc/cfgloopmanip.c (.../branches/gcc-4_5-branch) (wersja 166792)
-@@ -1538,7 +1538,10 @@
- /* Duplicate loop. */
- if (!cfg_hook_duplicate_loop_to_header_edge (loop, entry, 1,
- NULL, NULL, NULL, 0))
-- return NULL;
-+ {
-+ entry->flags |= irred_flag;
-+ return NULL;
-+ }
-
- /* After duplication entry edge now points to new loop head block.
- Note down new head as second_head. */
-Index: gcc/optabs.c
-===================================================================
---- gcc/optabs.c (.../tags/gcc_4_5_1_release) (wersja 166792)
-+++ gcc/optabs.c (.../branches/gcc-4_5-branch) (wersja 166792)
-@@ -7033,6 +7033,7 @@
- if (icode == CODE_FOR_nothing)
- return NULL_RTX;
-
-+ do_pending_stack_adjust ();
- do
- {
- start_sequence ();
-Index: gcc/DATESTAMP
-===================================================================
---- gcc/DATESTAMP (.../tags/gcc_4_5_1_release) (wersja 166792)
-+++ gcc/DATESTAMP (.../branches/gcc-4_5-branch) (wersja 166792)
-@@ -1 +1 @@
--20100731
-+20101116
-Index: gcc/postreload.c
-===================================================================
---- gcc/postreload.c (.../tags/gcc_4_5_1_release) (wersja 166792)
-+++ gcc/postreload.c (.../branches/gcc-4_5-branch) (wersja 166792)
-@@ -810,7 +810,7 @@
- rtx reg = SET_DEST (set);
- rtx plus = SET_SRC (set);
- rtx base = XEXP (plus, 1);
-- rtx prev = prev_nonnote_insn (insn);
-+ rtx prev = prev_nonnote_nondebug_insn (insn);
- rtx prev_set = prev ? single_set (prev) : NULL_RTX;
- unsigned int regno = REGNO (reg);
- rtx index_reg = NULL_RTX;
-@@ -1323,7 +1323,7 @@
- && MODES_OK_FOR_MOVE2ADD (GET_MODE (reg),
- reg_mode[REGNO (src)]))
- {
-- rtx next = next_nonnote_insn (insn);
-+ rtx next = next_nonnote_nondebug_insn (insn);
- rtx set = NULL_RTX;
- if (next)
- set = single_set (next);
-Index: gcc/tree.h
-===================================================================
---- gcc/tree.h (.../tags/gcc_4_5_1_release) (wersja 166792)
-+++ gcc/tree.h (.../branches/gcc-4_5-branch) (wersja 166792)
-@@ -2578,9 +2578,11 @@
- (FUNCTION_DECL_CHECK (NODE)->function_decl.personality)
-
- /* Nonzero for a given ..._DECL node means that the name of this node should
-- be ignored for symbolic debug purposes. Moreover, for a FUNCTION_DECL,
-- the body of the function should also be ignored. */
--#define DECL_IGNORED_P(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.ignored_flag)
-+ be ignored for symbolic debug purposes. For a TYPE_DECL, this means that
-+ the associated type should be ignored. For a FUNCTION_DECL, the body of
-+ the function should also be ignored. */
-+#define DECL_IGNORED_P(NODE) \
-+ (DECL_COMMON_CHECK (NODE)->decl_common.ignored_flag)
-
- /* Nonzero for a given ..._DECL node means that this node represents an
- "abstract instance" of the given declaration (e.g. in the original
-Index: gcc/rtlanal.c
-===================================================================
---- gcc/rtlanal.c (.../tags/gcc_4_5_1_release) (wersja 166792)
-+++ gcc/rtlanal.c (.../branches/gcc-4_5-branch) (wersja 166792)
-@@ -4755,9 +4755,7 @@
- stop if it isn't a single set or if it has a REG_INC note because
- we don't want to bother dealing with it. */
-
-- do
-- prev = prev_nonnote_insn (prev);
-- while (prev && DEBUG_INSN_P (prev));
-+ prev = prev_nonnote_nondebug_insn (prev);
-
- if (prev == 0
- || !NONJUMP_INSN_P (prev)
-Index: gcc/configure
-===================================================================
---- gcc/configure (.../tags/gcc_4_5_1_release) (wersja 166792)
-+++ gcc/configure (.../branches/gcc-4_5-branch) (wersja 166792)
-@@ -25454,27 +25454,58 @@
-
-
- pluginlibs=
-+
-+case "${host}" in
-+ *-*-darwin*)
-+ if test x$build = x$host; then
-+ export_sym_check="nm${exeext} -g"
-+ elif test x$host = x$target; then
-+ export_sym_check="$gcc_cv_nm -g"
-+ else
-+ export_sym_check=
-+ fi
-+ ;;
-+ *)
-+ if test x$build = x$host; then
-+ export_sym_check="objdump${exeext} -T"
-+ elif test x$host = x$target; then
-+ export_sym_check="$gcc_cv_objdump -T"
-+ else
-+ export_sym_check=
-+ fi
-+ ;;
-+esac
-+
- if test x"$enable_plugin" = x"yes"; then
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for exported symbols" >&5
- $as_echo_n "checking for exported symbols... " >&6; }
-- echo "int main() {return 0;} int foobar() {return 0;}" > conftest.c
-- ${CC} ${CFLAGS} ${LDFLAGS} conftest.c -o conftest > /dev/null 2>&1
-- if $gcc_cv_objdump -T conftest | grep foobar > /dev/null; then
-- : # No need to use a flag
-- else
-- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -rdynamic" >&5
-+ if test "x$export_sym_check" != x; then
-+ echo "int main() {return 0;} int foobar() {return 0;}" > conftest.c
-+ ${CC} ${CFLAGS} ${LDFLAGS} conftest.c -o conftest > /dev/null 2>&1
-+ if $export_sym_check conftest | grep foobar > /dev/null; then
-+ : # No need to use a flag
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-+$as_echo "yes" >&6; }
-+ else
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-+$as_echo "yes" >&6; }
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -rdynamic" >&5
- $as_echo_n "checking for -rdynamic... " >&6; }
-- ${CC} ${CFLAGS} ${LDFLAGS} -rdynamic conftest.c -o conftest > /dev/null 2>&1
-- if $gcc_cv_objdump -T conftest | grep foobar > /dev/null; then
-- plugin_rdynamic=yes
-- pluginlibs="-rdynamic"
-- else
-- plugin_rdynamic=no
-- enable_plugin=no
-+ ${CC} ${CFLAGS} ${LDFLAGS} -rdynamic conftest.c -o conftest > /dev/null 2>&1
-+ if $export_sym_check conftest | grep foobar > /dev/null; then
-+ plugin_rdynamic=yes
-+ pluginlibs="-rdynamic"
-+ else
-+ plugin_rdynamic=no
-+ enable_plugin=no
-+ fi
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_rdynamic" >&5
-+$as_echo "$plugin_rdynamic" >&6; }
- fi
-- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_rdynamic" >&5
--$as_echo "$plugin_rdynamic" >&6; }
-+ else
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unable to check" >&5
-+$as_echo "unable to check" >&6; }
- fi
-
- # Check -ldl
-@@ -25542,7 +25573,14 @@
-
- # Check that we can build shared objects with -fPIC -shared
- saved_LDFLAGS="$LDFLAGS"
-- LDFLAGS="$LDFLAGS -fPIC -shared"
-+ case "${host}" in
-+ *-*-darwin*)
-+ LDFLAGS="$LDFLAGS -fPIC -shared -undefined dynamic_lookup"
-+ ;;
-+ *)
-+ LDFLAGS="$LDFLAGS -fPIC -shared"
-+ ;;
-+ esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fPIC -shared" >&5
- $as_echo_n "checking for -fPIC -shared... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-Index: gcc/builtins.c
-===================================================================
---- gcc/builtins.c (.../tags/gcc_4_5_1_release) (wersja 166792)
-+++ gcc/builtins.c (.../branches/gcc-4_5-branch) (wersja 166792)
-@@ -100,9 +100,9 @@
- static rtx expand_builtin_mathfn (tree, rtx, rtx);
- static rtx expand_builtin_mathfn_2 (tree, rtx, rtx);
- static rtx expand_builtin_mathfn_3 (tree, rtx, rtx);
--static rtx expand_builtin_interclass_mathfn (tree, rtx, rtx);
-+static rtx expand_builtin_interclass_mathfn (tree, rtx);
- static rtx expand_builtin_sincos (tree);
--static rtx expand_builtin_cexpi (tree, rtx, rtx);
-+static rtx expand_builtin_cexpi (tree, rtx);
- static rtx expand_builtin_int_roundingfn (tree, rtx);
- static rtx expand_builtin_int_roundingfn_2 (tree, rtx);
- static rtx expand_builtin_args_info (tree);
-@@ -2291,11 +2291,10 @@
- isnan, etc).
- Return 0 if a normal call should be emitted rather than expanding the
- function in-line. EXP is the expression that is a call to the builtin
-- function; if convenient, the result should be placed in TARGET.
-- SUBTARGET may be used as the target for computing one of EXP's operands. */
-+ function; if convenient, the result should be placed in TARGET. */
-
- static rtx
--expand_builtin_interclass_mathfn (tree exp, rtx target, rtx subtarget)
-+expand_builtin_interclass_mathfn (tree exp, rtx target)
- {
- enum insn_code icode = CODE_FOR_nothing;
- rtx op0;
-@@ -2328,7 +2327,7 @@
- side-effects more the once. */
- CALL_EXPR_ARG (exp, 0) = arg = builtin_save_expr (arg);
-
-- op0 = expand_expr (arg, subtarget, VOIDmode, EXPAND_NORMAL);
-+ op0 = expand_expr (arg, NULL_RTX, VOIDmode, EXPAND_NORMAL);
-
- if (mode != GET_MODE (op0))
- op0 = convert_to_mode (mode, op0, 0);
-@@ -2395,11 +2394,10 @@
-
- /* Expand a call to the internal cexpi builtin to the sincos math function.
- EXP is the expression that is a call to the builtin function; if convenient,
-- the result should be placed in TARGET. SUBTARGET may be used as the target
-- for computing one of EXP's operands. */
-+ the result should be placed in TARGET. */
-
- static rtx
--expand_builtin_cexpi (tree exp, rtx target, rtx subtarget)
-+expand_builtin_cexpi (tree exp, rtx target)
- {
- tree fndecl = get_callee_fndecl (exp);
- tree arg, type;
-@@ -2422,7 +2420,7 @@
- op1 = gen_reg_rtx (mode);
- op2 = gen_reg_rtx (mode);
-
-- op0 = expand_expr (arg, subtarget, VOIDmode, EXPAND_NORMAL);
-+ op0 = expand_expr (arg, NULL_RTX, VOIDmode, EXPAND_NORMAL);
-
- /* Compute into op1 and op2. */
- expand_twoval_unop (sincos_optab, op0, op2, op1, 0);
-@@ -3073,7 +3071,7 @@
- function; if convenient, the result should be placed in TARGET. */
-
- static rtx
--expand_builtin_powi (tree exp, rtx target, rtx subtarget)
-+expand_builtin_powi (tree exp, rtx target)
- {
- tree arg0, arg1;
- rtx op0, op1;
-@@ -3102,7 +3100,7 @@
- || (optimize_insn_for_speed_p ()
- && powi_cost (n) <= POWI_MAX_MULTS)))
- {
-- op0 = expand_expr (arg0, subtarget, VOIDmode, EXPAND_NORMAL);
-+ op0 = expand_expr (arg0, NULL_RTX, VOIDmode, EXPAND_NORMAL);
- op0 = force_reg (mode, op0);
- return expand_powi (op0, mode, n);
- }
-@@ -3116,7 +3114,7 @@
- if (target == NULL_RTX)
- target = gen_reg_rtx (mode);
-
-- op0 = expand_expr (arg0, subtarget, mode, EXPAND_NORMAL);
-+ op0 = expand_expr (arg0, NULL_RTX, mode, EXPAND_NORMAL);
- if (GET_MODE (op0) != mode)
- op0 = convert_to_mode (mode, op0, 0);
- op1 = expand_expr (arg1, NULL_RTX, mode2, EXPAND_NORMAL);
-@@ -4885,7 +4883,10 @@
- return NULL_RTX;
-
- /* Compute the argument. */
-- op0 = expand_expr (CALL_EXPR_ARG (exp, 0), subtarget,
-+ op0 = expand_expr (CALL_EXPR_ARG (exp, 0),
-+ (subtarget
-+ && (TYPE_MODE (TREE_TYPE (CALL_EXPR_ARG (exp, 0)))
-+ == GET_MODE (subtarget))) ? subtarget : NULL_RTX,
- VOIDmode, EXPAND_NORMAL);
- /* Compute op, into TARGET if possible.
- Set TARGET to wherever the result comes back. */
-@@ -5722,7 +5723,7 @@
- CASE_FLT_FN (BUILT_IN_FINITE):
- case BUILT_IN_ISFINITE:
- case BUILT_IN_ISNORMAL:
-- target = expand_builtin_interclass_mathfn (exp, target, subtarget);
-+ target = expand_builtin_interclass_mathfn (exp, target);
- if (target)
- return target;
- break;
-@@ -5752,7 +5753,7 @@
- break;
-
- CASE_FLT_FN (BUILT_IN_POWI):
-- target = expand_builtin_powi (exp, target, subtarget);
-+ target = expand_builtin_powi (exp, target);
- if (target)
- return target;
- break;
-@@ -5774,7 +5775,7 @@
- break;
-
- CASE_FLT_FN (BUILT_IN_CEXPI):
-- target = expand_builtin_cexpi (exp, target, subtarget);
-+ target = expand_builtin_cexpi (exp, target);
- gcc_assert (target);
- return target;
-
-Index: gcc/fold-const.c
-===================================================================
---- gcc/fold-const.c (.../tags/gcc_4_5_1_release) (wersja 166792)
-+++ gcc/fold-const.c (.../branches/gcc-4_5-branch) (wersja 166792)
-@@ -4737,9 +4737,9 @@
- n_high = range_binop (MINUS_EXPR, exp_type,
- build_int_cst (exp_type, 0),
- 0, low, 0);
-- low = n_low, high = n_high;
-- exp = arg0;
-- continue;
-+ if (n_high != 0 && TREE_OVERFLOW (n_high))
-+ break;
-+ goto normalize;
-
- case BIT_NOT_EXPR:
- /* ~ X -> -X - 1 */
-@@ -4773,6 +4773,7 @@
- if (TYPE_OVERFLOW_UNDEFINED (arg0_type))
- *strict_overflow_p = true;
-
-+ normalize:
- /* Check for an unsigned range which has wrapped around the maximum
- value thus making n_high < n_low, and normalize it. */
- if (n_low && n_high && tree_int_cst_lt (n_high, n_low))
-@@ -12096,8 +12097,14 @@
- if (integer_pow2p (sval) && tree_int_cst_sgn (sval) > 0)
- {
- tree sh_cnt = TREE_OPERAND (arg1, 1);
-- unsigned long pow2 = exact_log2 (TREE_INT_CST_LOW (sval));
-+ unsigned long pow2;
-
-+ if (TREE_INT_CST_LOW (sval))
-+ pow2 = exact_log2 (TREE_INT_CST_LOW (sval));
-+ else
-+ pow2 = exact_log2 (TREE_INT_CST_HIGH (sval))
-+ + HOST_BITS_PER_WIDE_INT;
-+
- if (strict_overflow_p)
- fold_overflow_warning (("assuming signed overflow does not "
- "occur when simplifying A / (B << N)"),
-Index: gcc/reorg.c
-===================================================================
---- gcc/reorg.c (.../tags/gcc_4_5_1_release) (wersja 166792)
-+++ gcc/reorg.c (.../branches/gcc-4_5-branch) (wersja 166792)
-@@ -3458,9 +3458,13 @@
- We do this by deleting the INSN containing the SEQUENCE, then
- re-emitting the insns separately, and then deleting the RETURN.
- This allows the count of the jump target to be properly
-- decremented. */
-+ decremented.
-
-- /* Clear the from target bit, since these insns are no longer
-+ Note that we need to change the INSN_UID of the re-emitted insns
-+ since it is used to hash the insns for mark_target_live_regs and
-+ the re-emitted insns will no longer be wrapped up in a SEQUENCE.
-+
-+ Clear the from target bit, since these insns are no longer
- in delay slots. */
<<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.39&r2=1.40&f=u
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/gcc/gcc.spec?r1=1.643&r2=1.644&f=u
More information about the pld-cvs-commit
mailing list