OSDN Git Service

* config/i386/i386.md (*sinxf2): Rename to *sinxf2_i387.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index f752ca8..642ae64 100644 (file)
@@ -1,3 +1,374 @@
+2007-01-09  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (*sinxf2): Rename to *sinxf2_i387.
+       (*cosxf2): Rename to cosxf2_i387.
+
+       (*sindf2, *sinsf2): Extend operand 1 to XFmode.  Macroize patterns
+       using X87MODEF12 mode macro. Rename patterns to
+       *sin_extend<mode>xf2_i387.  Use SSE_FLOAT_MODE_P to disable patterns
+       for SSE math.
+       (*cosdf2, *cossf2): Ditto.
+       (sincosdf3, sincossf3): Ditto.  Rewrite corresponding splitters
+       to match extended input operands.
+
+       (sincos<mode>3): New expander.
+
+       (*sinextendsfdf2, *cosextendsfdf2, *sincosextendsfdf3): Remove
+       insn patterns and corresponding splitters.
+
+2007-01-09  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/t-linux (TARGET_LIBGCC2_CFLAGS): Delete.
+       (SHLIB_MAPFILES, SHLIB_LINK, SHLIB_INSTALL): Likewise.
+
+2007-01-09  Nicolas Pitre  <nico@cam.org>
+
+       PR target/30173
+       * arm/ieee754-df.S (Lad_s): Also test the low word of X for zero.
+
+2007-01-08  Geoffrey Keating  <geoffk@apple.com>
+
+       * target.h (struct gcc_target): New field library_rtti_comdat.
+       * target-def.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): New.
+       (TARGET_CXX): Add TARGET_CXX_LIBRARY_RTTI_COMDAT.
+       * doc/tm.texi (C++ ABI): Document TARGET_CXX_LIBRARY_RTTI_COMDAT.
+       * config/darwin.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): Define.
+
+2007-01-08  Geoffrey Keating  <geoffk@apple.com>
+
+       * doc/invoke.texi (Optimize Options): Correct description of -O0.
+
+2007-01-08  Richard Guenther  <rguenther@suse.de>
+
+       * tree.h (force_fit_type_double): Export.
+       (force_fit_type): Remove.
+       * fold-const.c (force_fit_type_double): New function.
+       (force_fit_type): Remove.
+       (int_const_binop): Use it.
+       (fold_convert_const_int_from_int): Likewise.
+       (fold_convert_const_int_from_real): Likewise.
+       (fold_div_compare): Likewise.
+       (fold_sign_changed_comparison): Likewise.
+       (fold_unary): Likewise.
+       (fold_negate_const): Likewise.
+       (fold_abs_const): Likewise. 
+       (fold_not_const): Likewise.
+       * c-common.c (shorten_compare): Use force_fit_type_double.
+       * convert.c (convert_to_pointer): Likewise.
+
+2007-01-08  Richard Guenther  <rguenther@suse.de>
+
+       * tree.h (build_int_cst_wide_type): Export.
+       * tree.c (build_int_cst_wide_type): New function.
+       (build_int_cst_wide): Fix comment.
+       * builtins.c (fold_builtin_object_size): Use build_int_cst
+       to build -1 or 0 of the correct type.  Use fit_double_type
+       to check for overflow.
+       * fold-const.c (optimize_bit_field_compare): Use build_int_cst_type
+       to build the mask.
+       (decode_field_reference): Likewise.
+       (all_ones_mask_p): Likewise.
+       (native_interpret_int): Use build_int_cst_wide_type.
+       (fold_binary): Use build_int_cst_type to build an all-ones
+       value.
+       * stor-layout.c (set_sizetype): Use build_int_cst_wide_type.
+
+2007-01-08  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * config/pa/t-pa64 (libgcc_stub.a): Use $(T).
+
+2007-01-09  Ben Elliston  <bje@au.ibm.com>
+
+       * genautomata.c (STATS_OPTION): New option.
+       (stats_flag): New flag.
+       (gen_automata_option): Handle it.
+       (initiate_automaton_gen): Ditto.
+       (write_automata): Output statistics only if stats_flag is
+       set. Likewise, output time statistics only if time_flag is set.
+       * doc/md.texi (Processor pipeline description): Document new flag.
+
+2007-01-08  Richard Guenther  <rguenther@suse.de>
+
+       * builtins.c (fold_builtin_int_roundingfn): Use fit_double_type.
+       * tree.c (build_int_cst_type): Likewise.
+       (size_in_bytes): Don't call force_fit_type on the result.
+       (int_fits_type_p): Use fit_double_type.
+       * fold-const.c (fit_double_type): New function.
+       (force_fit_type): Use it.
+       * tree.h (fit_double_type): Export.
+
+2007-01-08  Jan Hubicka  <jh@suse.cz>
+
+       * tree-vectorizer.c (gate_increase_alignment): Fix return type.
+       * ipa.c (function_and_variable_visibility): Fix return type.
+
+2007-01-08  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use type
+       of offset to build the index.
+       * tree-pretty-print.c (dump_generic_node): Don't build negated
+       const just for printing.
+       * c-pretty-print.c (pp_c_integer_constant): Likewise.
+       * builtins.c (fold_builtin_int_roundingfn): Check if result
+       fits the type by using force_fit_type and comparing the result.
+       * predict.c (predict_loops): Use compare_tree_int for comparison.
+       * tree.c (build_int_cst): Fall back to integer_type_node for
+       NULL_TREE type.
+       (build_int_cst_wide): Assert type is non-null.
+
+2007-01-08  Roberto Costa  <roberto.costa@st.com>
+
+       * tree-vrp.c (extract_range_from_cond_expr): New.
+       (extract_range_from_expr): Handle COND_EXPR nodes used as expressions.
+       * tree-ssa-ccp.c (get_maxval_strlen): Handle COND_EXPR nodes used
+       as expressions.
+       (fold_stmt): Bug fix, avoid infinite recursion when folding COND_EXPRs.
+       * tree-ssa-forwprop.c (simplify_cond, forward_propagate_into_cond,
+       tree_ssa_forward_propagate_single_use_vars): Handle COND_EXPR nodes
+       used as expressions.
+       * tree-object-size.c (cond_expr_object_size): New.
+       (collect_object_sizes_for): Handle COND_EXPR nodes used as expressions.
+
+2007-01-08  Jan Hubicka  <jh@suse.cz>
+
+       * tree-ssa-forwprop.c (forward_propagate_into_cond,
+       tree_ssa_forward_propagate_single_use_va): Release defs of propagated
+       statement.
+
+2007-01-08  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/23603
+       * tree-vrp.c (set_value_range_to_truthvalue): New function.
+       (extract_range_from_binary): Fall back to truthvalue instead of
+       varying for TRUTH_*_EXPR.
+       (extract_range_from_comparison): Fall back to truthvalue instead of
+       varying.
+       (vrp_visit_phi_node): Don't adjust new range bounds to +INF/-INF
+       if all visited PHI values were constant.
+
+2007-01-08  Jan Hubicka  <jh@suse.cz>
+
+       * cgraphunit.c (cgraph_process_new_functions): Reset reachable flag.
+       (cgraph_analyze_function): break out from ...
+       (cgraph_finalize_compilation_unit): ... here.
+       (cgraph_expand_function): Remove forgoten commented out line.
+       (cgraph_optimize): Analyze functions.
+
+2007-01-08  Jan Hubicka  <jh@suse.cz>
+
+       * tree-pas.h (TODO_remove_function): New flag.
+       (TODO_update*): Renumber.
+       (pass_ipa_increase_alignment,
+       pass_ipa_function_and_variable_visibility): New passes.
+       * cgraphunit.c (cgraph_increase_alignment): Move to tree-vectorizer.c
+       (cgraph_function_and_variable_visibility): Move to ipa.c
+       (cgraph_optimize): Don't call cgraph_function_and_variable_visibility,
+       cgraph_increase_alignment.
+       * ipa-inline.c (cgraph_decide_inlining): Don't push timevar.
+       (cgraph_decide_inlining_incrementally): Push TV_INTEGRATION before
+       calling tree-inline.
+       (cgraph_early_inlining): Do not call cgraph_remove_unreachable_nodes.
+       (pass_ipa_inline, pass_early_ipa_inlining): Set TODO_remove_functions
+       * tree-vectorizer.c (increase_alignment): Move here from cgraphunit.c
+       (gate_increase_alignment): New function.
+       (pass_ipa_increase_alignment): New pass.
+       * ipa.c: Inline tree-pass.h and timevar.h
+       (function_and_variable_visibility): Move here from cgraphunit.c
+       * tree-optimize.c (pass_early_local_passes): Add TODO_remove_functions.
+       * passes.c (init_optimization_passes): Add the two new passes.
+       (execute_todo): Handle cgraph_remove_functions.
+
+2007-01-08  Nick Clifton  <nickc@redhat.com>
+
+       * config/frv/predicates.md (reg_or_0_operand): Accept
+       CONST_DOUBLEs.
+
+2007-01-08  Ralf Corsépius <ralf.corsepius@rtems.org>
+
+       * config/bfin/rtems.h, config/bfin/t-rtems: New.
+       * config.gcc: Add bfin*-rtems*.
+
+2007-01-08  Mark Shinwell  <shinwell@codesourcery.com>
+
+       * c.opt: Add -flax-vector-conversions.
+       * c-typeck.c (convert_for_assignment): Pass flag to
+       vector_types_convertible_p to allow emission of note.
+       (digest_init): Likewise.
+       * c-opts.c: Handle -flax-vector-conversions.
+       * c-common.c (flag_lax_vector_conversions): New.
+       (vector_types_convertible_p): Unless -flax-vector conversions
+       has been passed, disallow conversions between vectors with
+       differing numbers of subparts and/or element types.  If such
+       a conversion is disallowed, possibly emit a note on the first
+       occasion only to inform the user of -flax-vector-conversions.
+       The new last argument specifies this.
+       * c-common.h (flag_lax_vector_conversions): New.
+       (vector_types_convertible_p): Add extra argument.
+       * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
+       char_type_node for V*QI type vectors.
+       * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):
+       Update to satisfy new typechecking rules.
+       * config/rs6000/altivec.h (vec_cmple): Use vec_cmpge, for both
+       C and C++ variants.
+       * doc/invoke.texi (C Dialect Options): Document
+       -flax-vector-conversions.
+
+2007-01-08  Mark Shinwell  <shinwell@codesourcery.com>
+
+       PR tree-optimization/29877
+       * tree-ssa-ter.c (is_replaceable_p): Deem assignments with
+       a register variable on the RHS to not be replaceable.
+
+2007-01-08  Chen Liqin  <liqin@sunnorth.com.cn>
+       * config/score/t-score-elf (MULTILIB_OPTIONS): Change.
+       * config/score/predicates.md (const_uimm5, sr0_operand, const_simm12,
+       const_simm15, const_pow2, const_npow2): Added.
+       * config/score/misc.md (insv, extv, extzv, movmemsi, 
+       move_lbu_a/b, mov_lhu_a/b etc): Added and fix some bug.
+       * config/score/score.c (score_address_cost, score_select_cc_mode): 
+       Added.
+       Change CONST_OK_FOR_LETTER_P/EXTRA_CONSTRAINT define.
+       Update score_rtx_costs for MACRO TARGET_RTX_COSTS.
+       Update score_print_operand.
+       * config/score/score.h (DATA_ALIGNMENT, SELECT_CC_MODE): Added.
+       Adjust register allocate order and update some macro define.
+       * config/score/score-mdaux.c (mdx_unaligned_load, mdx_unsigned_store,
+       mdx_block_move_straight, mdx_block_move_loop_head,
+       mdx_block_move_loop_body, mdx_block_move_loop_foot, mdx_block_move_loop,
+       mdx_block_move): Added.
+       (mdx_movsicc, mdp_select_add_imm, mdp_select, mds_zero_extract_andi,
+       mdp_limm): Updated and fix some bug and typo.
+       * config/score/score.md (movqi/hi/si, add/sub/zero/ext): Updated.
+       (movsf, movdf, doloop_end): Added.
+
+2007-01-08  Kazu Hirata  <kazu@codesourcery.com>
+
+       * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
+       config/arm/thumb2.md: Fix comment typos.
+       * doc/extend.texi: Fix a typo.
+
+2007-01-07  Eric Christopher  <echristo@apple.com>
+
+       * configure.ac: Check for __stack_chk_fail for darwin.
+       * configure: Regenerate.
+
+2007-01-07  Richard Guenther  <rguenther@suse.de>
+
+       * tree-vrp.c (extract_range_from_assert): CSE calls to
+       compare_values where possible.
+       (extract_range_from_unary_expr): Likewise.
+
+2007-01-07  Anatoly Sokolov <aesok@post.ru>
+
+       * config/avr/avr-protos.h (call_insn_operand): Delete prototype.
+       * config/avr/avr.c (call_insn_operand): Delete function.
+       * config/avr/avr.md (*pushqi, *pushhi, *pushsi, *pushsf): Use REG_SP
+       instead of register number. Use predicates.
+       * config/avr/predicates.md (const0_operand, reg_or_0_operand,
+       call_insn_operand): Add.
+
+2007-01-06  Jan Hubicka  <jh@suse.cz>
+
+       * tree-pass.h (pass_build_cgraph_edges): Declare.
+       * cgraphunit.c (record_refernece): Move to cgraphbuild.c
+       (visited_nodes): Remove.
+       (cgraph_create_edges): Move to cgraphbuild.c; rename to
+       build_cgrpah_edges; make visited_nodes local.
+       (cgraph_process_new_functions): DO not call initialize_inline_failed.
+       (record_references_in_initializer): Move to cgraphbuild.c
+       (initialize_inline_failed, rebuild_cgraph_edges,
+       pass_rebuild_cgraph_edges): Move to cgraphbuild.c.
+       (verify_cgraph_node): Make visited_nodes local.
+       (cgraph_analyze_function): Do not call cgraph_create_edges and
+       initialize_inline_failed.
+       (cgraph_expand_function): Do not call cgraph_lower_function;
+       assert that function is already lowered.
+       * Makefile.in (cgraphbuild.o): New.
+       * passes.c (init_optimization_passes): Add pass_build_cgraph_edges
+       at the end of lowering passes.
+
+2007-01-06  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * ifcvt.c (cond_move_convert_if_block): New function, code
+       factored out from...
+       (cond_move_process_if_block): ...here.  Call the new function
+       on the THEN and ELSE blocks.
+       (merge_if_block): Do not copy global_live_at_end, merge_blocks
+       already takes care of this.
+
+2007-01-05  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       PR c/19978
+       * tree.h (TREE_OVERFLOW_P): New.
+       * c-typeck.c (parser_build_unary_op): Warn only if result
+       overflowed and operands did not.
+       (parser_build_binary_op): Likewise.
+       (convert_for_assignment): Remove redundant overflow_warning.
+       * c-common.c (overflow_warning): Don't check or set TREE_OVERFLOW.
+
+2007-01-05  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       * c-typeck.c (store_init_value): Split over two lines to follow
+       the GNU coding style.
+
+2007-01-05  Benjamin Kosnik  <bkoz@redhat.com>
+
+       * c-cppbuiltin.c (c_cpp_builtins): __GXX_EXPERIMENTAL_CPP0X__ to
+       __GXX_EXPERIMENTAL_CXX0X__.
+       * doc/cpp.texi: Same.
+
+2007-01-05  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/27826
+       * tree.c (get_narrower): Do not construct COMPONENT_REFs
+       with mismatched types.  Instead explicitly build a
+       conversion NOP_EXPR.
+
+2007-01-05  Ian Lance Taylor  <iant@google.com>
+
+       * c-common.c (decl_with_nonnull_addr_p): New function.
+       (c_common_truthvalue_conversion): Call it.
+       * c-typeck.c (build_binary_op): Likewise.
+       * c-common.h (decl_with_nonnull_addr_p): Declare.
+
+2007-01-05  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/30360
+       * libgcc2.c (__divdc3): Compare c and d against 0.0 instead of
+       denom against 0.0.
+
+2007-01-05  Joel Brobecker  <brobecker@adacore.com>
+
+       * doc/install.texi (Final install): Document the fact that
+       the GNAT runtime should not be stripped.
+
+2007-01-04  Jan Hubicka  <jh@suse.cz>
+
+       * tree-inline.c (fold_marked_statements): Update operand caches
+       and EH after folding
+
+2007-01-04  Ian Lance Taylor  <iant@google.com>
+
+       * c-common.c (check_function_nonnull): Whitespace fix.
+
+2007-01-04  Jan Hubicka  <jh@suse.cz>
+
+       * tree-optimize.c (execute_fixup_cfg): Correct previously mistakely
+       comitted older version of patch.
+       (pass_fixup_cfg): Add TODOs to verify flow and statements, dump
+       function, celanup cfg and collect garbage.
+
+2007-01-04  Mike Stump  <mrs@apple.com>
+
+       * Makefile.in (mostlyclean): Don't remove libgcc anymore.
+       (clean): Likewise.
+
+2007-01-04  Eric Christopher  <echristo@apple.com>
+
+       * libgcc2.c (__bswapsi2): Use SItype.
+       (__bswapdi2): Use DItype.
+       * libgcc2.h: Update for above.
+
 2007-01-04  Paul Brook  <paul@codesourcery.com>
 
        * config/arm/arm.md (arm_mulsi3, thumb_mulsi3, mulsi3_compare0,
 2007-01-02  Steve Ellcey  <sje@cup.hp.com>
 
        * sbitmap.c (HOST_BITS_PER_LONG_LONG):  Change to
-       HOST_BITS_PER_LONGLONG 
+       HOST_BITS_PER_LONGLONG
 
 2007-01-02  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
 
        PR c/19977
        * c-typeck.c (store_init_value): Don't emit pedantic overflow
        warning for non-static initializers.
-       
+
 2007-01-02  Steven Bosscher  <steven@gcc.gnu.org>
 
        * config/alpha/alpha.md, arm/arm.c, darwin.c, frv/frv.md,
        * c-opts.c (c_common_post_options): Enabled by -Wextra.
        * c-decl.c (declspecs_add_scspec): Replace -Wextra with
        -Wold-style-declaration.
-       
+
 2007-01-02  Kazu Hirata  <kazu@codesourcery.com>
 
        * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
 
        * c-common.c(c_common_nodes_and_builtins): Since variants of
        void_type_node get built before it is given a name, we need to
-       give those variants the name, too. 
+       give those variants the name, too.
        (complete_array_type): We need to work with the canonical main
        type of the array, from which we will build the qualified version.
        * params.def (PARAM_VERIFY_CANONICAL_TYPES): New.
        structural equality tests.
        (build_array_type): Build the canonical form of an array type.
        (build_function_type): Function types require structural equality,
-       because they contain default arguments, attributes, etc. 
+       because they contain default arguments, attributes, etc.
        (build_method_type_directly): Ditto for method types.
        (build_offset_type): Build the canonical offset type.
        (build_complex_type): Build the canonical vector type.