OSDN Git Service

* config/rs6000/darwin-ldouble.c: Build file for SOFT_FLOAT.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index cdb999c..cf4cd24 100644 (file)
@@ -1,3 +1,248 @@
+2007-01-16  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/darwin-ldouble.c: Build file for SOFT_FLOAT.
+       (strong_alias): Define.
+       (__gcc_qmul): Provide non-FMA for soft-float.
+       (__gcc_qdiv): Same.
+       (__gcc_qneg): New.
+       (__gcc_qeq): New.
+       (__gcc_qle): New.
+       (__gcc_qge): New.
+       (__gcc_qunord): New.
+       (__gcc_stoq): New.
+       (__gcc_dtoq): New.
+       (__gcc_qtos): New.
+       (__gcc_qtod): New.
+       (__gcc_qtoi): New.
+       (__gcc_qtou): New.
+       (__gcc_itoq): New.
+       (__gcc_utoq): New.
+       (fmsub): New.
+       * config/rs6000/rs6000.c (rs6000_init_libfuncs): Initialize
+       soft-float functions.
+       * config/rs6000/libgcc-ppc-glibc.ver: Version soft-float symbols.
+       * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Do not warn
+       about long double soft float.
+
+2007-01-16  Dorit Nuzman  <dorit@il.ibm.com>
+            Tehila Meyzels  <tehila@il.ibm.com>
+
+       * tree-vectorizer.h (is_pattern_stmt_p): New.
+       * tree-vect-analyze.c (vect_determine_vectorization_factor): Fix
+       formatting (tabs instead of spaces). Cleanup and clarify setting
+       of STMT_VINFO_VECTYPE. Call is_pattern_stmt_p.
+       * tree-vect-transform.c (vect_get_vec_def_for_operand): Fix typo.
+       (vectorizable_type_demotion): Check that types are integral.
+       (vectorizable_type_promotion): Likewise.
+       (vectorizable_store): Fix typo.  Eliminate new-line at end of
+       comments.
+
+2007-01-16  Jan Hubicka  <jh@suse.cz>
+
+       * tree-ssanames.c (release_dead_ssa_names): Remove invalidated
+       cgraph edges too.
+
+2007-01-15  Eric Christopher  <echristo@apple.com>
+
+       * ifcvt.c: Include vec.h, vecprim.h.
+       (check_cond_move_block): New argument regs.
+       Reorganize. Add registers used to regs.
+       (cond_move_process_if_block): Use regs set above as
+       loop bounds.
+
+2007-01-15  Eric Christopher  <echristo@apple.com>
+
+       * config/darwin.h: Update copyright.
+       (TARGET_OPTION_TRANSLATE_TABLE): Add umbrella.
+       (LINK_COMMAND_SPEC): Add -u.
+       (LINK_SPEC): Fix umbrella for above.
+
+2007-01-15  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * config/soft-fp/op-common.h, config/soft-fp/op-4.h: Update from
+       glibc CVS.
+
+2007-01-15  Tom Tromey  <tromey@redhat.com>
+
+       * doc/sourcebuild.texi (libgcj Tests): Don't mention jacks.
+       * doc/install.texi (Testing): Don't mention jacks.
+       (Configuration): Document --enable-java-maintainer-mode.  Move
+       --with-java-home to libgcj-specific section.  Document
+       --with-ecj-jar.
+       (Prerequisites): Mention --enable-java-maintainer-mode, ecj1.
+
+2007-01-15  Jan Hubicka  <jh@suse.cz>
+
+       * tree-ssa-dce.c (DCE_TODOs): New.
+       (propagate_necessity): Return if something changed.
+       (eliminate_unnecessary_stmts): Likewise.
+       (perform_tree_ssa_dce): Return TODO flags when needed.
+       (pass_dce, pass_dce_loop, pass_cd_dce): Remove TODO flags.
+
+2007-01-15  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (fyl2xxf3_i387): Rename from fyl2x_xf3.
+       (fyl2x_extend<mode>xf3_i387): New insn pattern.
+       (log<mode>2): Rename from logsf2 and logdf2 and macroize insn
+       insn patterns using X87MODEF12 mode macro.  Extend operand 1
+       to XFmode. Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
+       (log10<mode>2): Ditto.
+       (log2<mode>2): Ditto.
+       (log1p<mode>2): Ditto.
+       (logb<mode>2): Ditto.
+       (fyl2xp1xf3_i387): Rename from fyl2xp1_xf3.
+       (fyl2xp1_extend<mode>xf3_i387): New insn pattern.
+       (*fxtractxf3_i387): Rename from *fxtractxf3.
+       (fxtract_extend<mode>xf3_i387): New insn pattern.
+       (ilogbsi2): Use match_dup 3, not match_operand:XF 3.
+
+       * config/i386/i386.c (ix86_emit_i387_log1p): Use gen_fyl2xp1xf3_i387()
+       and gen_fyl2xxf3_i387().
+
+2007-01-14  Zdenek Dvorak <dvorakz@suse.cz>
+
+       * loop-unswitch.c (unswitch_loop): Do not call fix_loop_placement.
+       * cfgloopmanip.c (fix_loop_placement): Made static.  Use
+       get_loop_exit_edges.  Changed return type to bool.
+       * cfgloop.h (fix_loop_placement): Declaration removed.
+
+2007-01-14  Dorit Nuzman  <dorit@il.ibm.com>
+
+       * param.h (MIN_VECT_LOOP_BOUND): New.
+       * params.def (MIN_VECT_LOOP_BOUND): New.
+       * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Takes another
+       argument - minimum threshold for number of iterations.
+       * tree-vectorizer.h (slpeel_tree_peel_loop_to_edge): Add another
+       argument to declaration.
+       * tree-vect-analyze.c (vect_analyze_operations): Check value of
+       MIN_VECT_LOOP_BOUND.
+       * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Call
+       slpeel_tree_peel_loop_to_edge with additional argument.
+       (vect_do_peeling_for_alignment): Likewise.
+       * doc/invoke.texi (min-vect-loop-bound): Document new param option.
+
+2007-01-14  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/30413
+       * config/i386/i386.c (print_operand) ['z']: Output 'b' for
+       operands of size 1.
+
+2007-01-14  Jan Hubicka  <jh@suse.cz>
+
+       * tree-dfa.c (remove_referenced_var): New function.
+       * tree-ssa-live.c (remove_unused_locals): Walk referenced vars and
+       prune referenced vars list too.
+       * tree-flow.h (remove_referenced_var): Declare.
+
+2007-01-14  Jan Hubicka  <jh@suse.cz>
+
+       * tree-eh.c (add_stmt_to_eh_region_fn): Do not add call_exprs
+       separately.
+       (remove_stmt_from_eh_region_fn): Do not remove call_exprs.
+       (verify_eh_throw_stmt_node, verify_eh_throw_table_statements): Kill.
+       * except.h (verify_eh_throw_table_statements): Kill prototype.
+       * cfgexpand.c (expand_gimple_basic_block): Propagate Eh regions
+       into call exrepssions.
+       * tree-optimize.c (execute_free_cfg_annotatiosn): Do not call
+       eh trhow verifier.
+       * tree-cfg.c: Include pointer-set.h.
+       (verify_node_sharing): Work on pointer set.
+       (verify_eh_throw_stmt_node): New.
+       (verify_stmts): Use pointers sets, verify throw_stmt.
+
+2007-01-13  Zdenek Dvorak <dvorakz@suse.cz>
+
+       * ipa-reference.c (analyze_function): Consider also addresses taken
+       in phi nodes.
+
+2007-01-12  Roger Sayle  <roger@eyesopen.com>
+
+       * c-typeck.c (null_pointer_constant_p): Replace use of
+       TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
+       (build_c_cast): Likewise.
+
+2007-01-12  Roger Sayle  <roger@eyesopen.com>
+
+       * tree.h (force_fit_type_double): Remove unused final argument.
+       * c-common.c (constant_expression_warning): Replace use of
+       TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
+       (convert_and_check): Likewise.
+       (shorten_compare): Update call to force_fit_type_double.
+       (c_common_truthvalue_conversion) <INTEGER_CST>: Use integer_zerop.
+       * convert.c (convert_to_pointer): Update call to
+       force_fit_type_double.
+       * fold-const.c (force_fit_type_double): Remove overflowed_const
+       argument.
+       (int_const_binop, fold_convert_const_int_from_int,
+       fold_convert_const_int_from_real, fold_div_compare,
+       fold_sign_changed_comparison, fold_unary, fold_negate_const,
+       fold_abs_const, fold_not_const): Remove the final argument from
+       calls to force_fit_type_double.
+
+2007-01-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       * configure.ac: Set insn to "nop" for spu-*-* also.
+       * configure: Regenerate.
+
+2007-01-12  Olga Golovanevsky  <olga@il.ibm.com>
+
+       * builtins.def : Add BUILT_IN_FREE.
+
+2007-01-12  Jan Hubicka  <jh@suse.cz>
+
+       PR tree-optimization/30443
+       * tree-inline.c (tree_function_versioning): Do not optimize when
+       cloning for inlining.
+
+2007-01-12  Zdenek Dvorak <dvorakz@suse.cz>
+
+       * doc/loop.texi: Document recording of loop exits.
+       * cfgloopmanip.c (loopify, duplicate_loop): Use alloc_loop.
+       (update_single_exits_after_duplication,
+       update_single_exit_for_duplicated_loop,
+       update_single_exit_for_duplicated_loops): Removed.
+       (duplicate_loop_to_header_edge): Do not call
+       update_single_exits_after_duplication and
+       update_single_exit_for_duplicated_loops.
+       (loop_version): Do not update single_exit information.
+       (fix_loop_structure): Use record_loop_exits instead of
+       mark_single_exit_loops.
+       * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update
+       the lists of loop exits.
+       * cfghooks.c (redirect_edge_and_branch, redirect_edge_and_branch_force,
+       split_edge, merge_blocks): Update the lists of loop exits.
+       * modulo-sched.c (sms_schedule): Pass LOOPS_HAVE_RECORDED_EXITS to
+       loop_optimizer_init.
+       * loop-init.c (loop_optimizer_init): Call record_loop_exits instead
+       of mark_single_exit_loops.
+       (loop_optimizer_finalize): Call release_recorded_exits.
+       * tree-ssa-loop.c (tree_loop_optimizer_init): Pass
+       LOOPS_HAVE_RECORDED_EXITS to loop_optimizer_init.
+       * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg): Do not
+       update single exit information.
+       * lambda-code.c (perfect_nestify): Ditto.
+       * cfgloop.c (flow_loop_free): Destroy the list of exits of the loop.
+       (mark_single_exit_loops): Removed.
+       (alloc_loop, loop_exit_hash, loop_exit_eq, loop_exit_free,
+       get_exit_descriptions, rescan_loop_exit, record_loop_exits,
+       dump_recorded_exit, dump_recorded_exits, release_recorded_exits): New
+       functions.
+       (get_loop_exit_edges, single_exit): Use recorded exit lists.
+       (add_bb_to_loop, remove_bb_from_loops): Update the lists of loop exits.
+       (verify_loop_structure): Verify consistency of the exit lists.
+       (flow_loops_find): Use alloc_loop.  Initialize exits hash.
+       (set_single_exit): Removed.
+       * cfgloop.h (struct loop_exit): New function.
+       (struct loop): single_exit_ field replaced by exits field.
+       (LOOPS_HAVE_MARKED_SINGLE_EXITS): Replaced by LOOPS_HAVE_RECORDED_EXITS.
+       (struct loops): Added exits hash.
+       (mark_single_exit_loops, set_single_exit): Declaration removed.
+       (release_recorded_exits, record_loop_exits, rescan_loop_exit): Declare.
+
+2007-01-12  Richard Sandiford  <richard@codesourcery.com>
+
+       * doc/invoke.texi: Avoid use of @headitem.
+
 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
 
        * cse.c (cse_insn): Move HAVE_CC0 code after declarations.
 2007-01-10  Razya Ladelsky  <razya@il.ibm.com>
 
        * function.c (get_last_funcdef_no): New function.
-       * function.h (get_last_funcdef_no): Declare. 
+       * function.h (get_last_funcdef_no): Declare.
        * tree-inline.c (initialize_cfun): Add initialization.
        (tree_function_versioning): Cleanup.
-       
+
 2007-01-10  Jan Hubicka  <jh@suse.cz>
 
        * tree-inline.c (setup_one_parameter): Do not propagate into abnormal
 
        * 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
        (*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.
 
        (fold_sign_changed_comparison): Likewise.
        (fold_unary): Likewise.
        (fold_negate_const): Likewise.
-       (fold_abs_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.
        * 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, 
+       * 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): 
+       * 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.