OSDN Git Service

2008-08-14 Dorit Nuzman <dorit@il.ibm.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index d4289a5..77796d5 100644 (file)
@@ -1,3 +1,249 @@
+2008-08-14  Dorit Nuzman  <dorit@il.ibm.com>
+
+       * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
+       additional argument. Support reduction when duplication is needed due
+       to data-types of different sizes in the loop.
+       (get_initial_def_for_induction): Fix printout.
+       (vect_get_vec_def_for_stmt_copy): Support case where the
+       vec_stmt_for_operand is a phi node.
+       (vectorizable_reduction): Support reduction when duplication is needed 
+       due to data-types of different sizes in the loop.
+       (vectorizable_call): Remove restriction to not vectorize in case we 
+       have data-types of different sizes in the loop.
+       (vectorizable_conversion): Likewise.
+       (vectorizable_operation): Likewise.
+       (vectorizable_type_demotion): Likewise.
+       (vectorizable_type_promotion): Likewise.
+       (vectorizable_induction): Add restriction to not vectorize in case 
+       we have data-types of different sizes in the loop.
+
+2008-08-14  Christophe Saout  <christophe@saout.de>
+           Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/37101
+       * config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
+       (*vec_concatv2di_rex64_sse4_1): Ditto.
+       (*vec_concatv2di_rex64_sse): Ditto.
+
+2008-08-14  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/37103
+       * fold-const.c (fold_widened_comparison): Do not allow
+       sign changes that change the result even if shorter type
+       is wider than arg1_unw's type.
+
+2008-08-13  Kazu Hirata  <kazu@codesourcery.com>
+
+       * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
+       Skip if the multilib testing specifies -march that does not
+       agree with the one specified in the testcase.
+
+2008-08-13  Joseph Myers  <joseph@codesourcery.com>
+
+       * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
+       zero extend SImode values being converted to TFmode before passing
+       to libcalls.
+
+2008-08-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+       * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
+       __PPU__ when targeting the Cell/B.E. PPU processor.
+
+2008-08-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gimple.h (gimple_call_set_chain): Accept SSA variables.
+       * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>:
+       Rematerialize the static chain, if any.
+       * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
+       static chain.
+
+2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * dwarf2out.c (dwarf_stack_op_name): Remove prototype.
+       (new_loc_descr): Likewise.
+       (add_loc_descr): Likewise.
+       (size_of_loc_descr): Likewise.
+       (size_of_locs): Likewise.
+       (output_loc_operands): Likewise.
+       (output_loc_sequence): Likewise.
+       (new_reg_loc_descr): New.
+       (build_cfa_loc): Use it.
+       (build_cfa_aligned_loc): Likewise.
+       (one_reg_loc_descriptor): Likewise.
+       (based_loc_descr): Likewise.
+
+2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       PR 30551
+       * doc/invoke.texi (Wmain): Update.
+       * c-decl.c (start_decl): warn_main is only 0 or 1.
+       (start_function): Likewise. Fix formatting.
+       (finish_function): Delete redundant warning.
+       * c.opt (Wmain): Add Var(warn_main) and Init(-1).
+       * c-opts (c_common_handle_option): -Wall only has effect if
+       warn_main is uninitialized. OPT_Wmain is automatically
+       handled. -pedantic also enables Wmain.
+       (c_common_post_options): Handle all logic for Wmain here.
+       * c-common.c (warn_main): Delete.
+       (check_main_parameter_types): Make pedwarns conditional on
+       OPT_Wmain.
+       * c-common.h (warn_main): Delete.
+
+2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR middle-end/36701
+       * expr.c (emit_group_store): Allocate stack temp with the
+       largest alignment when copying from register to stack.
+
+2008-08-13  Richard Guenther  <rguenther@suse.de>
+
+       * tree.h (maybe_fold_offset_to_address): Declare.
+       * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
+       (ccp_fold): Handle pointer conversions the same as fold_stmt.
+       Likewise for POINTER_PLUS_EXPR.
+       (maybe_fold_offset_to_reference): Enable disabled code.
+       (maybe_fold_offset_to_address): New function.
+       (fold_stmt_r): Use it.
+       (fold_gimple_assign): Likewise.
+       * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
+       (gimplify_expr): Likewise.
+
+2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       * toplev.h (pedwarn_at): Fix declaration.
+       
+2008-08-13  Joseph Myers  <joseph@codesourcery.com>
+
+       * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
+       LINK_SPEC): Use %R in -Y P argument.
+
+2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       PR c/15236
+       * diagnostic.c (pedwarn_at): New.
+       * toplev.h (pedwarn_at): Declare.
+       * c-tree.h (build_enumerator): Update declaration.
+       * c-decl.c (finish_enum): Update comment.
+       (build_enumerator): Take a location parameter. Give a pedwarn but do
+       not perform any conversion.
+       * c-parser.c (c_parser_enum_specifier): Set correct location for
+       enumerator.
+
+2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       PR 35635
+       * c-common.c (conversion_warning): Use a switch. Ignore boolean
+       expressions except for conversions to signed:1 bitfields. Handle
+       COND_EXPR with constant operands.
+       
+2008-08-13  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/15255
+       * tree-ssa-reassoc.c (linearize_expr_tree): Declare.
+       (struct oecount_s): New struct and VEC types.
+       (cvec): New global.
+       (oecount_hash): New function.
+       (oecount_eq): Likewise.
+       (oecount_cmp): Likewise.
+       (zero_one_operation): New function.
+       (build_and_add_sum): Likewise.
+       (undistribute_ops_list): Perform un-distribution of multiplication
+       and division on the chain of summands.
+       (should_break_up_subtract): Also break up subtracts for factors.
+       (reassociate_bb): Delete dead visited statements.
+       Call undistribute_ops_list.  Re-sort and optimize if it did something.
+       * passes.c (init_optimization_passes): Move DSE before
+       reassociation.
+       * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
+       PHI nodes.
+
+2008-08-12  Janis Johnson  <janis187@us.ibm.com>
+
+       * doc/invoke.texi (-fipa-pta): Say the option is experimental.
+
+       * doc/invoke.texi: Revert unintended checkin.
+
+2008-08-12  Nathan Froyd  <froydnj@codesourcery.com>
+
+       PR libgomp/26165
+       * gcc.c (include_spec_function): Tweak call to find_a_file.
+
+2008-08-12  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/37014
+       * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
+       and TRUTH_ORIF_EXPR.
+       * dojump.c (do_jump): Likewise.
+
+       PR tree-optimization/37084
+       * tree-inline.c (copy_bb): Call gimple_regimplify_operands
+       if id->regimplify, don't assume stmt is a cast assignment.
+
+2008-08-12  Anatoly Sokolov  <aesok@post.ru>
+
+       * final.c (final_scan_insn): Use app_enable/app_disable functions.
+
+2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+       PR bootstrap/37097
+       * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
+       by last change.
+
+2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+       * defaults.h (TARGET_FLOAT_FORMAT): Remove.
+       (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.
+
+       * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
+       * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
+       * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
+       * config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
+       * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.
+
+       * doc/tm.texi (Storage Layout): Remove documentation for
+       TARGET_FLOAT_FORMAT.
+
+       * simplify-rtx.c (simplify_binary_operation_1): Replace
+       TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.
+
+2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+       * real.h (struct real_format): New member has_sign_dependent_rounding.
+       * real.c (ieee_single_format, mips_single_format, motorola_single_format,
+       spu_single_format, ieee_double_format, mips_double_format,
+       motorola_double_format, ieee_extended_motorola_format,
+       ieee_extended_intel_96_format, ieee_extended_intel_128_format,
+       ieee_extended_intel_96_round_53_format, ibm_extended_format,
+       mips_extended_format, ieee_quad_format, mips_quad_format,
+       vax_f_format, vax_d_format, vax_g_format): Initialize it.
+       * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
+
+       * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
+       MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
+       * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
+       MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
+       (ROUND_TOWARDS_ZERO): Likewise.
+
+       * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
+       (FLOAT_MODE_FORMAT): New macro.
+       (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
+       (MODE_COMPOSITE_P): ... this new macro.
+       (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
+       MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
+       * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
+
+       * flags.h: Include "real.h".
+
+       * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
+       REAL_MODE_FORMAT_COMPOSITE_P.
+       * simplify-rtx.c (simplify_const_binary_operation): Likewise.
+
+       * doc/tm.texi (Storage Layout): Remove documentation of
+       MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
+       MODE_HAS_SIGN_DEPENDENT_ROUNDING.  Update documentation of
+       ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
+       they only apply to libgcc2.a.
+
 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
 
        * config/spu/float_disf.c: New file.
 
 2008-08-07  Bob Wilson  <bob.wilson@acm.org>
        
-       * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming value
-       in a6 after the set_frame_ptr insn.
+       * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
+       value in a6 after the set_frame_ptr insn.
        
 2008-08-07  Richard Henderson  <rth@redhat.com>
 
        * matrix-reorg.c (compute_offset): Avoid C++ keywords.
 
 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
-       
+
        PR 26785
        * diagnostic.c (permerror_at): New.
        * toplev.h (permerror_at): Declare.